编程时经常需要检查一系列条件,并据此决定采取什么措施。在Python中,if语句让我们能够检查程序的当前状态,并据此采取相应的措施。
5.1 一个简单的示例
下面是一个简短的示例,演示了如何使用if语句来正确地处理特殊情形。假设我们有一个汽车列表,并想将其中每辆汽车的名称打印出来。对于大多数汽车,都应以首字母大写的方式打印其名称,但对于汽车名为“bmw",应以全大写的方式打印。下面的代码遍历一个列表,并以首字母大写的方式打印其中的汽车名,但对于汽车名为“bmw”,以全大写的方式打印:
cars = [‘audi‘,‘bmw‘,‘subaru‘,‘toyota‘] for car in cars: if car == "bmw": print(car.upper()) else: print(car.title()) 这个示例中的循环首先检查当前的汽车名是否是“bmw".如果是,就以全大写的方式打印它;否则就以首字母大写的方式打印:AudiBMWSubaruToyota 这个示例涵盖了本章将介绍的很多概念。下面先来介绍可用来在程序中检查条件的测试。 5.2 条件测试 每条if语句的核心都是一个值True或False的表达式,这种表达式被称为条件测试。Python根据条件测试的值为True或False来决定执行是否执行if语句中的代码。如果条件测试的值为True,Python就执行紧跟在if语句后面的代码;如果为False,Python就忽略这些代码。 5.2.1 检查是否相等 大多数条件测试都将一个变量的当前值同特定值进行比较。最简单的条件测试检查变量的值是否与特定值相等:>>> a = "bmw">>> a == "bmw"True 我们首先使用一个等号将car的值设置为"bmw",这种做法我们已经看过很多次。接下来,使用两个等号(==)检查car的值是否为"bmw".这个相等运算符在它两边的值相等时返回True,否则返回False。在这个示例中,两边的值相等,因此Python返回True。 如果变量car的值不是‘bmw‘,上述测试将返回False:>>> a = ‘bmw‘>>> a == ‘audi‘False 一个等号是陈述;对于一个等号处的代码,可解读为”将变量car的值设置为‘audi‘.两个等号是发问;对于两个等号处的代码,可解读为"变量car的值是"bmw"吗?".大多数编程语言使用等号的方式都与这里演示的相同。 总结:在Python中,if语句判断的时候,返回的是True或False,如果条件满足的话就返回True;否则不满足,则返回False;并且,两个等号(==)是发问,问Python是否相等,如果相等怎样,不等怎样。 5.2.2 检查是否相等时不考虑大小写 在Python中检查是否相等时区分大小写,例如,两个大小写不同的值会被视为不相等:>>> car = ‘Audi‘>>> car == ‘audi‘False 如果大小写很重要,这种行为有其优点。但如果大小写无关紧要,而只想检查变量的值,可将变量的值转换为小写,再进行比较:>>> car = "Audi">>> car.lower() == ‘audi‘True 无论值‘Audi‘的大小写如何,上述测试都将返回True,因为该测试不区分大小写。函数lower不会修改存储在变量car中的值,因此进行这样的比较时不会影响原来的变量:(1)>>> car = "Audi"(2)>>> car.lower() == "audi" True(3)>>> car ‘Audi‘ 在(1)处,我们将首字母大写的字符串"Audi"存储在变量car中;在(2)处,我们获取变量car的值并将其转换为小写,在将结果与字符串‘audi‘进行比较。这两个字符串相同,因此Python返回True。从(3)处的输出可知,这个条件测试并没有影响存储在变量car中的值。
#register = input("Please input your username: ")register_names = []user_names = ["zengmingzhu","zhagnqq","jiangxb","gzd","loujq","liuxs","cdq"]while True: register = input("Please input your username: ") for user_name in user_names: register_names.append(user_name.title()) if register.title() in register_names: print("Sorry, the name you entered is registered! Please enter again") else: print("Successful!") user_names.append(register) break
时间: 2024-10-16 11:46:48