为了账号安全,请及时绑定邮箱和手机立即绑定

如何“完成”代码,使其不只是继续运行

如何“完成”代码,使其不只是继续运行

四季花海 2021-09-25 14:06:13
我正在尝试用 Python 制作课堂掷骰子游戏。下面是我的代码。我无法弄清楚游戏如何完成,即选择“n”时,我从未结束重复最终打印(即“,”我希望您喜欢骰子。祝你有美好的一天!“)import randomimport timeplayer = random.randint(1,6)ai = random.randint(1,6)cont = str(input('Roll the dice? Y/N'))while cont == "Y":    print ("You are rolling...")    time.sleep(3)    print ("You rolled " + str(player))    print("The computer rolls...." )    time.sleep(3)    print ("The computer rolled " + str(ai))    if player > ai:        print("You win")    if ai > player:        print("You lose")    cont2 = str(input('Would you like to play again? Y/N'))while cont != "Y" or cont2 != "Y":    breakprint ("I hope you enjoyed playing dice. Have a great day!")
查看完整描述

3 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

将下一个用户输入cont2分配给的位置,您只需重新分配给cont。如果用户按“N”,这将“中断”while 循环。然后您将不再需要第二个 while 循环。


编辑:正如上面 Daniel 所说,你的代码 nog 总是给出相同的计算机掷骰子。Yoy 应该将ai行更改为while 循环内部。


import random

import time

player = random.randint(1,6)

# remove ai = random.randint(1,6) here

cont = str(input('Roll the dice? Y/N'))

while cont == "Y":

    print ("You are rolling...")

    time.sleep(3)

    print ("You rolled " + str(player))

    print("The computer rolls...." )

    ai = random.randint(1,6) # <-- add here again

    time.sleep(3)

    print ("The computer rolled " + str(ai))

    if player > ai:

        print("You win")

    if ai > player:

        print("You lose")

    cont = str(input('Would you like to play again? Y/N')) # <-- this line is changed


print ("I hope you enjoyed playing dice. Have a great day!")

您还可以通过.upper()在输入后添加来使其对给定的用户输入更加健壮。所以:cont = str(input('Roll the dice? Y/N')).upper()。如果用户然后输入 'y' 而不是 'Y',它仍然可以工作。


查看完整回答
反对 回复 2021-09-25
?
MMTTMM

TA贡献1869条经验 获得超4个赞

 import random                                                                  

 import time                                                                    

 cont = str(input('Roll the dice? Y/N'))                                        

 while cont == "Y":                                                             

    player = random.randint(1,6)                                               

    ai = random.randint(1,6)                                                   

    print ("You are rolling...")                                               

    time.sleep(3)                                                              

    print ("You rolled " + str(player))                                        

    print("The computer rolls...." )                                           

    time.sleep(3)                                                              

    print ("The computer rolled " + str(ai))                                   

    if player > ai:                                                            

        print("You win")                                                       

    if ai > player:                                                            

        print("You lose")                                                      

    cont2 = str(input('Would you like to play again? Y/N'))                                                                                                    

    if cont2.lower() == 'y':                                                   

        cont == "Y"                                                            

    elif cont2.lower() == 'n':                                                 

        cont == "N"                                                            

        break                                                                  

 print ("I hope you enjoyed playing dice. Have a great day!"

只是为了使您的代码更健壮,我在while循环中包含了掷骰子的值。其次,您可以while使用 an摆脱第二个循环,if--else使您的代码更具可读性和可理解性。


查看完整回答
反对 回复 2021-09-25
  • 3 回答
  • 0 关注
  • 230 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信