1、题目:打印出所有的”水仙花数”,所谓”水仙花数”是指一个三位数,其各个位上数字的立方和等于该数本身。例如:153是一个”水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
for n in range(100,1000):
i = n // 100
j = n // 10 % 10
k = n % 10
if n == i*i*i + j*j*j + k*k*k:
print(n)
2、设计“过7游戏”的程序, 打印出1-100之间除了含7和7的倍数之外的所有数字。
i= 1
while i <= 100:
if '7' not in str(i) and i % 7 != 0:
print(i, end=' ')
i += 1
# method2
j = 1
while j <= 100:
if j % 10 != 7 and j % 7 != 0:
print(j, end="")
j += 1
3、使用while,完成以下图形的输出。(每一行的星星不能用*乘以星星的数量来完成,须使用while嵌套)(较难)
**
*
*
*
*
*
**
row = 1
while row <= 9:
col = 1
star = 1
# 先计算前五行的
if row <= 5:
while col <= (5 - row):
print(" ", end="")
col += 1
while star <= row * 2 - 1:
print("*", end="")
star += 1
# 计算的后四行的
else:
while col <= (row - 5):
print(" ", end="")
col += 1
while star <= 19 - row * 2:
print("*", end="")
star += 1
print("")
row += 1
# method2
row = 1
while row <= 5:
j = 1
while j <= row:
if j == 1:
print(" " * (5-row), end="") # 一个空格
k = 1
while k <= 2 * row - 1:
print("*", end="")
k += 1
j += 1
print("") # 换行操作
row += 1
while 5 < row <= 9:
j2 = 1
while j2 <= row:
if j2 == 1:
print(" " * (row-5), end="")
k2 = 1
while k2 <= 19 - row * 2:
print("*", end="")
k2 += 1
j2 += 1
print("")
row += 1
# updated method 2
row = 1
while row <= 9:
if row <= 5:
j = 1
while j <= row:
if j == 1:
print(" " * (5-row), end="")
k = 1
while k <= 2 * row - 1:
print("*", end="")
k += 1
j += 1
else:
j = 1
while j <= row:
if j == 1:
print(" " * (row-5), end="")
k = 1
while k <= 19 - row * 2:
print("*", end="")
k += 1
j += 1
print("")
row += 1
4、使用while、if来完成剪刀石头布程序,要求,当玩家第3次获胜时才退出游戏,否则继续玩。
import random
i = 1
while i <= 3:
player = int(input("请输入代表数字:0-剪刀,1-石头,2-布"))
if player > 2:
print("请输入合法数字")
else:
print(f"玩家出手:{player}")
computer = random.randint(0, 2)
print(f"Computer出手:{computer}")
if ((player == 0) and (computer == 2)) or ((player == 1) and (computer == 0)) or ( (player == 2) and (computer == 1)):
print(f"玩家获胜{i}次")
i += 1
elif player == computer:
print("平局")
else: # 玩家没获胜
print("Computer获胜")
print("玩家三次获胜,游戏结束")
5、幸运猜猜猜:游戏随机给出一个0~99(包括0和99)的数字,然后让你猜是什么数字。
你可以随便猜一个数字,游戏会提示太大还是太小,从而缩小结果范围。
经过几次猜测与提示后,最终推出答案。在游戏过程中,记录你最终猜对时所需要的次数,
游戏结束后公布结果。
说明:
1~2次猜中,打印你太TM有才了!
3~6次猜中,打印这么快就猜出来了,很聪明嘛!
大于7次猜中,打印猜了半天才猜出来,小同志,尚需努力啊!
猜测次数最多20次。
import random
i = 1
computer = random.randint(0, 99)
while i <= 20:
num = int(input("请输入您猜测的数字:"))
if num != computer:
if num > computer:
print("您猜测的数字太大!")
elif num < computer:
print("您猜测的数字太小!")
i += 1
else:
print("您猜测的次数为:%d" % i)
if i <= 2:
print("你太TM有才了!")
break
elif 3 <= i <= 6:
print("这么快就猜出来了,很聪明嘛!")
break
else:
print("猜了半天才猜出来,小同志,尚需努力啊!")
break