所以我正在制作密码系统。 它要求用户输入密码,然后检查它是否正确。我收到错误:
%Run HelloPython.py
File "/home/pi/Python Coding/HelloPython.py", line 17
print('Welcome home,', name,)
^
SyntaxError: expected an indented block
出了点问题。 代码:
print('What is your name?')
# Stores everything typed up until ENTER
name = sys.stdin.readline()
print('Hello', name,'Enter password.')
password = sys.stdin.readline()
if password == ("1"):
print('Welcome home,', name,)
else:
print("Password:", password,"Is incorect. Please try again.")
答案 0 :(得分:2)
SyntaxError:期望一个缩进块
缩进您的if
- else
语句,如下所示。
==
代替=
这是一项任务。readline
返回一个字符串,因此您应该将其与'1'
字符串进行比较。readline
最后包含换行符\n
,因此请在其上调用strip()
。import sys
print('What is your name?')
# Stores everything typed up until ENTER
name = sys.stdin.readline()
print('Hello', name, 'Enter password.')
password = sys.stdin.readline().strip()
if password == '1':
print("Welcome home,", name)
else:
print("Password:", password, "Is incorrect. Please try again.")
答案 1 :(得分:2)
所以我重写了你的代码。你忘了缩进你的if语句了。 http://www.secnetix.de/olli/Python/block_indentation.hawk
import sys # Import the 'sys' module
print('What is your name?')
name = sys.stdin.readline()
print('Hello ', name, '. Enter password.')
password = sys.stdin.readline()
# Use '=='
if password == 1:
print("Welcome home, ", name)
# Here you need indentation.
else:
print("Password: ", password," is incorect. Please try again.")
答案 2 :(得分:1)
这不是你唯一的错误,但它可能是最容易被忽视的:
if password = 1:
这里发生了什么:1被存储到变量password
(因为=
是存储运算符)。然后if password
正在评估中;变量在python中是真实的,因此无论你在True
上存储了什么,它都将评估为password
。
要解决此问题,请使用==
进行比较password
,同时由于password
是一个字符串,请将1
放在引号中,以便将其作为字符串进行比较
if password == "1":
你也需要修复你的缩进,python依赖于空格。