当前位置:   article > 正文

python --- 练习题3

python --- 练习题3

目录

1、猜数字游戏(使用random模块完成) :继上期题目,附加

2、用户登录注册案例

3、求50~150之间的质数是那些?

4、打印输出标准水仙花数,输出这些水仙花数

5、验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.

6、一个五位数,若在它的后面写上一个7,得到一个六位数A, 若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此 五位数.

7、有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币 [10, 8, 5, 3, 27, 99]

8、如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".

9、给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和

10、将list中的重复数据去重,至少使用两种方案

11、如何将0-10随机存入列表中


1、猜数字游戏(使用random模块完成) :继上期题目,附加

     猜错三次不可以再猜,即只有三次机会;统计一局猜了多少次,猜了什么数

  1. import random as r #r是别名
  2. compute = r.randint(0,100)
  3. #print(compute) 作弊:为了检验
  4. l = [] #创建一个列表,用于记录猜的数,长度即次数
  5. i = 0 #记录猜的次数
  6. while True:
  7. my = int (input("请输入一个数: "))
  8. l.append(my) #将玩家猜的数字记录到列表中
  9. if my > compute or my < compute:
  10. if my > compute :
  11. print("您财大了")
  12. elif my < compute:
  13. print("菜小了")
  14. i+=1 #猜错次数加1
  15. if i >=3 : #不可以超过三次
  16. print("您输了,game over")
  17. break
  18. else:
  19. print("撒花")
  20. #break
  21. choice = input("是否继续(Y)")
  22. if choice == "Y":
  23. compute = r.randint(0,100)
  24. i = 0 #猜对了,重启一局中猜的次数重置为0
  25. else:
  26. print("拜拜")
  27. break
  28. for item in l :
  29. print(item,end=" ") #遍历列表
  30. print(f'猜了{len(l)}次后结束游戏') #列表长度即猜的次数

2、用户登录注册案例
  1. people = {} #定义一个字典存放用户名和对应密码
  2. while True: #初始界面
  3. print("\t\t\t英雄商城登录界面\n")
  4. print("~*"*38)
  5. print("\t\t\t1.用户登录\n")
  6. print("\t\t\t2.用户注册\n")
  7. print("\t\t\t3.退出系统\n")
  8. print("~*"*38)
  9. choice = input("请输入您的选择:")
  10. if choice == "2": #用户需要注册
  11. while True:
  12. username = input("请输入您的用户名称:")
  13. if username in people:
  14. username = input ("此用户名已被注册")
  15. break
  16. elif username not in people:
  17. people[username]=input('请输入密码: ')
  18. print('注册成功!')
  19. break
  20. elif choice == "1" :
  21. while True:
  22. username = input("请输入用户名: ")
  23. if username not in people :
  24. print("该用户不存在!")
  25. if username == "q": #退出到初始页面
  26. break
  27. elif username in people :
  28. password = input("请输入密码: ")
  29. i=0
  30. while True:
  31. if password != people[username]:
  32. password = input("密码错误,登录失败: ")
  33. i+=1
  34. if i>=3: #失败超过三次 回到初始页面
  35. break
  36. if password == people[username]:
  37. print("登录成功\n") #登录成功进入游戏页面
  38. while True:
  39. print("\t\t\t英雄商城首页\n")
  40. print("~*"*40)
  41. print("\t\t\t1.进入英雄超市\n")
  42. print("\t\t\t2.休闲小游戏\n")
  43. print("\t\t\t3.退出登录\n")
  44. choice = input("请选择: ")
  45. if choice == "3" :
  46. break
  47. break
  48. break
  49. #回到初始页面
  50. elif choice == "3":
  51. print("退出登录")
  52. break
  53. else:
  54. continue
  55. #遍历数据字典,查看用户名和密码(可以多注册几个)
  56. for (key,value) in people.items():
  57. print(key,value)

(用户名不存在会返回首页;注册成功) 

(密码输入错误超过三次登录失败返回首页;正确则登录成功,进入下一个界面)

(从最内层页面退出,回到初始界面;可以再一次注册)

(退出页面,数据字典里面有用户名及其对于的密码) 

 

(不可重复注册)

