1. 对银行账号进行破解,

银行账号破解

  1. 对银行账号进行破解,
    假定银行账号accID是4位数字,范围1000-9999,
    密码password是6位数字,范围100000-999999,
    先进行账号破解,
    如果命中一个账号后,开始破解该账号对应的密码:
    如果当前账号密码正确,打印账号及密码,停止后续密码尝试,开始破解下一个账号;
    如果当前账号密码不正确,继续尝试后续密码;
    如果账号没有命中,则继续生成下一个账号进行尝试
    userAccount =
    {
    ‘1001’:{‘password’:’123456’,’banlance’:’10000’,’currency’:’CNY’,’status’:’active’},
    ‘2002’:{‘password’:’111111’,’banlance’:’-200’,’currency’:’CNY’,’status’:’active’},
    ‘3003’:{‘password’:’222222’,’banlance’:’2000000’,’currency’:’CNY’,’status’:’active’},
    ‘4004’:{‘password’:’333333’,’banlance’:’8000000’,’currency’:’CNY’,’status’:’active’}
    }
  1. userAccount = {
  2. '1001':{'password':'100000','banlance':'10000','currency':'CNY','status':'active'},
  3. '2002':{'password':'111111','banlance':'-200','currency':'CNY','status':'active'},
  4. '3003':{'password':'222222','banlance':'2000000','currency':'CNY','status':'active'},
  5. '4004':{'password':'333333','banlance':'8000000','currency':'CNY','status':'active'}
  6. }
  7. for userId in range(1000,10000):
  8. userId = str(userId)
  9. if userId in userAccount:
  10. for userPassward in range (100000,1000000):
  11. userPassward=str(userPassward)
  12. if userPassward == userAccount[userId]['password']:
  13. print(f'账号是:{userId}',f'密码是:{userPassward}')
  14. break

2.学生信息统计

统计学生信息 stuInfo=[
[1001,’Kate’,185,’Female’,[70,90,91],”sing,dance,run”],
[1002,’Mike’,165,’Male’,[75,90,100,50,98],”dance,draw”],
[1003,’John’,170,’Male’,[100,88,98,76],”walk,read,run”],
[1004,’Danny’,165,’Male’,[89,90,100,77,99],”sing,walk,swim”],
[1005,’Rose’,170,’FeMale’,[98,82,99,79],”swim,read”],
[1006,’Linda’,165,’FeMale’,[75,90,63,50,88],”dance,swim”],
[1007,’Jane’,170,’FeMale’,[56,78,92,73],”sleep”]
]

  1. 统计每个学生的平均成绩,将其打印出来
  2. 统计全班学生的平均成绩,将其打印出来
  3. 统计全班同学中,喜欢sing的有多少人
  4. 统计班级同学平均身高
  5. 统计班级同学最大身高,和最小身高
    1. stuInfo=[
    2. [1001,'Kate',185,'Female',[70,90,91],"sing,dance,run"],
    3. [1002,'Mike',165,'Male',[75,90,100,50,98],"dance,draw"],
    4. [1003,'John',170,'Male',[100,88,98,76],"walk,read,run"],
    5. [1004,'Danny',165,'Male',[89,90,100,77,99],"sing,walk,swim"],
    6. [1005,'Rose',170,'FeMale',[98,82,99,79],"swim,read"],
    7. [1006,'Linda',165,'FeMale',[75,90,63,50,88],"dance,swim"],
    8. [1007,'Jane',170,'FeMale',[56,78,92,73],"sleep"]
    9. ]
    10. while True:
    11. print('1. 统计每个学生的平均成绩,将其打印出来'
    12. ,'2. 统计全班学生的平均成绩,将其打印出来'
    13. ,'3. 统计全班同学中,喜欢sing的有多少人'
    14. ,'4. 统计班级同学平均身高'
    15. ,'5. 统计班级同学最大身高,和最小身高',sep='\n')
    16. choice = input('请输入你的选择:')
    17. if choice == '1':
    18. for stu in stuInfo:
    19. avgScore = sum(stu[4]) / len(stu[4])
    20. print(stu[1],'的平均成绩是%.1f'%avgScore)
    21. if choice == '2':
    22. sumAll = 0
    23. lenAll = 0
    24. for stu in stuInfo:
    25. sumAll +=sum(stu[4])
    26. lenAll +=len(stu[4])
    27. avgScore=sumAll /lenAll
    28. print('全班的平均成绩是%.1f'%avgScore)
    29. if choice == '3':
    30. count = 0
    31. for stu in stuInfo:
    32. # count += stu[-1].count('sing')
    33. # print('全班有%d人喜欢sing'%count)
    34. if 'sing' in stu[-1]:
    35. count +=1
    36. print('全班有%d人喜欢sing' % count)
    37. if choice == '4':
    38. sumAll = 0
    39. for stu in stuInfo:
    40. sumAll +=stu[2]
    41. avgHeight=sumAll /len(stuInfo)
    42. print('全班的平均身高是%.1f'%avgHeight)
    43. if choice == '5':
    44. maxHeight = stuInfo[0][2]
    45. minHeight = stuInfo[0][2]
    46. for stu in stuInfo:
    47. if maxHeight <= stu[2]:
    48. mxHeight = stu[2]
    49. elif minHeight >= stu[2]:
    50. minHeight = stu[2]
    51. print('最大身高是%d'% maxHeight,'最小身高是%d'%minHeight)

