You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python函数中通过一次输入传入两个位置参数

解决方案

你的banner_text函数需要两个参数:文本内容和屏幕宽度,但原调用仅传入一个输入值,导致参数缺失引发报错。要实现一次输入传入两个参数,可让用户用空格分隔同时输入文本与宽度,再拆分输入内容并转换类型处理。

修改后的完整代码

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 text and banner width separated by space (e.g., 'Hello 50')\n")

print()
# 循环处理11次输入
for _ in range(11):
    user_input = input("Enter text + width: ").strip()
    # 拆分输入,支持文本包含空格的情况(取最后一个元素作为宽度)
    parts = user_input.split()
    if len(parts) < 2:
        print("请输入文本和宽度,用空格分隔!")
        continue
    # 提取文本和宽度
    text = " ".join(parts[:-1])
    try:
        screen_width = int(parts[-1])
    except ValueError:
        print("宽度必须是整数!")
        continue
    # 调用函数
    banner_text(text, screen_width)

关键修改说明

  • 输入解析逻辑:用split()拆分用户输入,将最后一个元素转为整数作为screen_width,前面的部分拼接成完整文本(支持带空格的文本内容)。
  • 异常防护:捕获宽度非整数的情况,避免程序直接崩溃。
  • 提示优化:更新提示信息,明确告知用户正确的输入格式(如Hello World 50)。
  • 代码简化:用for循环替代重复11次的函数调用,代码更简洁易维护。

输入示例

用户可按如下格式输入:

Welcome to banner app 60
* 70
Hello World 50

内容的提问来源于stack exchange,提问作者Programmer_1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 12:02:41