Создание случайных строк в Python - PullRequest
0 голосов
/ 07 февраля 2019
import random

string1 = "Fred"
string2 = "Jones"
int1 = 4
int2 = 8
randomInt = random.randint(1, 100)
GloriousListOfFun = [string1, string2, int1, int2, randomInt]
RandomFromGloriousListOfFun = random.choice(GloriousListOfFun)

x=0
while x<1: 
    line1 = "Hi I am {} from Albion".format(RandomFromGloriousListOfFun)
    print(line1)

Я знаю, что это бесполезно на 99,9%, но сейчас это выдает что-то вроде: «Привет, мне 9 лет с Альбиона», «Привет, мне 9 лет с Альбиона», «Привет, мне 9 лет с Альбиона» и т. Д ...Кто-нибудь знает, как я мог заставить его повторяться, как это, но со случайной переменной каждый раз?Спасибо.

Ответы [ 3 ]

0 голосов
/ 07 февраля 2019

ваша ошибка здесь

RandomFromGloriousListOfFun = random.choice(GloriousListOfFun)

, так как она исправляет вашу случайность!то, что вы должны делать, это запускать random.choice(GloriousListOfFun) каждый раз, например:

while x<1: 
    line1 = "Hi I am {} from Albion".format(random.choice(GloriousListOfFun))
    print(line1)
0 голосов
/ 07 февраля 2019

Вы можете поместить эти случайные числа в цикл while, чтобы каждый раз он получал новое случайное число.

import random

string1 = "Fred"
string2 = "Jones"
int1 = 4
int2 = 8
x=0
while x<1:
    randomInt = random.randint(1, 100)
    GloriousListOfFun = [string1, string2, int1, int2, randomInt]
    RandomFromGloriousListOfFun = random.choice(GloriousListOfFun)
    line1 = "Hi I am {} from Albion".format(RandomFromGloriousListOfFun)
    print(line1)
0 голосов
/ 07 февраля 2019

Вы можете сделать RandomFromGloriousListOfFun функцией и вызывать ее на каждой итерации, чтобы она каждый раз возвращала случайную выборку из списка:

GloriousListOfFun = [string1, string2, int1, int2, randomInt]
RandomFromGloriousListOfFun = lambda: random.choice(GloriousListOfFun)

for _ in range(5):
    print("Hi I am {} from Albion".format(RandomFromGloriousListOfFun()))

Вывод

Hi I am 97 from Albion
Hi I am Fred from Albion
Hi I am 8 from Albion
Hi I am Jones from Albion
Hi I am 8 from Albion
...