Python_第5章 if语句——扩散——布尔代数

 这几天比较瞎忙,没有能够迅速进入学习Python状态,要警惕半途而废,世界上100%的失败都是由于半途而废。

学习Python是我的刚需,我需要一个非常上手的语言来作为以后整理数据,学习计算机,学习区块链,教育小朋友,编写ISP软件,是非常需要!!!


今天做了第5章的练习5-10,要求对用户名进行判定,是否已经被注册。其中难点在于不区分大小写(而Python本身是区分大小写的),

所以就要用到字符串的三个方法:title(),upper(),lower().

开始写程序时犯了个错误,直接对列表进行上述方法操作(潜意识认为可以先把current.users全部小写化,在进行比较),

报错:‘list’ object has no attribute 'lower'  即,列表不存在这个方法属性可以操作。

后来想到只能在变量(即字符串)上进行该方法操作,程序终于可以通过执行,但是执行结果不对,也就是出现了逻辑错误。

检查条件语句,发现又混淆了自然语言与程序语言,然后又纠结于布尔代数的或非门到底是否等于非与(其实应该是相当的)---------布尔代数需要抽时间复习。

再后来编写了不同方法设置条件的相同功能的程序块来实现,具体如下:

#gbk
#5.10
current_users=["xgdtxwd","TINA","Dean","admin","Again"]
new_users=["xiaobeile","mengmeng","DEAN","AGAIN","close","XGDTXWD"]
print(current_users)
print(new_users)
#current_users.lower()  #lower,upper以及title都是针对字符串的方法,不可以直接对列表操作
#new_users.lower()      #否则会报警:'list' object has no attribute 'lower'
for new_user in new_users:  #功能同下
    if new_user.lower() not in current_users and new_user.upper() not in current_users and new_user.title() not in current_users:
#上一句原本写成了:if new_user.lower() or new_user.upper() or new_user.title() not in current_users. 这是混淆了自然语言和程序语言,翻译器是看不懂的。
        print(new_user.title()+",This name not used,you can choose!")
    else:
        print(new_user.title()+",This name has been used,please change a new one")


print("\n")   
for new_user in new_users:  #功能同上
    if new_user.lower() in current_users or new_user.upper() in current_users or new_user.title() in current_users:
        print(new_user.title()+",This name has been used,please change a new one")
    else:
        print(new_user.title()+",This name not used,you can choose!")


print("\n")
for new_user in new_users:  #功能同上,目前为止,这种写法程序行数最长,但是程序长度最短
    if new_user.lower() in current_users:
        print(new_user.title()+",This name has been used,please change a new one")
    elif new_user.upper() in current_users:
        print(new_user.title()+",This name has been used,please change a new one")
    elif new_user.title() in current_users:
        print(new_user.title()+",This name has been used,please change a new one")
    else:
        print(new_user.title()+",This name not used,you can choose!")




你可能感兴趣的:(python,初学者,if语句,布尔代数)