猜数字游戏的设计:
系统生成一个1-100内随机数
用户输入数字与系统生成的随机数比较(一共5次机会)
1.判断输入的是否为数字 若输入的不是数字 提示重新输入
2.若输入的数字比生成的随机数大(小),提示输入数字过大(过小)
3.若输入数字余生成数字相等,提示回答正确
4.五次都没回答正确 提示很遗憾,未猜对
最后一行的else为什么不用缩进 还是我写的代码有问题
您的最后的 else 实则是多余的,for 循环完成5次,自然就执行到您的最后一行 print() 了。您的写法有问题,应该报错才对,因为 else 不属于前面的if代码块。else应该要与for或者while配对用才可以。我没试过单独存在。
#!sur/bin/nve python
# coding: utf-8
n = int(input(f"\n{'输入一个整数:':>12}"))
for i in range(3):
if n > 50:
print(f"\n{n:>8}大于50")
elif n > 40:
print(f"\n{n:>8}大于40")
elif n > 30:
print(f"\n{n:>8}大于30")
else:
print(f"\n您的输入是{n:>8}!")
#!sur/bin/nve python
# coding: utf-8
n = int(input(f"\n{'输入一个整数:':>12}"))
for i in range(3):
if n > 50:
print(f"\n{n:>8}大于50")
elif n > 40:
print(f"\n{n:>8}大于40")
elif n > 30:
print(f"\n{n:>8}大于30")
#else:
print(f"\n您的输入是{n:>8}!")
经测试,有没得else,效果一样。
请翻阅我的学习笔记——
if...else...:如果不满足条件,执行else的语句。
for...else...:for循环全部正常执行完,会执行else语句;如果循环中因break中断退出,就不会执行else语句。
while...else...和for...else...用法一样。
感觉try...else...也类似,执行中没有异常,就会执行else语句;如果捕获到异常,就不会执行else语句。
首先要处理的问题是亮度问题,因为拍摄时间不一致导致的亮度差异可以使用灰度均衡来处理,然后进行图像相减,观察图像差异,确定哪个窗户发生了变化。
答案:
最后一行的else语句不需要缩进。如果把else语句缩进,它将成为if语句的一部分,从而产生语法错误。
为了让猜数字游戏更加高效和易于理解,可以采用以下优化方式:
1.将生成随机数的代码封装到一个函数中,以便在需要多次生成随机数时方便调用。函数可以采用random库生成随机整数。
2.将比较用户输入和随机数的代码封装到一个函数中,以便在需要多次比较时方便调用。函数可以采用if语句实现。
3.采用while循环来让用户有5次机会猜测。在每轮循环中,更新剩余次数,并提示用户输入。
4.使用break语句来跳出循环,当用户猜对或猜错5次时,都应该跳出循环。
下面是代码示例:
import random
def generate_random_number():
"""生成1-100范围内的随机整数"""
return random.randint(1, 100)
def compare_numbers(user_input, random_number):
"""判断用户输入与随机数的大小关系"""
if user_input < random_number:
print("输入数字过小")
elif user_input > random_number:
print("输入数字过大")
else:
print("恭喜你猜对了!")
return True
return False
# 主函数
def guess_number_game():
# 生成随机数
random_number = generate_random_number()
# 初始化剩余次数
remain_chance = 5
# 提示用户输入,直到猜对或者机会用尽
while remain_chance > 0:
user_input = input("请输入1-100之间的整数:")
# 判断用户输入是否为数字,如果不是数字,重新输入
if not user_input.isdigit():
print('输入不是数字,请重新输入')
remain_chance -= 1
continue
# 将用户输入转换为整数
user_input = int(user_input)
# 对比用户输入和随机数
if compare_numbers(user_input, random_number):
break
# 剩余次数减1
remain_chance -= 1
# 提示剩余次数
print("您还剩余 %d 次机会" % remain_chance)
else:
print("很遗憾,您未猜对。正确答案是 %d" % random_number)
# 调用主函数开始游戏
guess_number_game()