3.猜数游戏

import random
通过代码随机生成一个1-100之间的整数,random.randint(1,100)
从键盘输入一个1-100之间的整数,系统判断:
如果输入的数据小于随机数,系统提示”Too small”;
如果输入的数据大于随机数,系统提示”Too big”;
如果输入的数据=随机数,系统提示”Congratulations!!!”
总共猜测6次机会,看你是否猜中系统的随机数把猜数的练习给改造成while循环的结构

  1. import random
  2. count =1
  3. while True:
  4. if count < 7:
  5. num1 = int(input('猜数游戏\n请输入你的数字:'))
  6. num2 = random.randint(1, 100)
  7. if num1 < num2:
  8. print('第%d次游戏结果:'%count)
  9. print('Too small !')
  10. elif num1 < num2:
  11. print('第%d次游戏结果:' % count)
  12. print('Too big !')
  13. else :
  14. print('第%d次游戏结果:' % count)
  15. print('Congratulations!!!')
  16. count += 1
  17. else:
  18. print('游戏结束')
  19. break

4.输入日期的合法性

  1. 输入一个年月日,判断年月日的合法性(需要嵌套分支) year,month,day=input().split(‘-‘)
    6.1 要求年份在1000-9999之间算合法,月份在1-12之间算合法
    6.2 针对日期,要求1,3,5,7,8,10,12月,日期在1-31之间算合法
    要求月份4,6,9,11,日期在1-30之间算合法
    要求月份2月份,闰年1-29算合法,非闰年,1-28算合法
    提示:

  2. 闰年的判断依据:
    能被4整除,但不能被100整除的为闰年 或者 能被400整除的年份为闰年

  3. 月份建议用列表存储 bigmonth=[1,3,5,7,8,10,12] smallmonth=[4,6,9,11]
  4. 建议先判断年份的合法性,
    年份合法再判断月份的合法性,
    月份合法再判断天的合法性,判断天时,根据不同的月份做不同的判断,尤其是二月,需要考虑是否闰年
  5. 年份如果不合法直接打印年份错误,不需要去判断月份了
  6. 月份如果不合法直接打印月份错误,不需要去判断天了
    1. while True:
    2. year,month,day=input('请输入年,月,日,并且以'_'分割\n').split('-')
    3. print(type(year),year)
    4. year = int(year)
    5. month = int(month)
    6. day = int(day)
    7. if year not in range(1000,10000):
    8. print('请输入1000-9999之间的年份')
    9. else:
    10. if month in [1,3,5,7,8,10,12] :
    11. if day in range(1,32):
    12. print(f'成功录入日期:{year}-{month}-{day}')
    13. else:
    14. print('这是个大月,请输入1-31的日期')
    15. elif month in [4,6,9,11]:
    16. if day in range(1, 31):
    17. print(f'成功录入日期:{year}-{month}-{day}')
    18. else:
    19. print('这是个小月,请输入1-30的日期')
    20. elif month == 2:
    21. if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    22. if day in range(1, 30):
    23. print(f'成功录入日期:{year}-{month}-{day}')
    24. else:
    25. print('今年是闰年,请输入1-29的日期')
    26. else:
    27. if day in range(1, 29):
    28. print(f'成功录入日期:{year}-{month}-{day}')
    29. else:
    30. print('今年是平年,请输入1-28的日期')
    31. else:
    32. print('请输入1-12的月份')