第五章 条件、循环和其他语句

5.1 print和import的更多信息

5.1.1 使用逗号输出

>>> print('age',43,45)         // 可以用逗号隔开多个表达式,中间会有空格

age 43 45

5.1.2 把某事件作为另外事件的导入

import somemodule

from somemodule improt aaa, bbb, ccc

from somemodule import *

如果两个模块有同名函数怎么办?

第一种方法可以用模块引用:

module1.open()

module2.open()

另外一种方法是:给模块起别名,或者给函数起别名

>>> import math as foobar

>>> foobar.sqrt(3)

1.7320508075688772

5.2 赋值魔法

5.2.1 序列解包

>>> x,y,z = 1,2,3               // 可以为多个值同时赋值

>>> print(x,y,z)

1 2 3

>>> x,y                              // 交换两个值

(1, 2)

>>> x,y = y, x

>>> x, y

(2, 1)

序列解包(或递归解包):将多个值的序列解开,放到变量的序列中。

当函数或方法返回元组(或其他序列或可选迭代对象)时,这个特性尤为重要。

>>> source = {'name':'Robin','girlfriend':'marion'}

>>> key, value = source.popitem()  // 函数返回的值打包成元组。

>>> key, value

('girlfriend', 'marion')

5.2.2 链式赋值

>>> x = y = "fsdfsd"

>>> x, y

('fsdfsd', 'fsdfsd')

5.2.3 增量赋值

+=  /  *=

5.3 语句块:缩排的乐趣

语句块:条件为真时,执行或者执行多次的一组语句。在代码前放置空格来缩进语句即可创建语句块

python中,冒号用来标识语句块的开始;块中的语句都是缩进的,并且缩进量相同。当回退到和已闭合

的块一样的缩进量时,就表示当前块已经结束。

5.4 条件和条件语句

5.4.1 这就是布尔变量的作用

真值:下面的值在作为布尔表达式的时候,会被解释器看做假(false)

False        None      0(包括浮点,长整和其他类型)         ""               ()          []            {}

5.4.2 条件执行和if语句

5.4.3 else子句

5.4.4 elif

5.4.5 嵌套代码块

name= input("what is your name?")if name.endswith('Gumby'):if name.startswith('Mr.'):print("hello MR Gumyby")elif name.startswith('Mrs.'):print('Hello Mrs. Gumy')else:print('hello Gumby')else:print('hello, stranger')

name= input('jfsdljfs')

5.4.6 更复杂的条件

(1)比较运算符

x == y/   x y / x >=y /     x<=y   / x !=  y /  x is y  / x is not y/   x in y    /x not in y

0 < age < 100   //  运算符可以连接

(2)相等运算符

==

(3)is: 同一运算符

>>> x = y = [1,2,3]

>>> z = [1,2,3]

>>> x == y

True

>>> x == z                 //   相等性判定,判断数值是否相等

True

>>> x is y

True

>>> x is z                  // 同一性判定, 判断对象是否是同一个

False

(4)in:成员资格运算符

(5)字符串和序列比较

>>> "abc" < "edf"

True

>>> "abc".lower() == "def".upper()

False

>>> [1,[1,3]] < [1,[1,4]]

True

(6)布尔运算符

if   XX and YY  or ZZ   // 也满足短路逻辑

5.4.7 断言

>>> age = 10

>>> assert 100

Traceback (most recent call last):

File "", line 1, in

assert 100

AssertionError

5.5 循环

5.5.1  while循环

x = 1

while x <= 100:

print(x)

x +=1

5.5.2 for 循环

>>> words = ['this','is','an','ex','parrot']

>>> for word in words:

print(word)

this

is

an

ex

parrot

>>>

>>> for xx in range(10):         // range函数类似于分片,包含下限,但是不包含上限

print(xx)

0

1

2

3

4

5

6

7

8

9

>>>

5.5.3 循环遍历字典

>>> d = {'x':1, 'y':2, 'z':3}

>>> d

{'x': 1, 'y': 2, 'z': 3}

>>> for key in d:

print(key, " -- ",d[key])         // 字典的迭代顺序是不一定的

x -- 1

y -- 2

z -- 3

>>> for key, value in d.items():

print(key, '-', value)             // 字典的迭代顺序是不一定的

x - 1

y - 2

z - 3

>>>

5.5.4 一些迭代工具

python中有一些函数非常好用,有些在itertools中,有一些是内建函数

(1)并行迭代

>>> names = ['anne','beth','george','damon']

>>> ages = [12, 45, 32, 102]

>>> for i in range(len(names)):

print(names[i],'   ',ages[i])

>>> for name, age in zip(names, ages):   //  zip函数可以进行并行迭代,zip函数也可以用于不等长的列表,短的“用完”就停止

print(name,age)

anne 12

beth 45

george 32

damon 102

(2 ) 按索引迭代

strings = ['aa','bb','cc']

>>> for index, string in enumerate(strings):

if 'aa' in string:

strings[index] = "zzzz"

>>> strings

['zzzz', 'bb', 'cc']

(3)翻转和排序迭代

reversed和 sorted函数

>>> sorted([4,6,9,2])

[2, 4, 6, 9]

>>> var = reversed('hello world')

>>> var

>>> list(var)

['d', 'l', 'r', 'o', 'w', ' ', 'o', 'l', 'l', 'e', 'h']

>>> ''.join(reversed('hello world'))

'dlrow olleh'

5.5.5 跳出循环

(1)break: 跳出循环

(2)continue: 跳出本次循环,执行下一轮循环

(3)while true用法

whileTrue:

word= input("please input a word?")if not word:break

print('this workd was' +word)

name= input('jfsdljfs')

5.6 列表推倒式-轻量级循环

利用其它列表创建新列表

>>> [x*x for x in range(0, 10)]

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

>>> [x*x for x in range(0, 10) if x % 3 ==0]   // 增加一个if部分

[0, 9, 36, 81]

>>> [(x,y) for x in range(0, 10) for y in range(0,4)]// 也可以有多个for语句

[(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3), (3, 0), (3, 1), (3, 2), (3, 3), (4, 0), (4, 1), (4, 2), (4, 3), (5, 0), (5, 1), (5, 2), (5, 3), (6, 0), (6, 1), (6, 2), (6, 3), (7, 0), (7, 1), (7, 2), (7, 3), (8, 0), (8, 1), (8, 2), (8, 3), (9, 0), (9, 1), (9, 2), (9, 3)]

>>>

5.7 三人行

5.7.1 占位符:pass

var = "fsdf"

if var == "fsdfsd":print("fsd")elif var == "vcxfds":pass

elif var == "fsdfs":print("fsd")

name= input("fsdfsd")

5.7.2  使用del删除

>>> x = ['hello','world']>>> y =x>>> dely //删除y后,并不会影响x, 因为只是删除y这个名字,而值不会删除。值是通过垃圾回收来删除的>>>x

['hello', 'world']

5.7.3 使用exec和eval执行和求值字符串

>>> exec("print('fds')")  // 执行字符串中存储的代码,这样会有安全漏洞

fds

>>> eval("5*5")         // 和exec类似,不同点是,eval会计算值并且返回结果

25

