9.1-条件判断:
python中是以缩进来控制代码的层级的,同一级代码需要保持一致,下一级代码要进行缩进。
if .... else .... 判断就是如果怎样否则怎样。
条件本质上即是True(真)或假(False)。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 条件为真 输出 "123"
if True:
print("123")
else:
print("456")
print("-----" * 8)
# 条件为假 输出 "456"
if False:
print("123")
else:
print("456")
运行结果:

用户登录验证案例:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
user = input("请输入用户名:")
pwd = input("请输入密码:")
#如果 user等于root 并且 pwd等于root123 输出 "欢迎登录"
if user == "root" and pwd == "root123":
print("欢迎登陆!")
#否则 输出 "用户名或密码错误"
else:
print("用户名或密码错误!")
运行结果:

9.2-多条件判断:
#首先判断 条件1 为真 对应语句块内容将会被执行 如果 条件1为假 对应语句块(代码块)内容不会被执行
if 条件1:
print("1")
#如果 条件1 为假 将判断 条件2 为真执行 为假 继续往下执行
elif 条件2:
print("2")
#如果 条件2 为假 将判断 条件3 为真执行 为假 继续往下执行
elif 条件3:
print("3")
#如上条件都为假时 则执行 else对应的 代码块
else:
print("4")
根据用户输入的内容输出其成绩案例:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
user = input("请输入考生姓名:")
#如果 user等于 a 输出 "99分"
if user == "a":
print("99分")
#如果 if 条件为假 并且 user 等于 "b" 输出 "76分"
elif user == "b":
print("76分")
#如果上述条件为假 并且 user 等于 "c" 输出 "32分"
elif user == "c":
print("32分")
#否则 输出 "姓名输入错误,不存在该考生成绩!"
else:
print("姓名输入错误,不存在该考生成绩!")
运行结果:

9.3-while循环:
while循环只要条件满足就会一直循环执行,直到条件不满足(为假False)时退出循环,并执行循环体后面的语句。
通过while循环可以让你不断地循环执行一段代码,若条件永远为真(True)则陷入死循环。
死循环案例:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#条件永远为真 将陷入死循环
while True:
print("1")
#while循环陷入死循环,不会执行循环体后面的语句
print("123456")
运行结果:

解决死循环:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
name = True
# 条件为真 执行while中的代码块
while name:
print("1")
#重新赋值
name = False
#while循环 条件不满足 为False时 执行循环体后面的语句
print("123456")
在内存中的表示:

运行结果:

无限循环输出1、2、3、4、5、6、7 ............ 案例:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
name = 1
while True:
print(name)
#变量name的值 加 1 并赋值给 变量name
name = name + 1
运行结果:

用while循环输出1 2 3 4 5 6 7 8 9 10案例:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
name = 1
pwd = True
while pwd:
print(name)
#变量name的值为10(为True)时 对应的代码块内容将被执行
if name == 10:
pwd = False
name = name + 1
print("end")
运行结果:

break关键字:
break关键字是立即跳出当前循环,在其后面的循环代码不会被执行。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
name = 1
pwd = True
while pwd:
print(name)
#变量name的值为10(为True)时 对应的代码块内容将被执行
if name == 10:
#跳出整个循环 其后面的循环代码将不执行
break
name = name + 1
#跳出整个循环后 直接往下执行
print("end")
运行结果:

continue关键字:
continue关键字是用于跳出本次循环,继续下一次循环。
如果遇到continue关键字,会终止本次循环,continue后面剩余的语句将会被忽略,回到循环顶端,继续下一次循环。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import time
while True:
print("1")
time.sleep(0.2)
#跳出本次循环 后面的语句将被忽略 回到循环顶端进行下一次循环
continue
print("2")
运行结果:

else子句:
在python中,可以在while和for循环中使用else子句,它只是在循环结束之后才会被执行,如果同时使用了break语句那么else子句块会被跳过。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
start = 0
while start < 3:
name = int(input("请输入数字进行猜解:"))
if name == 7:
print("猜解正确")
break
elif name > 7:
print("数字过大,请猜小一些")
else:
print("数字过小,请猜大一些")
start += 1
#条件不成立,执行下列代码,只有使用break语句跳出,下列代码才不会执行
else:
print("猜解次数过多")
运行结果:

练习题:
输入除了7以外的所有1~10以内的正整数案例:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
start = 1
while True:
#判断 条件 是否为真 为真 执行对应代码块内容 否则忽略
if start == 7:
start += 1
#跳出本次循环 其后面的循环代码将被忽略 回到循环顶端进行下一次循环
continue
print(start)
#变量start的值为10(为True)时,对应的代码块内容将被执行
if start == 10:
#跳出整个循环 其后面的循环代码将不执行
break
start += 1
运行结果:

求1-100的所有数的和案例:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
sum = 0
start = 1
while True:
sum += start
# 判断条件为 True 时 执行对应代码块内容 否则 忽略
if start == 100:
print(sum)
break
start += 1
运行结果:

