2013-06-04 5 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 частями. Я бы просто хотел, чтобы было два заявления: один с 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' 
Смежные вопросы