繁体   English   中英

为什么我不能打印一个从 1 到变量的随机数?

[英]Why can't I print a random number from 1 to a variable?

我正在制作一个 python 程序,您可以在其中输入一个输入,它会找到一个从 1 到该输入的随机数。 无论出于何种原因,它都不适合我。

我试过用这样的东西

import random
a = input('pick a number: ')
print(random.randint(1, a))
input("Press enter to exit")

但它对我不起作用,因为一旦它开始打印,cmd 提示就会关闭。 有谁知道如何解决这一问题?

randInt()接受两种int数据类型, input()返回一个String 因此,您需要做的就是将a转换为int

所以这样做

import random
a = input('pick a number: ')
print(random.randint(1, int(a)))
input("Press enter to exit")

您很可能收到TypeError As input将用户输入的终端数据保存为str (字符串)。 您需要将该字符串转换为 integer ( int ) 才能被 Python 识别为数字

import random

# a is a string here
a = input('pick a number: ')

# a is converted to an int here (if it can be)
a = int(a)

print(random.randint(1, a))
input("Press enter to exit")

以下是强制用户输入数字的方法:

import random

while True:
    # a is a string here
    a = input('pick a number: ')

    try:
        # Try and convert a to an int
        a = int(a)
        # Exit this loop if you didn't get an error
        break
    except (TypeError, ValueError):
        print("That's not a number!")

print(random.randint(1, a))
input("Press enter to exit")

如果在try循环中将输入转换为int时出错,它将 go 到except部分,并继续循环直到它正常工作


在这里进一步阅读,为了学习:)

https://www.w3schools.com/python/python_try_except.asp

randint 不接受字符串,但您可以使用 try。 如果数字有错误,则写一条消息,说明需要 int。 对不起我的英语不好。

import random;
try:
    a = int(input("pick a number: "))
    print(random.randint(1, a))
    input("Press enter to exit")
except ValueError:
    print("You need to write a number.")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM