第四章 流程控制

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 wc
x=wc(3,8)
print(x)

3 赋值

3.1 序列解包

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

#交互变量值

x, y = y, x

例如

values=1,3,5
x,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=3
if 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=20
assert 18<age<36

print('ok...')

5 循环

5.1 while循环

x = 1
while 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删除对象,垃圾回收














评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值