编写一个 Python 程序,重复要求用户输入硬币值,直到总金额与目标值匹配

Posted

技术标签:

【中文标题】编写一个 Python 程序,重复要求用户输入硬币值,直到总金额与目标值匹配【英文标题】:Write a Python program that repeatedly asks the user to input coin values until the total amount matches a target value 【发布时间】:2014-12-01 03:11:12 【问题描述】:

编写一个 Python 程序,重复要求用户输入硬币值,直到 总量与目标值匹配。目标值是随机的 生成 1 到 99(含)之间的整数。

例如,对于 31 的目标值,用户输入的硬币值可以 是 25、5 和 1,因为 31 = 25 + 5 + 1。

为了在 Python 中为目标值生成一个随机数,您必须 在程序的开头写下以下语句:

import random 

然后您可以在程序中编写以下语句来生成随机 编号:

rand = random.randint(1, 99) 

上面的语句会生成一个介于 1 到 99 之间的随机数(两者都是 端点包括在内)。这个随机数将存储在变量 rand (根据上述声明)。如果需要,您可以使用不同的变量名称。 存储在名为 rand 的变量中的随机值就是目标币值 用户必须输入硬币。

程序运行示例

下一页是程序的完整示例运行。这是一 程序将如何运行的示例;在下文中,59、70 和 76 是随机生成的数字。

示例: 本练习的目的是输入一些硬币值 加起来就是显示的目标值。

输入硬币的价值为 1 便士、5 镍、10 角钱和 25 夸特。 在最后输入的硬币值后按回车键。


Enter coins that add up to 59 cents, one per line. 
Enter first coin: 
Enter first coin: 3 
Invalid entry 
Enter first coin: 25 
Enter next coin: 5 
Enter next coin: 25 
Enter next coin: 2 
Invalid entry 
Enter next coin: 1 
Enter next coin: 1 
Enter next coin: 1 
Enter next coin: 1 
Enter next coin: 
Correct! 
Try again (y/n)?: y 
Enter coins that add up to 70 cents, one per line. 
Enter first coin: 2 
Invalid entry 
Enter first coin: 25 
Enter next coin: 25 
Enter next coin: 10 
Enter next coin: 5 
Enter next coin: 1 
Enter next coin: 25 
Sorry - total amount exceeds 70 cents. 
Try again (y/n)?: y 
Enter coins that add up to 76 cents, one per line. 
Enter first coin: 25 
Enter next coin: 25 
Enter next coin: 1 
Enter next coin: 25 
Enter next coin: 
Correct! 
Try again (y/n)?: n 
Thanks for playing ... goodbye 

这是我目前的代码:

import random

def chkcoin(acoin):
    basecoin = ["1"," 5", "10", "25"]
    flag = False
    for bc in basecoin:
        if acoin == int(bc):
            return True
        else:
            flag = True
    if flag:
        print('Invalid entry')
        return False

def tryAgain():
    comd = input('Try again (y/n)?: ')
    if comd == 'y':
        return True
    elif comd == 'n':
        print ('Thanks for playing ... goodbye')
        return False
    else:
        print ('Command error! Please enter y or n.')
        print ('Thanks for playing ... goodbye')
        return False

随机导入

def chkcoin(acoin): basecoin = ["1"," 5", "10", "25"] flag = False for bc in basecoin: if acoin == int(bc): return True else: flag = True if flag: print('Invalid entry') return False def tryAgain(): comd = input('Try again (y/n)?: ') if comd == 'y': return True elif comd == 'n': print ('Thanks for playing ... goodbye') return False else: print ('Command error! Please enter y or n.') print ('Thanks for playing ... goodbye') return False 

有人可以帮助我吗?我有 2 个问题需要解决。

    当我需要输入号码时。如果我输入空格键。这个程序会崩溃。我想如果我输入空格键,结果将与 8 或其他相同。 “无效尝试”

    此 python 将在一场比赛后崩溃。如何解决?我在python2中编写了这个python。突然,我发现我需要用 python3 编写。但我不知道如何改变它。大佬

【问题讨论】:

这里没有禁止人们要求别人做作业的政策吗?!? 或者错误的毅力徽章***.com/questions/26203695/… 这个论坛不是为了让其他人为你做作业。您需要表明您实际上已经在自己解决问题上付出了一些努力,而不仅仅是在此处逐字发布整个问题。 【参考方案1】:

您想查看while 循环

例如:

# Set the target value
target = 50
# Initialize the running total to 0
total = 0
run the indented code while target != total
while total != target:
    # ask the user for a number
    choice = input("Number? ")
    # add choice to total
    total += choice

上面将继续运行while 块,而total != 50 评估为True

【讨论】:

@mmmmmm111 你能告诉我哪个部分令人困惑,以便我解释一下吗? 我在python2上写了一个py作品。但我发现我需要使用 python3 来编写。现在我不知道如何改变它们..【参考方案2】:
import random
def amountGame():
   coin=[25,5,1]
   target=random.randint(1,99)
   print(f'Your Amount is target')
   total=0
   while target!=total:
       x=int(input('Enter pic of amount :'))
       if x in coin and (target-total)>=x:
           total+=x
       else:
           print('Envalid Entry')
   print('You Solve problam')


opt=''
while opt!='N':
    amountGame()
    opt=input('Do you want to continue press Y else N :).upper()

【讨论】:

您好,请提供一些解释,而不仅仅是代码。请参阅"How do I write a good answer?" 页面。

以上是关于编写一个 Python 程序,重复要求用户输入硬币值,直到总金额与目标值匹配的主要内容,如果未能解决你的问题,请参考以下文章

菜鸟上路之如何编写python注册模块

在python中仅在有限的时间内要求用户输入[重复]

带有多个打印问题的硬币翻转程序

python编写一段代码,要求用户从键盘输入一字符串,程序负责提取出其中的数字字符,并显示。 大神求教

python练习题4.15换硬币(修正)

请编写Python程序完成以下要求:提示用户从键盘上输入一个数num,判断num是不是为回文数?