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="")

 

posted @ 2022-06-28 17:58  DICEi  阅读(119)  评论(0)    收藏  举报