Token错误:Python多行语句中的EOF是什么意思?
我刚开始学习编程,现在正在学习Python。我想写一个程序,每次用户输入1的时候就打印出一个ASCII艺术图。但是当我尝试运行这个模块时,出现了标题中的错误。
这是我的代码:我哪里出错了?
yORn = int(input("Type 1 to run the program, Type 2 to Exit: ")
while yORn = 1:
Name = str(input("What is your name?"))
print(" 1111111111111111111111 ")
print(" 1 1 ")
print(" 1 1 ")
print(" 1 Hello... 1 ")
print(" 1 ", Name," 1 ")
print(" 1 1 ")
print(" 1 1 ")
print(" 1111111111111111111111___ ")
print(" 11111111 | ")
print(" ------------------------- O ")
print(" 1.............._... ... 1 ")
print(" 1...................... 1 ")
print(" ------------------------- ")
yORn = int(input("Type 1 to run the program, Type 2 to Exit: ")
print ("GoodBye")
2 个回答
6
你在两个地方忘记关闭括号了:
yORn = int(input("Type 1 to run the program, Type 2 to Exit: ")) # < 2 closing parenthesis here
还有在你代码的最后也忘了。
另外,你的 while
语句也有个错误;=
是用来赋值的,你应该用 ==
来比较:
while yORn == 1:
10
你已经得到了直接的答案(缺少的括号),但是如果你在做这样的事情,我建议你换个方法,使用多行字符串(用三重引号的字符串),还有字符串格式化:
ascii_art = """
1111111111111111111111
1 1
1 1
1 Hello... 1
1{name:^20}1
1 1
1 1
1111111111111111111111___
11111111 |
------------------------- O
.............._... ... 1
1...................... 1
-------------------------
"""
print ascii_art.format(name='Kevin')
这里的 {name:^20}
是用来把参数 name
在20个字符的宽度内居中对齐的 ^20
,这样它就能很好地适应这个区域(比如说电脑显示器?)……
示例输出:
1111111111111111111111
1 1
1 1
1 Hello... 1
1 Kevin 1
1 1
1 1
1111111111111111111111___
11111111 |
------------------------- O
.............._... ... 1
1...................... 1
-------------------------