2015-06-07 66 views
-1
import random, math 

tries = 0 
extreme = 5000000 
hard = 5000 
medium = 1000 
easy = 250 
beginner = 100 

print("Welcome to the number guessing game!") 
print("Choose a difficulty: extreme, hard, medium, easy, beginner") 
difficult = raw_input() 

我在第14行发现错误。 错误是:“试图根据用户选择的难度来更改随机数的范围

Traceback (most recent call last): 
    File "D:/Programing/Learning/Python/guessGame.py", line 14, in <module> 
    answer = random.randint(1, int(difficult)) 
ValueError: invalid literal for int() with base 10: 'easy' 

” 我已经改变了它到我以为会工作无果的一切。

answer = random.randint(1, int(difficult)) 
+0

不同于论坛的网站,我们不使用“谢谢”,或者“任何帮助表示赞赏“,或签名[so]。请参阅“[应该'嗨','谢谢',标语和致敬从帖子中删除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be - 删除 - 从帖子)。顺便说一句,这是“预先感谢”,而不是“感谢先进”。 –

回答

1

你不能使用用户输入的字符串直接映射变量。你应该为这种情况使用一本字典。希望这有助于 -

import random, math 

tries = 0 
level_dict = { 
    'extreme' : 5000000, 
    'hard' : 5000, 
    'medium' : 1000, 
    'easy' : 250, 
    'beginner' : 100 
} 

print("Welcome to the number guessing game!") 
print("Choose a difficulty: extreme, hard, medium, easy, beginner") 
difficult = raw_input() 
answer = random.randint(1, level_dict[difficult]) 
+0

谢谢@ nu11p01n73R,我在匆忙, –

+0

谢谢我明白,你的意思,但它成为一本字典,我添加了维卡超过9000设置。再次感谢。 – Chris

+0

@克里斯,哈哈,谢谢。 –

1

你可以不喜欢这样,并从字典中查找值:

difficulties = { 
    'extreme': 5000000, 
    'hard': 5000, 
    'medium': 1000, 
    'easy': 250, 
    'beginner': 100 
} 

print("Choose a difficulty: extreme, hard, medium, easy, beginner") 
difficulty = raw_input() 

if difficulty in difficulties: 
    maxRange = difficulties[difficulty] 
    answer = random.randint(1, maxRange) 

    # … 
else: 
    print('Invalid difficulty') 
0

您正试图转换“容易”字符串转换成整数,其中所看到在编译器中消息不起作用。正确的方法是很难改变取决于你所得到的话,很短的解决方法是创建一个字典,而不是硬编码的变量名

difficulty_dict = {} 
difficulty_dict['extreme'] = 5000000 
difficulty_dict['hard'] = 5000 
difficulty_dict['medium'] = 1000 
difficulty_dict['easy'] = 250 
difficulty_dict['beginner'] = 100 

difficult = raw_input() 
answer = random.randint(1, difficulty_dict[difficult])