Intellij Idea 如何在一个输入中输入python函数中的两个位置值

6za6bjd0  于 2023-01-29  发布在  Python
关注(0)|答案(1)|浏览(124)
def banner_text(text,screen_width):

    if len(text) > screen_width -4:
        print("EEK!!!")
        print("THE TEXT IS TOO LONG TO FIT IN THE SPECIFIED WIDTH ")

    if text == "*":
        print("*" * screen_width)
    else:
        centred_text =text.center(screen_width - 4)
        output_string = "**{0}**".format(centred_text)
        print(output_string)

print("Banner text app ,is used to make normal text into banner text\n"
      "asterisk '*' makes a line of *\n"
      "& space makes line of spaces\n"
      "Enter banner width after text to get specific width \n")

print()
banner_text(input())
banner_text(input())
banner_text(input())
banner_text(input())
banner_text(input())
banner_text(input())
banner_text(input())
banner_text(input())
banner_text(input())
banner_text(input())
banner_text(input())

我试图在函数中使用一个输入命令,然后是逗号&另一个输入命令。我期望它将第二个输入视为第二个参数,但代码崩溃了。

dfddblmv

dfddblmv1#

你有两个选择。
1.使用单个输入,用户用逗号指定两个值,例如"Hello World,20"。然后需要使用split(',')沿着逗号分割输入。split()将单个输入转换为两个参数的列表,我们使用*操作符迭代该列表。这是您在注解中看到的答案。
1.如果你总是使用input()作为函数的参数,只需在函数中放置两个input()并删除参数。
请记住,对于这两个选项,无论用户输入什么,都将被读取为string,因此必须将第二个参数强制转换为int
备选办法1:

def banner_text(text,screen_width):
    screen_width = int(screen_width)
    if len(text) > screen_width -4:
        print("EEK!!!")
        print("THE TEXT IS TOO LONG TO FIT IN THE SPECIFIED WIDTH ")

    if text == "*":
        print("*" * screen_width)
    else:
        centred_text =text.center(screen_width - 4)
        output_string = "**{0}**".format(centred_text)
        print(output_string)

banner_text(*input().split(','))

备选方案二:

def banner_text():
    text = input()
    screen_width = int(input())
    if len(text) > screen_width -4:
        print("EEK!!!")
        print("THE TEXT IS TOO LONG TO FIT IN THE SPECIFIED WIDTH ")

    if text == "*":
        print("*" * screen_width)
    else:
        centred_text =text.center(screen_width - 4)
        output_string = "**{0}**".format(centred_text)
        print(output_string)

banner_text()

相关问题