3、求50~150之间的质数是那些?
  1. #求50-150之间的质数
  2. l = []
  3. for num in range(50,150):
  4. flag = True
  5. for i in range (2,num):
  6. if num % i == 0:
  7. flag = False
  8. break #表示一种标识符,如果整出来,它就变错
  9. if flag:
  10. print(f"{num}是质数",end=" ")
  11. l.append(num)
  12. else:
  13. print(f"{num}不是",end=" ")
  14. print()
  15. for item in l :
  16. print (item,end=" ")

4、打印输出标准水仙花数,输出这些水仙花数
  1. #水仙花数是指一个数的个位、十位、百位的数字立方和等于原数
  2. l = []
  3. for i in range(100,1000):
  4. x=i%10 #个位上的数
  5. y=(i%100)//10 #十位上的数
  6. z=i//100 #百位上的数
  7. if i == x**3 + y **3 + z **3 :
  8. print(x,y,z)
  9. l.append(i)
  10. for item in l :
  11. print(f"{item}是水仙花数")

5、验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.
  1. for i in range(10,1000) :
  2. flag = True
  3. x = i%10 #个位的数
  4. y = i - x #这个数减去个位的数
  5. if y %9 != 0 :
  6. flag = False #如何不能被9整除,标识就变false
  7. else:
  8. pass
  9. if flag == False: #标识变了,就不能被9整除
  10. print("验证失败")
  11. else:
  12. print("验证成功") #标识没变证明都可以被9整除

6、一个五位数,若在它的后面写上一个7,得到一个六位数A, 若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此 五位数.
  1. l = []
  2. for i in range(10000,100000) :
  3. A = i*10 + 7
  4. B = i + 7*100000
  5. if B == A*5 :
  6. l.append(i)
  7. for item in l :
  8. print(item)

7、有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币 [10, 8, 5, 3, 27, 99]
  1. arr = [10,8,5,3,27,99]
  2. count = 0
  3. for i in arr :
  4. if i % 2 == 0 :
  5. count = i //2
  6. elif i % 2 == 1 :
  7. count = i // 2 + 1
  8. print (f"最少可以{count}次拿完")

8、如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".
  1. l = []
  2. for num in range(1,100) :
  3. flag = True
  4. for i in range (2,num):
  5. if num % i == 0:
  6. flag = False #表示一种标识符,如果整出来,它就变错
  7. break
  8. if flag:
  9. l.append(num)
  10. #放入字典里
  11. d = {}
  12. for num in l:
  13. if (num+2) in l :
  14. d[num]=num+2
  15. for key,value in d.items():
  16. print(key,value)
  17. """
  18. #直接输出
  19. for num in l:
  20. if (num+2) in l:
  21. print (num,num+2)
  22. """

 

9、给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和
  1. l = [100,97,67,7,3,5,1,40,39]
  2. c = max(l)
  3. d = min(l)
  4. num = len(l)
  5. sum_ = sum(l)
  6. avg = sum_ / num
  7. print(f'最大值为{c},最小值为{d},总和为{sum_},平均值为{avg}')

10、将list中的重复数据去重,至少使用两种方案
  1. list_1 =[1,2,4,7,9,4,7,1,1,]
  2. print("删除重复项前的列表为"+str(list_1))
  3. list_2 =[]
  4. #第一种方法 遍历列表
  5. for i in list_1 :
  6. if i not in list_2 :
  7. list_2.append(i)
  8. print("删除重复项后的列表为"+str(list_2))
  9. #第二种方法 set法 顺序会改变
  10. list_2 = list(set(list_1))
  11. print("删除重复项后的列表为"+str(list_2))
  12. #第三种方法 全局函数
  13. import builtins
  14. dir(builtins)
  15. for i in enumerate(list_1) :
  16. list_2.append(i)
  17. for i in list_2:
  18. print(i)

11、如何将0-10随机存入列表中
  1. import random #随机
  2. l = []
  3. while True:
  4. n = random.randint(0,10) #n从0到10随机取
  5. if n not in l : #不重复,就加入列表
  6. l.append(n)
  7. if len(l) == 11: #当长度为11,证明0-10所以数字都有
  8. break
  9. for j in l :
  10. print(j) #遍历

今天作业ok!拜拜~~

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号