【发布时间】:2015-11-17 16:55:21
【问题描述】:
我正在尝试将两个函数放在一起,但我终其一生都无法弄清楚我做错了什么。
-
函数 names() 应该反复要求用户输入名称。当用户停止输入姓名时,程序应该打印每个姓名被输入的次数。这就是我目前所得到的。
def names(): counter={} name=input('Enter next name:') while name!='': if name in counter: counter[name]+=1 else: counter[name]=1 name=input('Enter next name:') for name in counter: if counter[name]>1: print('There are {1} students named {2}.'.format(counter[name], name)) else: print('There is {1} student named {2}.'.format(counter[name], name))
在我停止输入名称之前它一直有效。那时,它只是给我一个语法错误,说明“解析时出现意外的 EOF”。有人知道我需要解决什么问题吗?
-
函数 testCraps() 应该以一个正整数 n 作为输入,模拟 n 次骰子游戏,掷骰子。然后它应该在 n 次掷骰子游戏后返回用户的赢率。在这里,我有:
def craps(): import random dice=random.randrange(1,7)+random.randrange(1,7) if dice in (7,11): return 1 elif dice in (2,3,12): return 0 else: newRoll=random.randrange(1,7)+random.randrange(1,7) while newRoll not in (7,dice): newRoll=random.randrange(1,7)+random.randrange(1,7) if newRoll==dice: return 1 else: return 0 def testCraps(n): count=0 for i in range(n): if craps()==1: count+=1 return count/n
出于某种原因,testCraps() 似乎总是给我 0,我看不出它有什么问题。你能看到我遗漏的东西吗?
【问题讨论】:
-
也许你错过了需要缩进函数定义体的部分?
-
for 1,使用
raw_input代替input,因为您正在使用python 2.x -
对于第二个函数,python2中的2个整数除法自动使用整数除法。在划分之前将其中一个转换为浮点数(即
float(count)/n) -
@N.Aylett 欢迎来到 StackOverflow!只是为了将来,请记住,网站上的每个问题都应该是一个单独的问题,因为您只能选择一个答案作为正确答案。它还允许比一般的“功能不起作用”更好的标题。
-
谢谢,伙计们!我让他们俩都工作了!我知道这可能是他们俩的一个小错误。缩进只是格式化我的问题的错误。他们在实际程序中是正确的。
标签: python python-2.7