设为首页 加入收藏

TOP

第五章 if语句(一)
2017-10-10 08:26:31 】 浏览:9992
Tags:第五 语句

    编程时经常需要检查一系列条件,并据此决定采取什么措施。在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".如果是,就以全大写的方式打印它;否则就以首字母大写的方式打印:
Audi
BMW
Subaru
Toyota
这个示例涵盖了本章将介绍的很多概念。下面先来介绍可用来在程序中检查条件的测试。

5.2 条件测试
每条if语句的核心都是一个值True或False的表达式,这种表达式被称为条件测试。Python根据条件测试的值为TrueFalse来决定执行是否执行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: ")
#首先定义一个空的列表,用户存储小写转化后的用户
transformation_registered_names = []
#已经注册的用户
registered_users = ["Zengmingzhu","zhagnqq","jIangxb","gZd","loujq","liuxs","cDq"]

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

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

#使用if进行判断,判断输入的用户名(小写转化)是否存在已经注册的里列表中
if register.title() in transformation_registered_names:
print("Sorry, the name you entered is registered! Please enter again")
else:
print("Successful!")
registered_users.append(register)
break
prin
首页 上一页 1 2 3 4 5 6 下一页 尾页 1/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇17年春python班级作业>>>.. 下一篇一个轻量级的tcp交互,thrift的使..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目