python 条件循环赋值_python学习(五) 条件、循环和其他语句相关推荐

  1. list循环赋值_Python基础 | 0xd 条件判断与循环

    条件判断 所谓的条件判断就是根据一条或多条语句的执行结果(True/False)来决定执行那一块的代码. // 条件判断的三个关键字 // Python 使用if.else.elif 三个关键字的搭配 ...

  2. python条件循环叠加_Python基础:条件判断与循环的两个要点

    一.条件判断: Python中,条件判断用if语句实现,多个条件判断时用if...elif实现:看下面一段程序 #python 3.3.5#test if...elif age = 20 if age ...

  3. python 循环赋值_Python打牢基础,从19个语法开始!

    Python简单易学,但又博大精深.许多人号称精通Python,却不会写Pythonic的代码,对很多常用包的使用也并不熟悉.学海无涯,我们先来了解一些Python中最基本的内容. Python的特点 ...

  4. python变量如何用循环定义_Python学习日记1(变量定义,分支,循环)

    学习历程按照Github上jackfrued的100天学习python的进度来进行,再辅上一些自己查找的相关资料. 对应传送门:https://github.com/jackfrued/Python- ...

  5. python中while循环的格式_Python 学习笔记——for循环和while循环

    文章目录 一.for循环 1.for循环的格式 2.for循环遍历字典 3.range()函数 for循环配合range()函数 二.while循环 while循环的格式 break while循环 ...

  6. 流浪的python博客园_python学习心得第一章

    初始python 1什么是程序 计算机程序是一组执行某种动作的的指令.和那些电路.芯片.显卡.硬盘等不同,它不是计算机本身可以触摸的部分,而是隐藏在背后运行在硬件上面的东西.程序就是一系列告诉没有知觉 ...

  7. python给矩阵赋值_python给矩阵赋值

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python的numpy创造矩阵from numpy import matimp ...

  8. python中while嵌套循环_python中的while循环

    循环 目标 程序的三大流程  while 循环基本使用  break 和 continue  while 循环嵌套 01. 程序的三大流程 在程序开发中,一共有三种流程方式: 顺序 -- 从上向下,顺 ...

  9. python入门之控制结构-循环结构_Python 入门之控制结构 - 循环结构(一)

    第1关:While 循环与 break 语句 程序的第三大结构是循环结构.在此结构中,通过一个判断语句来循环执行一个代码块,直到判断语句为假时跳出循环.循环语句分为while循环.for循环.循环嵌套 ...

  10. python初学篇笔记_Python学习笔记(基础篇)

    Python 基础 输入输出 输出 使用print()可以向屏幕上输出指定的文字: >>> print('Hello world!') Hello world! print()中可以 ...

最新文章

  1. python复制文件夹不阻塞_Python学习第54天(阻塞(blocking) IO和非阻塞(non-blocking)IO)...
  2. 书评 —— 《Go语言编程》
  3. OSPF协议工作原理
  4. 重构学习1-重命名方法、类、参数等
  5. 538. Convert BST to Greater Tree 把二叉搜索树转换为累加树
  6. c++如何对结构体作为形参设置默认值
  7. Django ORM 知识点总结
  8. Vue 组件开发 - 数据输入框组件
  9. Spring框架----自动按照类型注入的Autowired注解
  10. 若某计算机字长为16位,题目来源于王道论坛 某计算机字长为16位,主存地址空间...
  11. python split 引号_Python 学习笔记 - 字符串
  12. clion stfp 配置
  13. Mysql数据库系统单元压力和性能基准测试
  14. java实现电子面单pdf生成_常用快递电子面单批量打印api接口对接demo-JAVA示例
  15. t分布em参数估计matlab,参数估计的MATLAB实现.ppt
  16. 编译UE4出现C1076错误的解决方法
  17. 【C++学习笔记】函数基础和参数传递
  18. Unity资源管理图示
  19. 分享20个无版权的高清无码图库站
  20. TX2--wifi模块开启AP路由功能

热门文章

  1. 如何看待腾讯市值(按 2012 年 8 月 17 日股价)超过 Facebook?
  2. Python编程练习:判断字符串是否为回文
  3. drain open 线与_Open-Drain与Push-Pull
  4. 7-11 特立独行的幸福 (25分)
  5. python sep参数_Python中带有print()函数的sep参数
  6. 熊猫烧香被恶搞,网友爆笑诗词句大集合
  7. allure报告本地执行,显示趋势图
  8. 阿里云智能技术战略架构师陈绪:透视2019云计算酣战
  9. 洛谷 U5773 受望先锋
  10. 光耦w314的各引脚图_常用光耦型号代换大全