在Python中将随机生成的整数分配给字符串输出
我正在开发一个随机事实生成器,它获取一个随机生成的数字(在本例中为1-10),并将该数字分配给一个字符串输出,该字符串输出告诉用户一个随机事实 到目前为止,这就是我所能拼凑出的全部代码:在Python中将随机生成的整数分配给字符串输出,python,python-3.x,Python,Python 3.x,我正在开发一个随机事实生成器,它获取一个随机生成的数字(在本例中为1-10),并将该数字分配给一个字符串输出,该字符串输出告诉用户一个随机事实 到目前为止,这就是我所能拼凑出的全部代码: #Greeting a = "Hello, who am I speaking to?" print("Welcome, " + input(a) + "!" + " Lets see what fact you rolled...") #Random Number Generator import rand
#Greeting
a = "Hello, who am I speaking to?"
print("Welcome, " + input(a) + "!" + " Lets see what fact you rolled...")
#Random Number Generator
import random
for x in range (1):
randomNumber = random.randint(1, 10)
print(randomNumber)
#Loop function
def check_val(randomNumber, title, answer):
while True:
if input(randomNumber) == title:
print(answer)
break
else:
print("I dont know.")
#Facts
def fact():
randomNumber, answer = {}, {}
randomNumber[1] = ([1])
answer[1] = "Fact1"
randomNumber[2] = ([2])
answer[2] = "Fact2"
randomNumber[3] = ([3])
answer[3] = "Fact3"
randomNumber[4] = ([4])
answer[4] = "Fact4"
randomNumber[5] = ([5])
answer[5] = "Fact5"
for k in randomNumber:
check_val(randomNumber[k], k, answer[k])
fact()
运行此代码时,我得到以下输出:
喂,我在和谁说话
欢迎你,j!让我们看看你是怎么做的。。。
5.
[1]
我无法将那个随机整数(5)赋给随机事实#5
关于如何将这些随机整数分配给可用的输出有什么想法吗?#
#Greeting
a = "Hello, who am I speaking to?"
print("Welcome, " + input(a) + "!" + " Lets see what fact you rolled...")
#Random Number Generator
import random
for x in range (1):
randomNumber = random.randint(1, 10)
print(randomNumber) <--- your printing 5
#Loop function
def check_val(randomNumber, title, answer):
while True:
if input(randomNumber) == title: <--- answer argument which were passed was [1] remember so it asks you to write something with the text [1]
print(answer)
break
else:
print("I dont know.")
#Facts
def fact():
randomNumber, answer = {}, {} <--- your 5 nol longer exist because you now overwrote it with a dict
randomNumber[1] = ([1])
answer[1] = "Fact1"
randomNumber[2] = ([2])
answer[2] = "Fact2"
randomNumber[3] = ([3])
answer[3] = "Fact3"
randomNumber[4] = ([4])
answer[4] = "Fact4"
randomNumber[5] = ([5])
answer[5] = "Fact5"
for k in randomNumber: <--- # now it's iterating over the dict, and since you wrote 1 first that is most likely to be the one it finds first in the memory though there no order here
check_val(randomNumber[k], k, answer[k])
fact()
a=“你好,我在和谁说话?”
打印(“欢迎,”+输入(a)+“!”+“让我们看看您滚动了什么事实…”)
#随机数发生器
随机输入
对于范围(1)内的x:
randomNumber=random.randint(1,10)
打印(随机数)#问候语
a=“你好,我在和谁说话?”
打印(“欢迎,”+输入(a)+“!”+“让我们看看您滚动了什么事实…”)
#随机数发生器
随机输入
对于范围(1)内的x:
randomNumber=random.randint(1,10)
打印(随机数)嘿,巴德,你在这里有很多事情要做,你可以用列表
来存储你的事实,这里有一个更好的格式,你可以用它来构建。
正如@JonClements所提到的,我们可以使用random.randrange(len(facts))
这将使我们的代码更具适应性,如果我们想改变列表中的事实数量
import random
while True:
name = input("\nHello, Who am I speaking to?\n")
print(f"\nWelcome, {name}! Lets see what you rolled..."
facts = [
'Fact one',
'Fact two',
'Fact three',
'Fact four',
'Fact five',
'Fact six',
'Fact seven',
'Fact eight',
'Fact nine',
'Fact ten'
]
selection = random.randrange(len(facts))
print(facts[selection])
嘿,巴德,你在这里有很多事情要做,你可以用列表来存储你的事实,这里有一个更好的格式,你可以用它来构建。
正如@JonClements所提到的,我们可以使用random.randrange(len(facts))
这将使我们的代码更具适应性,如果我们想改变列表中的事实数量
import random
while True:
name = input("\nHello, Who am I speaking to?\n")
print(f"\nWelcome, {name}! Lets see what you rolled..."
facts = [
'Fact one',
'Fact two',
'Fact three',
'Fact four',
'Fact five',
'Fact six',
'Fact seven',
'Fact eight',
'Fact nine',
'Fact ten'
]
selection = random.randrange(len(facts))
print(facts[selection])
如果你不使用整数,你可以使用random.choise(facts)@JonasWolff当然,我在写这篇文章的时候考虑过这一点,但是OP最初的目标是“关于如何将这些随机整数分配到可用的输出上有什么想法吗?”所以我想通过传递一个randomint
@vash\u the\u踩踏来小心你的索引randint
包含结束范围,因此您永远不会选择事实1(在Python中,索引0-记住索引从0开始),如果您碰巧选择10作为数字,您将得到一个索引器
尝试打印事实。。。。你最好先把事实放在后面,通过使用selection=random.randrange(len(facts))
选择一个随机数,然后确保在打印事实数时添加1。设置上限没问题。。。但是删除它们会导致异常。。。但是是的。。。只要他们把它精确到10,它就会工作。。。我只是想,如果你想帮助OP学习一些最佳实践,你不妨全力以赴,交换两行:)谢谢!我对Python(以及一般的编程)非常陌生。我感谢您的帮助和多角度的关注。如果你不使用整数,你可以使用random。choise(facts)@JonasWolff当然,我在写这篇文章时考虑过这一点,但OP最初的目标是“有没有关于如何将这些随机整数分配到可用输出的想法?”所以我想通过一个随机的int
@vash_the_踩踏,小心你的指数在这里randint
包含结束范围,因此您永远不会选择事实1(在Python中,索引0-记住索引从0开始),如果您碰巧选择10作为数字,您将得到一个索引器
尝试打印事实。。。。你最好先把事实放在后面,通过使用selection=random.randrange(len(facts))
选择一个随机数,然后确保在打印事实数时添加1。设置上限没问题。。。但是删除它们会导致异常。。。但是是的。。。只要他们把它精确到10,它就会工作。。。我只是想,如果你想帮助OP学习一些最佳实践,你不妨全力以赴,交换两行:)谢谢!我对Python(以及一般的编程)非常陌生。我感谢您的帮助和多角度的关注。我看看我现在能不能让它工作。看起来你写了一些代码,却没有真正理解你正在使用的所有东西。解决编程问题最有用的技术之一是rubber duck debugging()——它涉及到逐步解释您认为代码在做什么。你能编辑你的问题吗?它将帮助试图回答问题的人理解你想做什么,以及你在理解中可能出现的错误。看起来你在编写一些代码时没有真正理解你正在使用的所有东西。解决编程问题最有用的技术之一是rubber duck debugging()——它涉及到逐步解释您认为代码在做什么。你能编辑你的问题吗?它将帮助试图回答问题的人理解你想做什么,以及你在理解上可能出现的错误。