一 While循环
基本循环
while 条件:
执行内容 #循环体
... #循环体
... #循环体
# 若条件为真,执行循环体内容
# 若条件为假,不执行循环体内容
实例1(Python 3.0+):输出1--100间的所有整数
num = 1
while num <= 100:
print(num)
num += 1
实例2(Python 3.0+):用户三次登陆
true_username = "sunwk"
true_passwd = "abc"
count = 1
while count <= 3:
_username = input("please insert your name:")
_passwd = input("please insert your passwd:")
if _username == true_username and _passwd == true_passwd:
print("welcome %s login ..." % _username)
#此处使用了格式化输出
break
elif count == 3:
print("输入次数已达上限,请稍后重试 ...")
else:
print("用户名密码错误,请重新输入 ...")
count += 1
#格式化输出实例:
#打印字符串 %s (str)
A = "sunwk"
B = "zhubj"
print("A=%s B=%s" %(A,B))
"""
执行结果如下:
A=sunwk B=zhubj
"""
#打印整数
A = 10
B = 20
print("A=%d B=%d" %(A,B))
"""
执行结果如下:
A=10 B=20
"""
#打印浮点数
A = 2.1234
B = 3.1415
C = 10
D = 20
print("A=%f B=%f C=%f D=%f" %(A,B,C,D))
"""
执行结果如下:
A=2.123400 B=3.141500 C=10.000000 D=20.000000
默认浮点数都保留6位小数
"""
#打印浮点数(指定保留小数点位数)
A = 2.1254
B = 3.1415
print("A=%.2f B=%.3f" %(A,B))
"""
执行结果如下:
A=2.13 B=3.142
保留小数位数是,采用四舍五入方法的方法
"""
实例3(Python 3.0+):输出九九乘法表
first = 1
sec = 1
while first <=9:
sec = 1
while sec <= first:
print(str(sec)+"*"+str(first)+"="+ str(first*sec),end="\t")
# \t 是制表符
sec += 1
print()
# print() 默认使用时表示换行,等同于print(end="\n")
first += 1
while也可以配合else使用,语法如下
while 条件:
执行内容 #循环体
... #循环体
... #循环体
else: #执行else是有条件的,前提就是while正常结束后,才能执行else,如果使用break强行结束,则不执行else
执行内容
二 for循环
基本循环
for iterating_var in sequence:
statements(s)
#sequence序列可以是字符串、函数、列表等等
实例1(Python 3.0+):序列为字符串
name = "python"
for i in name:
print("当前字符为:" + i)
else:
print("Good Bye !!!")
"""
执行结果如下:
当前字符为:p
当前字符为:y
当前字符为:t
当前字符为:h
当前字符为:o
当前字符为:n
Good Bye !!!
"""
实例2(Python 3.0+):序列为列表
name = ["sunwk","zhubj","shawj","tangs"]
for i in name:
print("当前名字为:" + i)
else:
print("Good Bye !!!")
"""
执行结果如下:
当前名字为:sunwk
当前名字为:zhubj
当前名字为:shawj
当前名字为:tangs
Good Bye !!!
"""
实例3(Python 3.0+):序列为函数-输出1到10之间的偶数
for i in range(1,11):
if i % 2 == 0:
print(i)
"""
执行结果如下:
2
4
6
8
10
Good Bye !!!
"""
此处我们引用了range()函数,简单了解一下range()
#语法:
range(start, stop, step)
"""
参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
end: 计数到 end 结束,但不包括 end。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
"""
#例如:
range(5)
"""
输出结果如下:
[0,1,2,3,4]
python2.x中输出的是一个列表,但是在Python3.x中输出的是一个对象
"""
a = range(5)
print(type(a)) # 查看a的类型,执行结果为:<class 'range'>,不是一个列表
b = list(a) #使用list函数返回列表
print(b)
"""
执行结果如下:
<class 'range'>
[0, 1, 2, 3, 4]
"""
for循环也可以配置else使用,语法于while类似。
三 break语句
break是跳出当前循环
实例1(Python 3.0+):
num1 = 1
num2 = 1
while num1 <= 3:
print("num1值为"+str(num1)+":"+"执行父循环")
while True:
if num2 == 2:
print("num2值为"+str(num2)+":"+"跳出子循环")
break #break跳出第二层while循环,上层循环继续执行,总结就是break只会跳出当前的循环,而不是跳出全局循环。
else:
print("num2值为"+str(num2)+":"+"执行子循环")
num2 += 1
num1 += 1
else:
print("Good Bye !!! ")
"""
执行结果如下:
num1值为1:执行父循环
num2值为1:执行子循环
num2值为2:跳出子循环
num1值为2:执行父循环
num2值为2:跳出子循环
num1值为3:执行父循环
num2值为2:跳出子循环
Good Bye !!!
"""
通过上面的实例,得到的结论是break只能跳出子循环,但是如果我要同时跳出父循环怎么办呢,通过反复的代码试验,我发现可以设置一个break_flag来实现,以下是我的实例,可能还不是太理想,肯定还有其它方法的,但一想到我可是初学的小白啊,一下子就释然了.....
num1 = 1
num2 = 1
while num1 <= 3:
print("num1值为"+str(num1)+":"+"执行父循环")
while True:
if num2 == 2:
print("num2值为"+str(num2)+":"+"跳出子循环")
break_flag = True
break #break跳出第二层while循环,上层循环继续执行,总结就是break只会跳出当前的循环,而不是跳出全局循环。
else:
print("num2值为"+str(num2)+":"+"执行子循环")
num2 += 1
if break_flag:
print("子循环结束了,父循环跳出")
break
num1 += 1
else:
print("Good Bye !!! ")
"""
执行结果如下:
num1值为1:执行父循环
num2值为1:执行子循环
num2值为2:跳出子循环
子循环结束了,父循环跳出
"""
四 continue语句
continue是结束本次循环,执行下次循环
实例1(Python 3.0+):输出1-5的所有整数,跳过3
num = 0
while num < 5:
num += 1
if num == 3:
continue
print(num)
else:
print("Good Bye !!!")
"""
执行结果如下:
1
2
4
5
Good Bye !!!
"""