关于Python004中的代码请教
import randomtimes = 3
secret = random.randint(1,10)
print('------------------我爱鱼C工作室------------------')
# 这里先给guess赋值(赋一个绝对不等于secret的值)
guess = 0
# print()默认是打印完字符串会自动添加一个换行符,end=" "参数告诉print()用空格代替换行
# 嗯,小甲鱼觉得富有创意的你应该会尝试用 end="JJ"?
print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")
while (guess != secret) and (times > 0):
temp = input()
guess = int(temp)
times = times - 1 # 用户每输入一次,可用机会就-1
if guess == secret:
print("我草,你是小甲鱼心里的蛔虫吗?!")
print("哼,猜中了也没有奖励!")
else:
if guess > secret:
print("哥,大了大了~~~")
else:
print("嘿,小了,小了~~~")
if times > 0:
print("再试一次吧:", end=" ")
else:
print("机会用光咯T_T")
print("游戏结束,不玩啦^_^")
萌新请教一下这一段代码中我标红的部分另secret=0有什么作用?;还有标绿的部分为什么需要加个end呢?这部分有什么作用吗?? 我也是新手{:10_250:},我的理解是: 让guess等于0就可以避免guess从一开始用户还没有输入的时候就等于secret的情况,如果一开始guess的值就等于secret,那么用户没有任何输入游戏就结束了;
至于end = " ",这样可以避免在打印完"不妨猜一下小甲鱼现在心里想的是哪个数字:"之后就换行,因为不设置end的话,print会默认在结尾换行,不换行的话用户输入好看一点点 end = 是 print() 函数的一个命名可选参数,如果不使用这个参数,那么这个参数的默认值是 end = '\n',就是说,在默认情况下,print() 在输出完内容后会自动附加一个换行符 '\n',那么,下一次再调用 print() 的时候,打印的内容就会从下一行的行首开始。如果使用了 end = " ",那么,在打印完内容后,就不再附加回车换行了,取而代之的是一个空格字符 " "。
之所以在循环开始前为 guess 赋 0 值,是因为 secret 的值为 1 ~ 10 不可能为 0,while 的循环条件(guess != secret and times > 0)成立,从而,可以正常进入循环。 6YKT6ZKm5LqI 发表于 2022-7-3 21:44
我也是新手,我的理解是: 让guess等于0就可以避免guess从一开始用户还没有输入的时候就等于secre ...
那也就是说让guess=0的话是有可能出现一开始就游戏结束的情况吗?? jackz007 发表于 2022-7-3 22:04
end = 是 print() 函数的一个命名可选参数,如果不使用这个参数,那么这个参数的默认值是 end = '\ ...
怎么说,如果赋值赋值了1-10之间的某一个数的话会有什么不同吗? 本帖最后由 jackz007 于 2022-7-3 23:09 编辑
赛酱想学编程 发表于 2022-7-3 22:36
怎么说,如果赋值赋值了1-10之间的某一个数的话会有什么不同吗?
那就不好说了,如果 guess 的数值和 secret 不同的话,一切都会正常,但是,万一两者的值恰好相同的话,就不会进入 while 循环执行,会直接跳到最后一句执行:
print("游戏结束,不玩啦^_^")
你可以人为模拟这种情况,让 secret、guess 的值都是 0,然后,执行代码,看看会发生什么。
写代码的一条重要原则,就是要杜绝这种不确定性,必须让代码严格按照我们预设的逻辑准确运行。 赛酱想学编程 发表于 2022-7-3 22:35
那也就是说让guess=0的话是有可能出现一开始就游戏结束的情况吗??
guess=0就绝对不可能一开始就游戏结束,因为secret的值是1~9,只要给guess赋值不在这个范围,就可以避免游戏一开始就结束的情况 jackz007 发表于 2022-7-3 23:02
那就不好说了,如果 guess 的数值和 secret 不同的话,一切都会正常,但是,万一两者的值恰好 ...
好的,谢谢您! 6YKT6ZKm5LqI 发表于 2022-7-3 23:14
guess=0就绝对不可能一开始就游戏结束,因为secret的值是1~9,只要给guess赋值不在这个范围,就可以避免 ...
懂啦,谢谢!
页:
[1]