博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

二、Python开发---9、条件控制与循环语句

Posted on 2019-09-25 17:48  兰智杰  阅读(252)  评论(0编辑  收藏  举报

if语句

    1、if 条件:

        执行代码块(条件成立)

i = 1
if i < 5:  # 条件成立
    print('我比5小')       #输出为 我比5小

    2、if 条件:

        满足条件执行的代码块1

       else:

        没有满足if条件执行的代码块2

i = 1
if i < 5:                 #条件不成立所以执行else里的代码
    print('我比5小')
else:
    print('我比5大')       
    print('这里还是属于else里的代码块')
print('注意缩进')
#输出为      我比5小
#           注意缩进

    3、if 条件:

        满足if条件执行的代码块1

       elif 条件1:

        满足条件1执行的代码块2

       elif 条件2:

        满足条件2执行的代码块3

          else:

        不满足以上条件执行的代码块4

piao = '没钱'
if piao == '有票' :
    print('我要坐上或者去拉萨')
elif piao == '没票':
    print('我要去先补个票')
else:
    print('票都没得补,回家睡觉')
#输出为  票都没得补,回家睡觉

    4、if嵌套

    if 条件:

      满足if条件执行的代码块

    elif 条件1:

      if 条件1-1:

        满足条件1-1执行的代码块

      elif 条件1-2:

        满足条件1-2执行的代码块

       else:

        都不满足执行的代码块

    elif 条件2:

      满足条件2执行的代码块

    elif 条件3:

      满足条件1执行的代码块

x = int(input("Please enter first  value1:"))   #int()转化类型为int型
y = int(input("Please enter second value2:"))
z = int(input("Please enter second value3:"))
if (x==y==z):
    print("三数相同!")
elif (x>y):
    if (z>x):
        print("最大数为:",z)
    else:
        print("最大数为:",x)
else:
    if (z>y):
        print("最大数为:",z)
    else:
        print("最大数为:",y)

导入模块  

    Python程序可以调用一组基本的函数,这称为“内建函数”,包括之前见过的print()、input()函数,Python也包含一组模块,称为“标准库”。每个模块都是一个Python程序,包含一组相关的函数,可以嵌套到自己的程序中。例如:math模块有数学运算相关的函数,random模块有随机数相关的函数。在使用一个模块中的函数之前,必须用import语句导入该模块。

    import  模块1,模块2,模块3————例如:import  random,sys,os,math

import random
i=1
while i<=5:
    print(random.randint(1,10),end = ' ') #输出为 9 4 8 3 5 
    i+=1

    例子:猜拳游戏

import random
user = input('请输入石头、剪刀、布:')       #接受用户输入的内容
cont = ['石头','剪刀','']                 #初始化数据
num = random.randint(0,3)                  #获取0-2随机数
#random.randint(x,y) 返回x 到 y 之间的随机数
if user == '石头':
    if cont[num] == '石头':
        print('用户输入的是%s,电脑输入的是%s,平局'%(user,cont[num]))
    elif cont[num] == '剪刀':
        print('用户输入的是%s,电脑输入的是%s,你赢了'%(user, cont[num]))
    elif cont[num] == '':
        print('用户输入的是%s,电脑输入的是%s,电脑赢了'%(user, cont[num]))
elif user == '剪刀':
    if cont[num] == '石头':
        print('用户输入的是%s,电脑输入的是%s,电脑赢了'%(user,cont[num]))
    elif cont[num] == '剪刀':
        print('用户输入的是%s,电脑输入的是%s,平局' % (user, cont[num]))
    elif cont[num] == '':
        print('用户输入的是%s,电脑输入的是%s,你赢了'%(user, cont[num]))
elif user == '':
    if cont[num] == '石头':
        print('用户输入的是%s,电脑输入的是%s,你赢了'%(user,cont[num]))
    elif cont[num] == '剪刀':
        print('用户输入的是%s,电脑输入的是%s你输了'%(user, cont[num]))
    elif cont[num] == '':
        print('用户输入的是%s,电脑输入的是%s,平局'%(user, cont[num]))
else:
    print('您的输入有误!拜拜')

while循环

    1、while 条件:

      代码块

i = 1                        #初始化变量为1
while i<=10:                 #对初始化条件信息判断 判断成立则进入循环体
    print('I Love You')      #输出为  10行I Love You
    i+=1                     #这里对变量进行一个累加 i = i+1
print(i)                     #输出为11

    2、while 条件1:

      满足条件1执行代码块1

      while 条件2:

        满足条件1又满足条件2执行代码块2

'''
    输出为
            *
            * *
            * * *
            * * * *
            * * * * *     
'''
i = 0
while i < 5:                    #控制行数
    m = 0
    while m <= i:               #控制个数
        print('*',end = ' ')    #表示print的结束符为空格 默认是换行
        m+=1
    i+=1
    print()                     #每行输出完毕之后输出一个换行 print默认是换行结尾

    3、while循环使用else语句,while-else在条件语句为false时执行else语句块

      while 条件:

        满足条件执行代码块

      else:

        不满足条件执行代码块

'''
    输出为   
        爱你一万年
        爱你一万年
        爱你一万年
        我是至尊宝
'''
a = 0                   #初始化变量
while a < 3:
    print('爱你一万年')
    a+=1                #进行累加   每一次循环自动加1
else:                   #当条件不成立的时候
    print('我是至尊宝')

终止循环

    1、使用break退出循环

      在循环体内遇到break则会跳出循环,终止循环,并且不论循环的条件是否为真,都不再继续循环下去,整个循环结束

'''
    输出为
        至尊宝:爱你一万年
        至尊宝:爱你一万年
        至尊宝:爱你一万年
        紫霞仙子:别说话,吻我!    
'''
a = 0                            #初始化变量
while a < 5:                     #判断条件  a = 0
    if a == 3:                   #判断条件
        print('紫霞仙子:别说话,吻我!')
        break                    #当a = 3,进入if,输出一句话,然后break跳出整个循环,整个循环结束
    print('至尊宝:爱你一万年')
    a+=1                         #进行累加   每一次循环自动加1

    2、使用continue退出循环

      退出当前循环,再继续执行下一次循环,大循环还在继续,只是结束了当前一个循环

'''
    输出为
        第1圈开始 好累哈 第1圈结束
        第2圈开始 好累哈 蹭老师不注意,后半圈没跑
        第3圈开始 好累哈 第3圈结束
'''
a = 0
while a <3:
    a += 1            
    print('第%d圈开始'%a,end=' ')
    print('好累哈',end=' ')
    if a == 2:
        print('蹭老师不注意,后半圈没跑')
        continue
    print('第%d圈结束'%a)

for循环

    1、for可以循环遍历任何序列项目,如一个列表或者一个字符串。(序列可以是列表元组集合,如果是字典只能遍历keys,无法遍历values)

    for  变量  in 序列:

          满足条件执行代码块

'''
    输出为
        joe
        susan
        jack
        Tom
'''
list01 = ['joe','susan','jack','Tom']   #遍历列表
for i in list01:                        #遍历list01这个列表,将列表中的元素依次复制给变量 i
    print(i)                            #输出i  直到将所有的元素遍历完毕停止遍历

    遍历字典,continue与break的用法和while中的没有区别

'''
    创建一个名为favorite_places的字典。在这个字典中,将三个人的名字用作键;
    对于其中的每个人,都存储他喜欢的1〜3个地方. 输入一个人名(input)
    遍历这个字典,并将这个人喜欢的地方打印出来。
'''
favorite_places = {'张三':['上海','北京','深圳'],
                   '李四':['张家界','九寨沟','鼓浪屿']}

name = input('请输入姓名:')
sign = 0
for i in favorite_places:   #遍历字典,可以得到字典的key
    if name == i:           #遍历字典获取key 然后通过key和输入的值判断
        print(favorite_places[name])
        break
    sign += 1
    if sign == len(favorite_places):
        print('找不到该人信息')
'''
    输出为
        请输入姓名:张三
        ['上海', '北京', '深圳']
'''

range()函数

    Python中range() 函数返回的是一个整数序列的对象,一般用在 for 循环中。

    函数语法

       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)

      例如:list(range(1, 11))       # 从 1 开始到 11 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

         list(range(0, 30, 5))        # 步长为 5 [0, 5, 10, 15, 20, 25]