输出1~100内的所有奇数案例:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#1-首先循环输出1-100
#2-判断是奇数还是偶数,只显示奇数
start = 1
#判断条件是否为 True 为True 执行 否则忽略
while start < 101:
#变量than 等于 start % 2 的余数
than = start % 2
#判断 条件是否为 True 为 True 执行对应代码块内容 否则忽略
#余数等于0即偶数,为1即奇数
if than == 1:
print(start)
else:
#pass语句表示什么都不执行,这个必须要写,如果不写从语法上就报错了
pass
start += 1
运行结果:

输出 1-100 内的所有偶数案例:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
start = 1
#判断条件是否为 True 为True 执行 否则忽略
while start < 101:
#变量than 等于 start % 2 的余数
than = start % 2
#判断 条件是否为 True 为 True 执行对应代码块内容 否则忽略
#余数等于0即偶数,为1即奇数
if than == 0:
print(start)
else:
#pass语句表示什么都不执行,这个必须要写,如果不写从语法上就报错了
pass
start += 1
运行结果:

求1-2+3-4+5 ... 99的所有数的和案例:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#1-首先输出1-99所有数的和
#判断是奇数还是偶数 偶数- 奇数+
sum = 0
start = 1
while start < 100:
than = start % 2
#如果 条件为True 执行
if than == 1:
sum = sum + start
#否则 执行
else:
sum = sum - start
start += 1
print(sum)
运行结果:

用户登陆(三次机会重试)案例:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#循环有 3次 登录的机会
#循环里面等待用户输入账号及密码
#判断条件为真 则输出 "欢迎登录!" 否则 输出 "用户名或密码错误,请重新登录...." 并且减少一次循环机会
start = 0
while start < 3:
#等待用户输入用户名 和 密码
user = input("请输入用户名:")
pwd = input("请输入密码:")
#判断条件是否为真 为真输出 "欢迎登录!" 并 跳出 整个循环
if user == "root" and pwd == "root123":
print("欢迎登陆!")
break
#否则 输出 "用户名或密码错误,请重新登录...." 并且循环次数减少一次
else:
print("用户名或密码错误,请重新登录....")
start += 1
continue
运行结果:

9.4-for循环:
for循环可以遍历任何序列里的每一个元素,如一个列表或者一个字符串。
range()函数和xrange()函数:
Python 2.7.2:
range()函数:
说明: range(start=None, stop=None, step=None)
获取指定范围的整数,它的工作方式类似于分片,会生成一个列表对象, start
表示从什么开始,默认从0开始, stop
表示结束,这个参数是必须输入的, step
表示步进值,默认为1。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#一个参数时 表示从 0 开始
print(range(5))
print(type(range(5)))
#两个参数时 第一个参数表示 起始值 第二参数表示 结束值
print(range(3,7))
#第三个参数为步进值(步进值默认为1)
print(range(0,10,3))
运行结果:

xrange()函数:
说明: xrange(start, stop[, step])
,用法和 range()
函数相同,只不过所生成的不是一个数组,而是一个生成器,只有通过 for
循环迭代它时 xrange()
才会生成当前的元素,xrange()
函数比 range()
函数的性能要优化很多,因为不需要一上来就开辟一块很大的内存空间。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
print(xrange(10))
# xrange()虽然也是内置函数,但是它被定义成了Python里一种类型,这种类型就叫xrange
print(type(xrange(10)))
for i in xrange(10):
print(i)
运行结果:

注:xrange()
只有在Python2.7中适用,Python3中已经没有了。
Python 3.5.1:
range()函数:
说明: range(start, stop[, step])
创建一个新的 range
对象, range
类型是一个表示整数范围的类型,range
类型实际上是一个不可变的数字序列,和 Python2.7中的 xrange()
类似。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
r1 = range(10)
print(r1)
print(type(r1))
for i in r1:
print(i)
# 由于range是一个不可变的序列类型,所以可以进行索引、切片等序列操作,但不能对其中的元素进行修改
# 索引
r2 = r1[3]
print("索引:",r2)
#切片
r3 = r1[1:6]
print("切片:",r3)
print(type(r3))
for i in r3:
print(i)
运行结果:

从大到小进行取值:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
for i in range(10,0,-1):
print(i)
print("____" * 8)
for i in range(10,0,-2):
print(i)
运行结果:

Python2和Python3的区别:
Python3中只有一个 range()
,但这个 range()
等同于 Python2.7的 xrange()
。
range()在for循环中的作用
可以根据range()函数给定的次数重复循环。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
for i in range(3):
user = int(input("请输入数字:"))
if user == 7:
print("猜正确了")
break
elif user > 7:
print("猜大了")
else:
print("猜小了")
else:
print("猜解次数过多")
运行结果:

练习题:
输出列表中所有元素的索引:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
li = [11,22,33,44]
# 取列表 li 的长度
ret = len(li)
for i in range(0,ret):
print("索引:",i,"值:",li[i])
运行结果:

网友评论