Token错误:Python多行语句中的EOF是什么意思?

3 投票
2 回答
22732 浏览
提问于 2025-04-17 13:40

我刚开始学习编程,现在正在学习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     
-------------------------  

撰写回答