python问题:IndentationError:expected an indented block错误解决

python问题:IndentationError:expectedan indented block错误解决

·编辑

·删除

原文地址:http://hi.baidu.com/delinx/item/1789d38eafd358d05e0ec1df

   

Python语言是一款对缩进非常敏感的语言,给很多初学者带来了困惑,即便是很有经验的Python程序员,也可能陷入陷阱当中。最常见的情况是tab和空格的混用会导致错误,或者缩进不对,而这是用肉眼无法分别的。

在编译时会出现这样的错IndentationError:expectedan indented block说明此处需要缩进,你只要在出现错误的那一行,按空格或Tab(但不能混用)键缩进就行。

往往有的人会疑问:我根本就没缩进怎么还是错,不对,该缩进的地方就要缩进,不缩进反而会出错,,比如:

if xxxxxx

(空格)xxxxx

或者

def xxxxxx

(空格)xxxxx

还有

for xxxxxx

(空格)xxxxx

一句话 有冒号的下一行往往要缩进,该缩进就缩进

 

 

 

 

 

 

  下面来模拟一个网站注册的情况:

    首先,我们注册网站的时候,网站会先让我们输入用户名,然后会提示我们这个用户名是否可用;如可用户名不可用的话,就提示我们这个用户名已经注册了,请重新输入用户名;如果用户名没有注册,就能够按照注册流程一步一步往下走,用户注册成功之后,要把注册的用户名放到之前的已经注册的用户名中,以便提示下个用户注册的时候,相同的用户名不能够注册,让注册账号不会出现重复的情况。

   但是要注意的是,在注册的过程中,我们要对用户名统一进行判断,我们输入的用户名可能有大写有小写,但是同一个用户名不管大小写的各种状态,下一个用户是不能够使用的,因此要统一进行转化,如何转化呢,思路是直接把所有注册的用户统一转化为小写,现在要注册的用户的名字也统一转化为小写,然后进行判断,如果不在已经注册了的用户里面则可以使用,否则,就要重新输入注册。

   这是上面流程图注册的思路,代码如下:

#register =input("Please input your username: ")
#
首先定义一个空的列表,用户存储小写转化后的用户
transformation_registered_names = []
#
已经注册的用户
registered_users = [
"Zengmingzhu","zhagnqq","jIangxb","gZd","loujq","liuxs","cDq"]

#使用True循环,当用户名相同的时候,可以让用户一直输入,不至于退出
whileTrue:
   
register = input("Please input your username: ")

   
#使用for循环,将已经注册的用户列表进行统一的转化
    for user_name in registered_users:
       
transformation_registered_names.append(user_name.title())

    #使用if进行判断,判断输入的用户名(小写转化)是否存在已经注册的里列表中
    if register.title() intransformation_registered_names:
       
print("Sorry, the name you entered isregistered! Please enter again")
   
else:
       
print("Successful!")
       
registered_users.append(register)
        break
print(registered_users)
运行结果如下:
Pleaseinput your username: zengmignzhu
Successful!
['Zengmingzhu','zhagnqq', 'jIangxb', 'gZd', 'loujq', 'liuxs', 'cDq', 'zengmignzhu']

 

你可能感兴趣的