1、题目:打印出所有的”水仙花数”,所谓”水仙花数”是指一个三位数,其各个位上数字的立方和等于该数本身。例如:153是一个”水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

    1. for n in range(100,1000):
    2. i = n // 100
    3. j = n // 10 % 10
    4. k = n % 10
    5. if n == i*i*i + j*j*j + k*k*k:
    6. print(n)

    2、设计“过7游戏”的程序, 打印出1-100之间除了含7和7的倍数之外的所有数字。

    1. i= 1
    2. while i <= 100:
    3. if '7' not in str(i) and i % 7 != 0:
    4. print(i, end=' ')
    5. i += 1
    6. # method2
    7. j = 1
    8. while j <= 100:
    9. if j % 10 != 7 and j % 7 != 0:
    10. print(j, end="")
    11. j += 1


    3、使用while,完成以下图形的输出。(每一行的星星不能用*乘以星星的数量来完成,须使用while嵌套)(较难)


    **

    *
    *
    *
    *
    *
    **

    1. row = 1
    2. while row <= 9:
    3. col = 1
    4. star = 1
    5. # 先计算前五行的
    6. if row <= 5:
    7. while col <= (5 - row):
    8. print(" ", end="")
    9. col += 1
    10. while star <= row * 2 - 1:
    11. print("*", end="")
    12. star += 1
    13. # 计算的后四行的
    14. else:
    15. while col <= (row - 5):
    16. print(" ", end="")
    17. col += 1
    18. while star <= 19 - row * 2:
    19. print("*", end="")
    20. star += 1
    21. print("")
    22. row += 1
    23. # method2
    24. row = 1
    25. while row <= 5:
    26. j = 1
    27. while j <= row:
    28. if j == 1:
    29. print(" " * (5-row), end="") # 一个空格
    30. k = 1
    31. while k <= 2 * row - 1:
    32. print("*", end="")
    33. k += 1
    34. j += 1
    35. print("") # 换行操作
    36. row += 1
    37. while 5 < row <= 9:
    38. j2 = 1
    39. while j2 <= row:
    40. if j2 == 1:
    41. print(" " * (row-5), end="")
    42. k2 = 1
    43. while k2 <= 19 - row * 2:
    44. print("*", end="")
    45. k2 += 1
    46. j2 += 1
    47. print("")
    48. row += 1
    49. # updated method 2
    50. row = 1
    51. while row <= 9:
    52. if row <= 5:
    53. j = 1
    54. while j <= row:
    55. if j == 1:
    56. print(" " * (5-row), end="")
    57. k = 1
    58. while k <= 2 * row - 1:
    59. print("*", end="")
    60. k += 1
    61. j += 1
    62. else:
    63. j = 1
    64. while j <= row:
    65. if j == 1:
    66. print(" " * (row-5), end="")
    67. k = 1
    68. while k <= 19 - row * 2:
    69. print("*", end="")
    70. k += 1
    71. j += 1
    72. print("")
    73. row += 1

    4、使用while、if来完成剪刀石头布程序,要求,当玩家第3次获胜时才退出游戏,否则继续玩。

    1. import random
    2. i = 1
    3. while i <= 3:
    4. player = int(input("请输入代表数字:0-剪刀,1-石头,2-布"))
    5. if player > 2:
    6. print("请输入合法数字")
    7. else:
    8. print(f"玩家出手:{player}")
    9. computer = random.randint(0, 2)
    10. print(f"Computer出手:{computer}")
    11. if ((player == 0) and (computer == 2)) or ((player == 1) and (computer == 0)) or ( (player == 2) and (computer == 1)):
    12. print(f"玩家获胜{i}次")
    13. i += 1
    14. elif player == computer:
    15. print("平局")
    16. else: # 玩家没获胜
    17. print("Computer获胜")
    18. print("玩家三次获胜,游戏结束")

    5、幸运猜猜猜:游戏随机给出一个0~99(包括0和99)的数字,然后让你猜是什么数字。
    你可以随便猜一个数字,游戏会提示太大还是太小,从而缩小结果范围。
    经过几次猜测与提示后,最终推出答案。在游戏过程中,记录你最终猜对时所需要的次数,
    游戏结束后公布结果。
    说明:
    1~2次猜中,打印你太TM有才了!
    3~6次猜中,打印这么快就猜出来了,很聪明嘛!
    大于7次猜中,打印猜了半天才猜出来,小同志,尚需努力啊!
    猜测次数最多20次。

    1. import random
    2. i = 1
    3. computer = random.randint(0, 99)
    4. while i <= 20:
    5. num = int(input("请输入您猜测的数字:"))
    6. if num != computer:
    7. if num > computer:
    8. print("您猜测的数字太大!")
    9. elif num < computer:
    10. print("您猜测的数字太小!")
    11. i += 1
    12. else:
    13. print("您猜测的次数为:%d" % i)
    14. if i <= 2:
    15. print("你太TM有才了!")
    16. break
    17. elif 3 <= i <= 6:
    18. print("这么快就猜出来了,很聪明嘛!")
    19. break
    20. else:
    21. print("猜了半天才猜出来,小同志,尚需努力啊!")
    22. break