Python基础教程:while和for的进阶案例
1、 求 1+2!+3!+…+20! 的和。
j = 1
sum_all = 0
while j <= 20:
i = 1
sum = 1
while i <= j:
sum *= i
i += 1
# print(sum)
sum_all += sum
j += 1
print("1+2!+3!+...+20!的和是{}".format(sum_all))
sum = 1
ret_sum = 0
for i in range(1, 21):
sum *= i
ret_sum += sum
print(ret_sum)
2、本金10000元存入银行,年利率是千分之三。每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少?
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,互帮互助,
群里还有不错的视频学习教程和PDF电子书!
'''
i = 0
money = 10000
while i < 5:
money *= (1 + 0.003)
i += 1
print("五年以后的本金是{:.2f}".format(money))
money = 10000
for i in range(1, 6):
money *= (1 + 0.003)
3、题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各个位上数字的立方和等于该数本身。例如:153是一个”水仙花数",因为153=1的三次方+5的三次方+3的三次方。
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,互帮互助,
群里还有不错的视频学习教程和PDF电子书!
'''
num = 100
while num <= 999:
if ((num // 100) ** 3 + (num % 100 // 10) ** 3 + (num % 10) ** 3) == num:
print(num)
num += 1
for i in range(100, 1000):
if ((num // 100) ** 3 + (num % 100 // 10) ** 3 + (num % 10) ** 3) == i:
print(num)
4、设计“过7游戏”的程序, 打印出1-100之间除了含7和7的倍数之外的所有数字
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,互帮互助,
群里还有不错的视频学习教程和PDF电子书!
'''
i = 0
while i <= 99:
i += 1
if i % 7 == 0 or i % 10 == 7 or i // 10 == 7:
continue
else:
print(i)
for i in range(1, 101):
if i % 7 == 0 or i % 10 == 7 or i // 10 == 7:
continue
print(i)
5、使用while,完成以下图形的输出。(每一行的星星不能用*乘以星星的数量来完成,须使用while嵌套)(较难)
*
*** 行 列 变量保存应该有多少个*
*****
*******
*********
*******
*****
***
*
row = 1
count = 1 # 表示当前行数应该有多少个*
while row <= 9:
col = 1
if row != 1:
if row < 6:
count += 2
else:
count -= 2
while col <= count:
if col == 1: # 处理*前面的空格
print(" " * ((9 - count) // 2), end="")
print("*", end="")
col += 1
print("")
row += 1
6、使用while、if来完成剪刀石头布程序,要求,当玩家第3次获胜时才退出游戏,否则继续玩。
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,互帮互助,
群里还有不错的视频学习教程和PDF电子书!
'''
import random
# 获胜次数
win_times = 0
while True:
player = int(input("请输入:剪刀(0) 石头(1) 布(2)"))
computer = random.randint(0, 2)
if (player == 0 and computer == 2) or (player == 1 and computer == 0) or (player == 2 and computer == 1):
win_times += 1
if win_times == 3:
print("你赢了三次了")
break
else:
print("你赢了这局游戏")
elif player == computer:
print("平局,再来一次")
else:
print("你输了,不要走,决战到天亮")
7、幸运猜猜猜:游戏随机给出一个0~99(包括0和99)的数字,然后让你猜是什么数字。
你可以随便猜一个数字,游戏会提示太大还是太小,从而缩小结果范围。
经过几次猜测与提示后,最终推出答案。在游戏过程中,记录你最终猜对时所需要的次数,
游戏结束后公布结果。
说明:
1~2次猜中,打印你太TM有才了!
3~6次猜中,打印这么快就猜出来了,很聪明嘛!
大于7次猜中,打印猜了半天才猜出来,小同志,尚需努力啊!
猜测次数最多20次。
import random
num = random.randint(0, 99)
print(num)
times = 0
while times <= 20:
ges = int(input("请输入你猜的数字: "))
if ges > num:
print("你猜的数太大了")
times += 1
if times == 20:
print("你都猜了20次了,还没猜中")
break
continue
elif ges < num:
print("你猜的数字太小了")
times += 1
if times == 20:
print("你都猜了20次了,还没猜中")
break
continue
else:
if 1 <= times <= 2:
print("有才")
elif 3 <= times <= 6:
print("还可以")
else:
print("需要努力")
print(num)
本文来自博客园,作者:I'm_江河湖海,转载请注明原文链接:https://www.cnblogs.com/jhhh/p/16763773.html

浙公网安备 33010602011771号