python 作业 15
问题:
0. 我们知道在游戏运行后,通常是玩家中断游戏或者主角被打败了,才会退出游戏。那么现在让你来开发一个游戏,你觉得应该如何实现这个机制(可以画流程图,也可以简单概述)?
用while语句来实现 玩家被打断就是触发条件 触发break语句跳出循环
1. 请问下面代码存在什么问题?
love = 'yes' while love = 'yes': love = input("今天你还爱我吗:")
while 后面应该是判断 用== 但是这里用的是= 不是判断 是赋值 用错了
2.如果不上机,你能算出下面循环执行完毕之后,打印的值应该是多少吗?
i = 1 sum = 0 while i < 10: sum = sum + i i = i + 1 print(sum)
45
3. 请问下面代码是否会构成一个死循环?
x = 9 while x: print(x) x -= 3 x += 1
会 没有定义x大小 这里x会一直减2 一直减 减到负数任然在减
4.当程序跑起来之后,如果发现是死循环,如何强制退出呢?
Ctrl+C
5. 以下两段代码实现相同的功能,你觉得哪一段代码的实现更优雅?
password = '' while password != "FishC": password = input("请输入密码:") print("欢迎您来!")
while True: password = input("请输入密码:") if password == "FishC": break print("欢迎您来!")
第一种和第二种 虽然都一样 但是第二种更方便检查
动动手:
0.请编写一个程序,实现如下图所示的效果:
while True: n = input("请输入一句口号(输入STOP结束):") if n == "STOP": break print(n)
1.
- 如果抛硬币的次数小于 100,则打印每次的结果,否则不打印
- 统计最终正面和反面的次数

import random a = 0 b = 0 i = 0 n = int(input("请输入抛硬币次数:")) print("开始抛硬币实验:") if n < 100: while i < n: num = random.randint(1,10) if num % 2: print("正面",end=" ") a += 1 else: print("反面",end=" ") b += 1 i = i + 1 else: while i < n: num = random.randint(1,10) if num % 2: a += 1 else: b += 1 i = i + 1 print("经过",n,"次抛硬币实验结果如下:") print("正面:",a,"次") print("反面:",b,"次")
2. 终极考验:编写代码,让程序分别统计正反面最多出现连续的次数。

import random a = 0 #统计正面 b = 0 #统计反面 zheng = 0 #统计正面连续次数 fan = 0 #统计反面连续次数 zhengmax = 0 #统计正面最多连续次数 fanmax = 0 #统计反面最多连续次数 g = 0 #记录状态 i = 0 n = int(input("请输入抛硬币次数:")) print("开始抛硬币实验:") if n < 100: while i < n: num = random.randint(1,10) if num % 2: print("正面",end=" ") a += 1 zheng += 1 if g == 2: zheng = 1 if zheng > zhengmax: zhengmax = zheng g = 1 else: print("反面",end=" ") b += 1 fan += 1 if g == 1: fan = 1 if fan > fanmax: fanmax = fan g = 2 i = i + 1 else: while i < n: num = random.randint(1,10) if num % 2: a += 1 zheng += 1 if g == 2: zheng = 1 if zheng > zhengmax: zhengmax = zheng g = 1 else: b += 1 fan += 1 if g == 1: fan = 1 if fan > fanmax: fanmax = fan g = 2 i = i + 1 print("经过",n,"次抛硬币实验结果如下:") print("正面:",a,"次") print("反面:",b,"次") print("最多连续正面:", zhengmax, "次", sep="") print("最多连续反面:", fanmax, "次", sep="")
import random a = 0 #统计正面 b = 0 #统计反面 zheng = 0 #统计正面连续次数 fan = 0 #统计反面连续次数 zhengmax = 0 #统计正面最多连续次数 fanmax = 0 #统计反面最多连续次数 g = 0 #记录状态 i = 0 n = int(input("请输入抛硬币次数:")) if n > 100: ignore = True else: ignore = False print("开始抛硬币实验:") while i < n : num = random.randint(1,10) if num % 2: a += 1 zheng += 1 if not ignore: print("正面",end=" ") if g == 2: zheng =1 if zheng > zhengmax: zhengmax = zheng g = 1 else: b += 1 fan += 1 if not ignore: print("反面",end=" ") if g == 1: fan = 1 if fan > fanmax: fanmax = fan g = 2 i += 1 print("经过",n,"次抛硬币实验结果如下:") print("正面:",a,"次") print("反面:",b,"次") print("最多连续正面:", zhengmax, "次", sep="") print("最多连续反面:", fanmax, "次", sep="")

浙公网安备 33010602011771号