Python猜谜游戏,我的赢的条件打印赢和输

Python猜谜游戏,我的赢的条件打印赢和输,python,Python,我正在学习python并尝试猜谜游戏。我的游戏是有效的,但我的赢的条件是“你赢”和“你输”,我认为我的“如果”陈述是错误的,但我可能是错的。 另外,我的输赢打印有问题,我只能让它打印输赢。。 提前谢谢 import random print("Number guessing game") name = input("Hello, please input your name: ") win = 0 loss = 0 diceRoll = random

我正在学习python并尝试猜谜游戏。我的游戏是有效的,但我的赢的条件是“你赢”和“你输”,我认为我的“如果”陈述是错误的,但我可能是错的。 另外,我的输赢打印有问题,我只能让它打印输赢。。 提前谢谢

import random

print("Number guessing game")

name = input("Hello, please input your name: ")
win = 0
loss = 0

diceRoll = random.randint(1, 6)

if diceRoll == 1:
    print("You have 1 guess.")
if diceRoll == 2:
print("You have 2 guesses.")
if diceRoll == 3:
    print("You have 3 guesses.")
if diceRoll == 4:
    print("You have 4 guesses.")
if diceRoll == 5:
    print("You have 5 guesses.")
if diceRoll == 6:
    print("You have 6 guesses.")

number = random.randint(1, 5)

chances = 0

print("Guess a number between 1 and 5:")

while chances < diceRoll:

    guess = int(input())

    if guess == number:

        print("Congratulation YOU WON!!!")
        break
        win += 1
    elif guess < number:
        print("Your guess was too low")

    else:
        print("Your guess was too high")

    chances += 1

if not chances == 0:
    print("YOU LOSE!!! The number is", number)
    loss += 1
print(name)
print("win: "+str(win))
print("loss: "+str(loss))
随机导入
打印(“猜数字游戏”)
name=input(“您好,请输入您的姓名:”)
赢=0
损失=0
掷骰子=随机。随机数(1,6)
如果diceRoll==1:
打印(“你有一个猜测。”)
如果掷骰子==2:
打印(“你有两个猜测。”)
如果掷骰子==3:
打印(“你有3个猜测。”)
如果掷骰子==4:
打印(“你有4个猜测。”)
如果掷骰=5:
打印(“你有5个猜测。”)
如果掷骰=6:
打印(“你有6个猜测。”)
number=random.randint(1,5)
机会=0
打印(“猜测1到5之间的数字:”)
当机会来临时:
guess=int(输入())
如果guess==数字:
打印(“恭喜你赢了!!!”)
打破
赢+=1
elif guess<数字:
打印(“您的猜测太低”)
其他:
打印(“您的猜测太高”)
机会+=1
如果不是,则机会==0:
打印(“你输了!!!数字是”,数字)
损失+=1
印刷品(名称)
打印(“win:+str(win))
打印(“损失:+str(损失))

尝试更改循环。如果它正确,则您正在中断,因此可以使用
while:else
。否则,你可以在最后一次机会中获胜,但仍然会得到失败的信息

在掷骰子时:
guess=int(输入())
如果guess==数字:
打印(“恭喜你赢了!!!”)
打破
赢+=1
elif guess<数字:
打印(“您的猜测太低”)
其他:
打印(“您的猜测太高”)
机会+=1
其他:
打印(“你输了!!!数字是”,数字)
损失+=1

在while循环中,if语句应该是

if guess == number:
    print("Something)
    win += 1
    break
if win != 0:
    print("You lose")
else:
    print("You win")
最后一个if语句应该是

if guess == number:
    print("Something)
    win += 1
    break
if win != 0:
    print("You lose")
else:
    print("You win")

问题出在最后的
if
语句中。如果玩家的
几率
大于
掷骰子
,则玩家将失败,而如果玩家的几率不为0,则if条件为true,即玩家失败一次

最终if语句的代码应如下所示:

if chances >= diceRoll:
    print("YOU LOSE!!! The number is", number)
    loss += 1
至于打印win的问题,这里的问题是while循环中的第一个if语句。如果玩家赢了,则首先遇到
break
语句,因此代码会跳出while循环,而不会增加
win
计数器

只需将
break
语句与
win+=1
交换,它就会产生奇迹:

if guess == number:
    print("Congratulation YOU WON!!!")
    win += 1
    break
开始看

  • 你休息的位置
  • 损失条件

您进入while循环,它增加
机会
并打印“您赢了”,然后您检查
如果没有机会==0
这是真的,因此您也打印“您输了”。欢迎!祝你学习顺利。如果您通读了代码所做的事情,您可能会注意到,如果您猜错了,那么机会将增加1,如果您猜对了,那么您将跳出循环,然后检查机会是否不等于0。您可以在win循环中将机会重置为零。另外请注意,break语句在win增量之前,所以永远不会执行win+=1。最后一个问题是,我试图打印到txt文件,但我的新行出现错误:stat.write(name+”:“+”win:“+str(win)+”loss:“+str(loss)+”chances:“+str(chances),(“\n”))我想要一个新的行打印后,但无法得到正确的格式谢谢你的帮助,所以是应该使用其他。