我如何检查用户信息是否正确python

时间:2017-11-18 02:52:53

标签: python

所以我正在制作密码系统。 它要求用户输入密码,然后检查它是否正确。我收到错误:

 %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.")

3 个答案:

答案 0 :(得分:2)

  

SyntaxError:期望一个缩进块

缩进您的if - else语句,如下所示。

  1. 要检查"等于",请使用==代替=这是一项任务。
  2. readline返回一个字符串,因此您应该将其与'1'字符串进行比较。
  3. readline最后包含换行符\n,因此请在其上调用strip()
  4. 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依赖于空格。