python学习之第八课时--for和while循环

  • while循环

while循环,是一个循环加判断的组合,满足判断条件返回 真(True)开始循环代码块假(False)不循环

while循环主要结构:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
while codition:
    expressions
#注意:当codition=True时,程序将永远执行下去,若要停止使用ctrl+c终止程序

代码块

注意:在While循环里如果不加终止循环的判断或者关键字,会一直循环(死循环)

如:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import time
#引用计时器模块
a=True
b=1
while a:
    print(b)
    time.sleep(1)
#调用计时器

如上列While循环判断变量a为True(真)的时候开始循环里面的代码块,打印变量b到计时器等待1秒后,在重复这个过程(死循环)

While循环 与 if判断 的结合应用,从1循环到10终止

如:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
a=True
b=1
while a:
    print(b)
    if b==10:
        a=False
    b+=1
#变量b 自身累积加1
    time.sleep(1)
#调用计时器

上列是从1循环到10终止,While循环判断a变量为True(真),开始循环代码块,打印a变量值为1,下来遇到if判断b变量值是否等于10,显然不等于,不等于就跳过判断,在下来遇到b+=1(就是b变量自身的值加1,相等于b=b+1),此时b变量的值就是2了,在下来遇到计时器等待1秒,然后开始再次重复的循环直到s变量累积相加到10,if判断b变量等于10了,执行if判断里面的代码块,if代码块里面是a变量重新赋值等于False(假),此时n变量已经是False(假)了,在次循环时,While循环条件判断到a变量为假了,不在执行While循环终止

while循环  关键字(break)   跳出整个循环 不循环

如: 循环出1到10

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import time
#引用计时器模块
a=True
b=1
while a:
    print(b)
    if b==10:
        break
    b+=1
#变量b自身累积加1
    time.sleep(1)
#调用计时器

上列,当循环到10时,if判断b变量等于10的时候,执行if里面的代码块遇到 break (跳出整个循环 不在循环) 就直接跳出并且不在循环了

while循环  关键字(continue)   跳出本次循环  继续下次

 如:循环出1、2、3、4、  6、7、8、9、10 跳出5

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import time
#引用计时器模块
a=True
b=1
while a:
    if b==5:
        b+=1
        continue
    print(b)
    if b==10:
        break
    b+=1
#变量b自身累积加1
    time.sleep(1)
#调用计时器

如上列,当循环到5的时候if判断到后,执行if里面的代码块,if里 b变量加1就是6,continue跳出本次循环,再次循环时b变量是6了,if判断等于5就不成立了跳过判断,往下执行,直到第二个if判断到等于10后遇到break跳出整个循环不在循环

while循环  求1-100所有数相加的和(1+2+3+4+5...+100)

如:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
a=True
b=1
s=0
while a:
    if b==100:
        a=False
    s+=b
    b+=1
print(s)

如上列,s+=b(s=s+b) 就是每次循环到这里的时候,将s变量自身加上b变量的值重新赋值给s变量(这里可以理解为,b变量每次循环自身累积加1的值,在加上s变量的值,重新赋值给s变量做一个登记)最后在打印这个ss变量最后的登记,就是整个循环相加的和

while循环 加if判断  输出1-100内的所有奇数

如:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
a=1
while a<=100:
    if a%2==0:
        print(a)
    else:
        pass
    a+=1

while循环 加if判断  输出1-100内的所有偶数

#!/usr/bin/env python
# -*- coding:utf-8 -*-
a=1
while a<=100:
    if a%2!=0:
        print(a)
    else:
        pass
    a+=

while循环 加 if判断  求1-2+3-4+5...99的所有数的和

如:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
a=1
b=0
while a<=99:
    if a%2!=0:
        b=b-a
    else:
        b=b+a
    a+=1
print(b)

也就是在循环里做判断,循环到的是奇数就相加,如果是偶数就相减,每一次循环的相加或者相减,赋值给 b变量记录一下,b变量最后的记录就是我们得到的加减后的和

While循环 加 if判断  用户输入用户名和密码有3次机会

如:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
a=0
while a<=3:
    name=input("请输入用户名:")
    password=input("请输入密码:")
    if name=="luqinag" and password=="helloworld":
        print("恭喜登录成功")
        break
    else:
        print("sorry,用户名或密码错误")
    a+=1

也就是用While循环 加 if判断,在循环里判断用户输入的用户名和密码是否正确,正确就登录成功退出整个循环,不正确提示错误,变量a加1,再次循环重复操作,当变量a的值大于3时,循环条件不在成立,停止循环

  • for循环

 它可以遍历序列成员(字符串,数组,元组),主要用于循环一个字符串列表等

 不需要判断,定义一个循环变量即可

 格式:for (循环定义变量) in (被循环的变量)    循环完后自动退出整个循环

 打印循环定义变量即可

 关键字(continue)   跳出本次循环  继续下次环

 关键字(break)   跳出整个循环 不在循环

 for循环可以遍历字符串中的每个元素

#!/usr/bin/env python
# -*- coding:utf-8 -*-
a="life is short,you need python"
for b in a:
    print(b)
  • 关键字应用
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a="life is short,you need python"
for b in a:
    if b=="p":
        continue
#跳出本次循环 继续下次循环
    else:
        print(b)
#循环出所有字母和空格,p除外

如何只获取for里的第某一次值【重点】

#!/usr/bin/env python
# -*- coding:utf-8 -*-
a=[12,23,34,45,56,67,78,89]
for k,v in enumerate(a,1):
#首先要用enumerate()函数给被循环对象添加一个键也就是下标,这样就可以在循环里定义两个变量来分别接受键和值
#print(k,v) 这样就能拿到键和值,用if判断键来获取某一次需要的值
#如:要获取第六次循环的值
    if k==6:
        print(v)
#如果键等于6就打印这次循环的值
#输出 67

补充:

在其他编程语言中,如javaC/C++中,存在Do-while 循环

备注:do-while循环和while循环基本一样,不同的是它先执行循环体一次,然后判断循环继续条件

原文地址:https://www.cnblogs.com/LQ6H/p/python-8.html