python 进阶案例_【python3】while和for的进阶案例

#Demo 1#求 1+2!+3!+...+20! 的和。

j= 1sum_all=0while j <= 20:

i= 1sum= 1

while i <=j:

sum*=i

i+= 1

#print(sum)

sum_all +=sum

j+= 1

print("1+2!+3!+...+20!的和是{}".format(sum_all))

sum= 1ret_sum=0for i in range(1, 21):

sum*=i

ret_sum+=sumprint(ret_sum)"""# Demo 2

本金10000元存入银行,年利率是千分之三。

每过1年,将本金和利息相加作为新的本金。

计算5年后,获得的本金是多少?"""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)"""# Demo 3

题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,

其各个位上数字的立方和等于该数本身。例如:153是一个”水仙花数",

因为153=1的三次方+5的三次方+3的三次方。"""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)#Demo 4#设计“过7游戏”的程序, 打印出1-100之间除了含7和7的倍数之外的所有数字

#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)"""# Demo 5

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

*

*** 行 列 变量保存应该有多少个*

*****

*******

*********

*******

*****

***

*"""row= 1count= 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

"""# Demo 6

使用while、if来完成剪刀石头布程序,要求,

当玩家第3次获胜时才退出游戏,否则继续玩。"""

importrandom#获胜次数

win_times =0whileTrue:

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("你输了,不要走,决战到天亮")"""# Demo 7

幸运猜猜猜:游戏随机给出一个0~99(包括0和99)的数字,然后让你猜是什么数字。

你可以随便猜一个数字,游戏会提示太大还是太小,从而缩小结果范围。

经过几次猜测与提示后,最终推出答案。在游戏过程中,记录你最终猜对时所需要的次数,

游戏结束后公布结果。

说明:

1~2次猜中,打印你太TM有才了!

3~6次猜中,打印这么快就猜出来了,很聪明嘛!

大于7次猜中,打印猜了半天才猜出来,小同志,尚需努力啊!

猜测次数最多20次。"""

importrandom

num= random.randint(0, 99)print(num)

times=0while times <= 20:

ges= int(input("请输入你猜的数字:"))if ges >num:print("你猜的数太大了")

times+= 1

if times == 20:print("你都猜了20次了,还没猜中")break

continue

elif ges

times+= 1

if times == 20:print("你都猜了20次了,还没猜中")break

continue

else:if 1 <= times <= 2:print("有才")elif 3 <= times <= 6:print("还可以")else:print("需要努力")print(num)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值