Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
投币模拟器-Python_Python - Fatal编程技术网

投币模拟器-Python

投币模拟器-Python,python,Python,大约6周前,我开始学习python(它也是我正在学习的第一种编程语言),我正在进行各种小项目的实践 在这一次,我试图建立一个抛硬币模拟器,它将不断要求玩家抛硬币,直到他们说不,并在字典中返回结果,见下面的代码 我的代码的问题是,当我键入“no”以打破while循环时,它会再次调用coin_flip(),我不明白为什么。例如,如果玩家玩4次,程序将掷硬币5次 此外,我正在使用这个项目作为练习while循环的一种手段,因此如果您能够按照这些思路进行故障排除,我将不胜感激 提前谢谢 用户说“N”后,

大约6周前,我开始学习python(它也是我正在学习的第一种编程语言),我正在进行各种小项目的实践

在这一次,我试图建立一个抛硬币模拟器,它将不断要求玩家抛硬币,直到他们说不,并在字典中返回结果,见下面的代码

我的代码的问题是,当我键入“no”以打破while循环时,它会再次调用coin_flip(),我不明白为什么。例如,如果玩家玩4次,程序将掷硬币5次

此外,我正在使用这个项目作为练习while循环的一种手段,因此如果您能够按照这些思路进行故障排除,我将不胜感激

提前谢谢

用户说“N”后,您再次调用coin_flip()。您可以删除重复的代码,如下所示:

import random


def coin_flip():
    if random.randint(0, 1) == 1:
        return 'Head'
    else:
        return 'Tails'


def coin_flip_simulator():
    coin_dict = {'Head': 0, 'Tails': 0}
    ask_play = input('Would you like to flip a die? Enter Yes or No: ').upper()
    #This will only run as long as the user keeps saying no
    while ask_play[0] != 'N':
        flip = coin_flip()
        coin_dict[flip] += 1
        print(flip, coin_dict)
        ask_play = input('Would you like to flip again? ').upper()
    print(f'Thank you for playing! Your total score is {coin_dict}')
    print('No worries!')


coin_flip_simulator()
用户说“N”后,您再次调用coin_flip()。您可以删除重复的代码,如下所示:

import random


def coin_flip():
    if random.randint(0, 1) == 1:
        return 'Head'
    else:
        return 'Tails'


def coin_flip_simulator():
    coin_dict = {'Head': 0, 'Tails': 0}
    ask_play = input('Would you like to flip a die? Enter Yes or No: ').upper()
    #This will only run as long as the user keeps saying no
    while ask_play[0] != 'N':
        flip = coin_flip()
        coin_dict[flip] += 1
        print(flip, coin_dict)
        ask_play = input('Would you like to flip again? ').upper()
    print(f'Thank you for playing! Your total score is {coin_dict}')
    print('No worries!')


coin_flip_simulator()

一个选项,应该做下面的工作,保留您想要的消息中的行为(我认为)


你第一次玩了两次。只是删除了一些行,它使它成为一个选项,应该做下面的工作,保留您想要的消息中的行为(我想)


你第一次玩了两次。刚刚删除了一些行,很高兴听到您开始进入Python的奇妙世界。我根据您试图实现的目标编写了一些代码。请尝试一下这个代码,并让我知道它是否有效

随机导入
def coin_flip():
如果random.randint(0,1)==1:
返回“头”
其他:
返回“尾巴”
def coin_flip_模拟器():
硬币名称={'Head':0,'Tails':0}
player\u name=input('你叫什么名字?\n')
ask_player=input(f'{player_name},您想掷硬币吗?(Y/N):')。upper()
而问你的玩家N':
掷硬币
投币口[翻转]+=1
打印(f“当前分数为:==>{coin_dict}”)
ask_player=input(f'你想再翻一次吗?')。upper()
打印(f'\n不用担心,{player\u name}!非常感谢您的演奏!\n您的总分为=>{coin\u dict}'))
硬币翻转模拟器()

很高兴听到您开始进入令人惊叹的Python世界。我根据您试图实现的目标编写了一些代码。请尝试一下这个代码,并让我知道它是否有效

随机导入
def coin_flip():
如果random.randint(0,1)==1:
返回“头”
其他:
返回“尾巴”
def coin_flip_模拟器():
硬币名称={'Head':0,'Tails':0}
player\u name=input('你叫什么名字?\n')
ask_player=input(f'{player_name},您想掷硬币吗?(Y/N):')。upper()
而问你的玩家N':
掷硬币
投币口[翻转]+=1
打印(f“当前分数为:==>{coin_dict}”)
ask_player=input(f'你想再翻一次吗?')。upper()
打印(f'\n不用担心,{player\u name}!非常感谢您的演奏!\n您的总分为=>{coin\u dict}'))
硬币翻转模拟器()

whileif外部不带
if的循环可以只使用一个
while
外部不带
if
的循环。对于python 3,使用
input()
。OP正在使用Python3。对Python3使用
input()
。OP使用的是python 3。如果“if ask_play[0]=='Y':”没有用,请用下面的while检查答案。@Daphoque我授予了源代码的最小更正以使其正常工作。你就是这样看问题的。重写这些东西没有帮助。优雅在学习中没有位置!的确,但效率是的:)我们不是要求你重写这些东西,但当你发现错误时,你可以帮助提高代码的效率,并帮助人们以更好的方式编写代码:我看到你从来没有面对过任何学生或人来认真教,我亲爱的朋友。:)如果你的if“if ask_play[0]=='Y':”没有用,答案将用下面的while进行检查。@Daphoque我授予了原始版本的最小更正代码,以使其生效。你就是这样看问题的。重写这些东西没有帮助。优雅在学习中没有位置!的确,但效率是的:)我们不是要求你重写这些东西,但当你发现错误时,你可以帮助提高代码的效率,并帮助人们以更好的方式编写代码:我看到你从来没有面对过任何学生或人来认真教,我亲爱的朋友。:)
import random


def coin_flip():
    if random.randint(0, 1) == 1:
        return 'Head'
    else:
        return 'Tails'


def coin_flip_simulator():
    coin_dict = {'Head': 0, 'Tails': 0}
    ask_play = input('Would you like to flip a die? Enter Yes or No: ').upper()
    if ask_play[0] == 'Y':
        while ask_play[0] != 'N':
            flip = coin_flip()
            coin_dict[flip] += 1
            print(flip, coin_dict)
            ask_play = input('Would you like to flip again? ').upper()

        print(f'Thank you for playing! Your total score is {coin_dict}')
    else:
        print('No worries!')


coin_flip_simulator()