我正在学习 CS50 的 Python 编程简介。对于当前的问题,我应该编写一个程序,其中涉及:
- 需要零个或两个命令行参数:
- 如果用户想以随机字体输出文本,则为零。
- 如果用户想要以特定字体输出文本,则两个,在这种情况下,两个中的第一个应该是
或-f
,并且 两者中的第二个应该是字体的名称。--font
- 提示用户输入一段文本。
- 以所需字体输出该文本。
- 如果用户提供两个命令行参数,并且第一个不是
或-f
或者第二个不是字体名称,则程序 应通过--font
退出并显示错误消息。sys.exit
我到目前为止尝试过的代码包含在下面。问题包括:
IndexError: list index out of range
-f
或 --f
时,sys.exit
未按预期执行。import sys
import random
fonts = ['fontA', 'fontB']
def main():
s = input("Text: ")
if len(sys.argv) == 0:
print(print_random(s))
elif len(sys.argv) == 2 and (sys.argv[1] == "-f" or sys.argv[1] == "--font") and sys.argv[2] in fonts:
print(print_argument(s))
else:
sys.exit()
def set_font(font):
pass # dummy implementation
def print_random(s):
set_font(font=random.choice(fonts))
# render_text(s)
def print_argument(s):
set_font(font=sys.argv[2])
# render_text(s)
main()
len(sys.argv) 应该 == 3。
如果您输入
print(str(sys.argv))
之前
if len(sys.argv) == 0:
你就会明白