如何在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
相关产品推荐
相关产品推荐

