在Python中,如何将输出乘以用户输入?

2024-09-27 07:28:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一个用户提供一个数字,我的输出是星号/星号,他们输入的次数相同

这是我的密码。我的目标是从用户那里接收大量输入,然后将输入返回给他们。所有这些都能达到预期的90%


listSize = input("Hello, please enter an integer "
                     "value the size of your list: ")
l = list()
 
for i in range(int(listSize)):
    oneToTen = int(input("Please enter an integer "
                         "value between 1 and 10 (inclusive): "))
    if oneToTen <= 0:
        oneToTen = 1
    elif oneToTen > 10:
        oneToTen = 10
    else:
        oneToTen = oneToTen
  
    l.append(oneToTen)
 
for i in range(0, len(l)):
    print (l[i])

在最后的10%中,我打算让用户给一部电影打分。因此,我希望输出是基于输入的星号,而不是数字输入。这部分工作正常,但我不知道如何组合我的两组代码

star = "*"
stars = oneToTen * star
print(stars)

示例:如果用户输入4,则当前输出为“4”。相反,我希望输出为“***”

谢谢大家!


Tags: 用户inanforinputvaluerange数字
3条回答

很好,您正在考虑检查用户输入的内容。永远不要相信用户的输入。如果用户没有输入数字会发生什么

Please enter an integer value between 1 and 10 (inclusive): hello world

这将给出一个ValueError。您可以这样处理:

try:
    starCount = int(input("Hello, please enter an integer, from 1 to 10: "))
except ValueError:
    print("You didn't enter a number")
    exit(1)

这样,只有当输入为整数时,我们才能通过该点。这意味着可以安全地对输入值进行计算,在这种情况下,有一种快速的方法可以限制整数的范围:

starCount = starCount % 11

这将取输入值的剩余部分除以11,该值始终在0和10之间,包括0和10

Python允许将字符串乘以整数,因此这是有效的:

print("*" * starCount)

最后,可以将其全部组合成一个函数:

def f():
    try:
        starCount = int(input("Hello, please enter an integer, from 1 to 10: "))
        starCount = starCount % 11
        print("*" * starCount)
    except ValueError:
        print("You didn't enter a number")

>>> f()

Hello, please enter an integer, from 1 to 10: 10

**********

>>> f()

Hello, please enter an integer, from 1 to 10: a

You didn't enter a number

只需将最后一条打印消息替换为星号即可

listSize = input("Hello, please enter an integer "
                     "value the size of your list: ")
l = list()

for i in range(int(listSize)):
    oneToTen = int(input("Please enter an integer "
                         "value between 1 and 10 (inclusive): "))
    if oneToTen <= 0:
        oneToTen = 1
    elif oneToTen > 10:
        oneToTen = 10
    else:
        oneToTen = oneToTen

    l.append(oneToTen)


star = "*"
for i in range(0, len(l)):
   stars = l[i] * star
   print(stars)

你就快到了:


    listSize = input("Hello, please enter an integer "
                     "value the size of your list: ")
    data = list()

    for i in range(int(listSize)):
        oneToTen = int(input("Please enter an integer "
                             "value between 1 and 10 (inclusive): "))
        if oneToTen <= 0:
            oneToTen = 1
        elif oneToTen > 10:
            oneToTen = 10

        data.append(oneToTen)

    for i in data:
        star = "*"
        stars = i * star
        print(stars)

相关问题 更多 >

    热门问题