一 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=" ") # 是制表符 sec += 1 print() # print() 默认使用时表示换行,等同于print(end=" ") 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 !!! """