第四章 流程控制

xiaoxiao2021-02-28  35

1 print

使用sep参数为指定显示连接

print('hello','ok',sep=',')

2 导入重命名

import 库 as 别名

from 库 import 函数,函数,...

#导入库的重命名# import random as suiji# x=suiji.randint(3,4)# print(x)from random import randint as wcx=wc(3,8)print(x)

3 赋值

3.1 序列解包

一个序列(或任何可迭代对象)解包,并将得到的值存储到一系列变量中。 x, y, z = 1, 2, 3

#交互变量值

x, y = y, x

例如

values=1,3,5x,y,z=values

print(z)

输出

5

val={'xname':'hero','xage':8}x,y=val.popitem();

print(x,y)

输出

xage 8

使用*收集多余的值

val=[1,2,3,4]x,*y=val

print(y)

结果

[2,3,4]

3.2 链式赋值

x=y=3

3.3 增强赋值

+=, ......

4 条件语句

4.1 if语句

语法:

if 条件:

    语句

注意:

python中通过语句的缩进,匹配对应if语句

4.2 else子句

else表示if的相反情况,不能独立使用

语法

if 条件:

    if语句

else:

    else语句

4.3 elif语句

多重if,语法....

4.4 if结构的嵌套

4.5 条件

除了传统的6个比较运算符外,python支持如下运算符:

x is y xy是同一个对象

x is not y xy是不同的对象

x in y x是容器(如序列) y的成员

x not in y x不是容器(如序列) y的成员

运算符逻辑表达式描述实例andx and y布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。(a and b) 返回 20。orx or y布尔"或" - 如果 x 是 True,它返回 True,否则它返回 y 的计算值。(a or b) 返回 10。notnot x布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。not(a and b) 返回 False

注意:

x=3if 5<x<10:    print("ok")

print(x)

练习:石头剪刀布

import random    player = input('请输入:剪刀(0)  石头(1)  布(2):')    player = int(player)    computer = random.randint(0,2)    # 用来进行测试    #print('player=%d,computer=%d',(player,computer))    if ((player == 0) and (computer == 2)) or ((player ==1) and (computer == 0)) or ((player == 2) and (computer == 1)):        print('获胜,哈哈,你太厉害了')    elif player == computer:        print('平局,要不再来一局')    else:        print('输了,接着来,决战到天亮')

4.6 断言

assert语法的出现时当某条件不成立时,使程序不能继续执行

age=20assert 18<age<36

print('ok...')

5 循环

5.1 while循环

x = 1while x <= 100:    print(x)

    x += 1

例 直到输入name不为空,程序继续

name = ''while not name:    name = input('Please enter your name: ')

print('Hello, {}!'.format(name))

5.2 for循环

words = ['this', 'is', 'an', 'ex', 'parrot']for word in words:

   print(word)

打印数1~100:for number in range(1,101):    print(number)

5.3 迭代字典

d = {'x': 1, 'y': 2, 'z': 3}for key in d:

    print(key, '-----', d[key])

for key, value in d.items():

    print(key, 'corresponds to', value)

通过索引迭代

ages = [12, 45, 32, 102] for i in range(len(ages)):

    print(ages[i])

使用zip函数合并序列

names = ['anne', 'beth', 'george', 'damon']ages = [12, 45, 32, 102]li=list(zip(names, ages))

print(li)

结果

[('anne', 12), ('beth', 45), ('george', 32), ('damon', 102)]

在循环中将元组解包。for name, age in zip(names, ages):

    print(name, 'is', age, 'years old')

使用enumeric拆分序列

mstr='abc'

for ind,s in enumerate(mstr):

    print(ind,s)

6 break和continue

7 python中的推导

 列表推导是一种从其他列表创建列表的方式,类似于数学中的集合推导。

x=[y*y for y in range(3,7)]

print(x)

例 计算10以内的能把3整除的平方

x=[y*y for y in range(10) if y%3==0]print(x)

例 在列表中使用多个for

x=[(x,y) for x in range(1,3) for y in range(6,10)]

print(x)

8 三个小操作

8.1 pass 占位语句

8.2 exec将字符串解析执行和eval直接计算表达式

8.3 del删除对象,垃圾回收

转载请注明原文地址: https://www.6miu.com/read-2626532.html

最新回复(0)