2013-06-04 80 views
-4

我希望在那里有人成功完成一个动作的7/10几率,比如爬墙。我不能让一个整数集与random.randint工作,所以我不得不重新输入10次,这样的:如何缩短此Python代码?

import random 

print('You try to climb the wall.') 

climbResult = random.randint(1,10) 


elif climbResult == (1): 
    print('You were successful.') 

elif climbResult == (2): 
    print('You were successful.') 

elif climbResult == (3): 
    print('You were successful.') 

elif climbResult == (4): 
    print('You were successful.') 

elif climbResult == (5): 
    print('You were successful.') 

elif climbResult == (6): 
    print('You were successful.') 

elif climbResult == (7): 
    print('You were successful.') 

elif climbResult == (8): 
    print('You were unsuccessful.') 

elif climbResult == (9): 
    print('You were unsuccessful.') 

elif climbResult == (10): 
    print('You were unsuccessful.') 

这是一个痛苦中的数字遍地增加,这只有10部分。我只想让两个if语句,其中一个有70%的机会打印您的成功,另一个有30%的打印机会,您不成功。

对不起,这是一个非常简单的问题,我问的方式可能很难理解。我只学了两个星期的Python,而且用英语问我很麻烦,因为它不是我的第一语言。

回答

12
if climbResult <= 7: 
    print('You were successful.') 
else: 
    print('You were unsuccessful.') 
+0

这是在一分钟内大量upvotes的。做得很好! – mgilson

+0

这是完美的,真的很快,非常感谢你! – user2453436

+0

我想这就是它的方式 - 在没有记录的第三方Django包中找到一个复杂的答案,什么都不是。基本的算术比较,这里是upvotes。 –

0
if climbResult <= 7: 
    print("Success") 
else: 
    print ("Fail") 
6

为了看问题稍微有趣的和不同的方式:

random.choice(['You were successful']*7 + ['You were unsuccessful']*3) 

这也是一个1班轮,如果你不指望进口......这得计数...

+0

我认为答案遵循30-70规范的这封信。 –

3

既然你说你只是在乎70%的案例 这个说法“成功”,其他所有的东西你都可以使用随机数字“不成功”。

# import random 

def answer(): 
    if random.uniform(0, 10) < 7: 
    return 'successful' 
    else: 
    return 'unsuccessful' 
-1
return climbResult in range(1,8)