编写反复要求用户输入的硬币值的Python程序,直到总量的目标值

问题描述:

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

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

为了产生在一个随机数的Python目标值,你必须 写下面的语句在程序的启动:

import random 

然后,您可以写在程序中生成随机数 下面的语句:

rand = random.randint(1, 99) 

上面的语句将产生1到99之间的随机数(两个 端点是包括在内)。该随机数将被存储在变量兰特 (按照上面的语句)。如果需要,您可以使用不同的变量名称。 存储在变量命名兰特随机值在目标硬币值 该用户必须输入硬币。纲领

在接下来的页面

样品试验是该计划的一个完整的运行示例。这是程序如何运行的示例;在以下相同中,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个问题需要解决。

  1. 当我需要输入数字。如果我输入空格键。这个程序会崩溃。我想要如果我进入空格键,结果会像8或另一个相同。 “无效的尝试”

  2. 这条巨蟒将一场比赛之后崩溃。如何解决它?我在python2中编写这个python。突然间,我发现我需要在python3中写入。但我不知道如何改变它。TY

+2

在这里没有阻止别人要求别人做功课的政策吗? – deets 2014-10-06 19:24:56

+0

或错误的毅力徽章http://*.com/questions/26203695/write-a-python-program-that-repeatedly-asks-the-user-to-input-coin-values-until – dreyescat 2014-10-06 19:27:52

+0

这个论坛isn'在这里让其他人为你做功课。你需要证明你实际上已经付出了一些努力来解决它,而不是只是逐字地提出整个问题。 – rdowell 2014-10-06 19:35:21

你想看看一个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

+0

我很困惑。我不知道当循环... – mmmmmm111 2014-10-06 20:01:53

+0

@ mmmmmm111你能告诉我哪个部分是混乱的,所以我可以解释吗? – nettux443 2014-10-06 22:13:36

+0

我在python2上写了一个py工作。但我发现我需要使用python3编写。现在我不知道如何改变它们.. – mmmmmm111 2014-10-07 03:12:53