("Это ответ основан на последней версии питона, поэтому убедитесь, что вы используете 3.5.x иначе некоторые обозначения не могут работать правильно ")
Во-первых, ваша функция« biasedflip »требует скобок после имени и перед двоеточием для правильной записиТак оно и должно быть:
def biasedflip():
Во-вторых, чтобы сделать его проще изменить вероятность использовать диапазон 1-100, так что вы можете избежать десятичные, чтобы сделать его легче следовать через Так что, когда они входной (р) должно быть 1-100, и это будет решать ваши терпеть неудачу значение, которое где, если она равна или выше, чем показывает Хвосты Вы можете произвести это с помощью:
random.randint(1,100)
^ Это генерирует случайное число используя инклюзивный диапазон 1-100, а не ваш random.random(), который не является будет функционировать.
После редактирования случайного заявления вы тогда просто изменить свой, если заявление выглядеть следующим образом:
if random.randint(1,100) < Probability:
print("Heads")
else:
print("Tails")
При запуске программы вы должны также установить количество перестроек как вход, так что вы можете проверить его несколько раз вместо редактирования кода, так что добавьте новую переменную NumberOfTrials:
NumberOfTrials = int(input("How many times do you wish to flip the coin? "))
^ Это превращает их вклад в целое число, поэтому он может быть использован в функции диапазона
С входом для вероятности питона имеет стандартные входы быть строки, так что вы должны преобразовать входные в целое число, которое вы можете сделать с помощью:
Probability = int(input("Enter a probability for heads between 1 and 100"))
^Это преобразует входные данные прямо в целое число и присвоить его вероятность, я изменил имя переменного из «р» на «вероятность», так что использование четко определенная
на этом этапе из верхней части вашей программы она должна выглядеть так:
import random
i = 0
Probability = int(input("Enter a probability for heads between 1 and 100: "))
NumberOfTrials = int(input("How many times do you wish to flip the coin? "))
def biasedflip():
if random.randint(1,100) < Probability:
print("Heads")
else:
print("Tails")
Далее мы добавим еще 2 новых переменные, так что вы можете хранить итоговые данные для глав и Хвосты отдельно, чтобы для справок:
TotalHeads = 0
TotalTails = 0
^Они начинаются 0 и будут определены до функции, поэтому они не являются перезагружайте каждый раз, когда мы вызываем его, только каждый раз, когда программа сбрасывается
Заключительный этап - это добавление цикла, а затем отображение общего количества голов и хвостов. Это можно сделать, используя цикл while и переменную count (i), которую вы уже определили ранее, и установите значение 0.Это будет что-то вроде:
while i < NumberOfTrials:
biasedflip()
i += 1
^После добавления этого цикла мы должны изменить нашу функцию так, чтобы TotalHeads и TotalTails переменные увеличиваются внутри функции, а не усложнять ее и редактирование внутри и вне этой функции. Это просто связано с добавлением TotalHeads + = 1 под операцией Print («Heads») и TotalTails + = 1 под операцией Print («Tails»). Важное замечание состоит в том, что мы установили переменные вне функции, которые у нас должны были иметь 2 глобальных оператора, чтобы вызвать переменные в функцию, позволяющую редактировать, эти утверждения выглядят как global TotalHeads и global TotalTails и должны быть первые команды функции.
Нам также нужно добавить последнюю команду печати в конце просто отображаются итогами, так наш окончательный результат должен выглядеть следующим образом:
import random
TotalHeads = 0
TotalTails = 0
i = 0
Probability = int(input("Enter a probability for heads between 1 and 100: "))
NumberOfTrials = int(input("How many times do you wish to flip the coin? "))
def biasedflip():
global TotalTails
global TotalHeads
if random.randint(1,100) < Probability:
print("Heads")
TotalHeads += 1
else:
print("Tails")
TotalTails += 1
while i < NumberOfTrials:
biasedflip()
i += 1
print("After {0} flips there was {1} Head(s) and {2} Tail(s)".format(NumberOfTrials,TotalHeads,TotalTails))
^Вы можете видеть на эту последнюю команду я использовал .format означает, что вы можете использовать заполнитель {0} значений для заполнения с переменными, такими как NumberOfTrials, так что вы можете сделать предложения редактируемых через программу и посмотреть аккуратнее при печати
Кроме того, для вызова функций общего формата является FunctionName() но белым en должно быть def Имя функции():
Что вы хотите сказать? – Li357
Существует множество синтаксических ошибок. Сначала вы можете начать с базового учебника Python, прежде чем пытаться что-то сделать, как то, что вы пытаетесь сделать. –
Мой вопрос - вот какой код для генерации смещенного флага для монет –