推导式

    1、列表推导式

list01 = []                                         #声明一个空列表
for i in range(3,10):                               #遍历数字序列
    if i % 2 == 0:
        list01.append(i)                            #将遍历得内容添加到列表当中
print(list01)                                       #输出为[4, 6, 8]
#两种方式等价
list03 = [i for i in range(3,10) if i % 2 == 0]     #简写方式
print(list01)                                       #输出为[4, 6, 8]

    2、字典推导式

list02 = ['joe','susan','black']
print(list(enumerate(list02)))          #输出为[(0, 'joe'), (1, 'susan'), (2, 'black')]
#enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
dict01 = {k:v for k,v in enumerate(list02)}
print(dict01)                           #输出为{0: 'joe', 1: 'susan', 2: 'black'}

dict01 = {'name':'joe','age':'18'}
print(list(dict01.items()))             #输出为[('name', 'joe'), ('age', '18')]
for k,v in dict01.items():              #items将字典中的键值对转化为元组的形式
    print(k,v )                         #输出为  name joe
                                        #       age 18

    3、嵌套列表推导式

names=[['Tom','Billy','Jefferson','Andrew','Wesley','Joe'],
       ['Alice','Jill','Ana','Wendy','Jennifer','Eva']]

print(names[0][0])
list04 = []
for i in names:
    for n in i :
        if len(n) <= 4:
            list04.append(n)
print(list04)   #输出为['Tom', 'Joe', 'Jill', 'Ana', 'Eva']

lsit04 = [n for i in names for n in i if len(n) > 4]
print(lsit04)   #输出为['Billy', 'Jefferson', 'Andrew', 'Wesley', 'Alice', 'Wendy', 'Jennifer']