Python学习6——条件,循环语句
条件语句
真值也称布尔值。
用作布尔表达式时,下面的值都将被视为假:False None 0 "" () [] {}。
布尔值True和False属于类型bool,而bool与list、str和tuple一样,可用来转换其他的值。
>>> bool('I think,therefore I am') True >>> bool(10) True >>> bool('') False >>> bool(0) False
if语句
>>> name = input('What is your name?') What is your name?Gumby >>> if name.endswith('Gumby'):print(name)Gumby
如果条件(if和冒号之间的表达式)是前面定义的真,就执行后续代码块,如果条件为假,就不执行。
else子句,elif子句,嵌套代码块
>>> name = input('What is your name?') What is your name?Gumby >>> if name.endswith('Gumby'):if name.startswith('Mr.'):print('Hello,Mr.Gumby')elif name.startswith('Mrs.'):print('Hello,Mrs.Gumby')else:print('Hello,Gumby') else:print('Hello,stranger')Hello,Gumby
比较运算符:
表达式 | 描述 |
x == y | x等于y |
x < y | x小于y |
x > y | x大于y |
x >= y | x大于或等于y |
x <= y | x小于或等于y |
x != y | x不等于y |
x is y | x和y是同一个对象 |
x is not y | x和y是不同的对象 |
x in y | x是容器y的成员 |
x not in y | x不是容器y的成员 |
>>> x = y = [1,2,3] >>> z = [1,2,3] >>> x == y True >>> x == z True >>> x is y True >>> x is z False >>> #is检查两个对象是否相同(不是相等),变量x和y指向同一个列表,而z指向另一个列表(即使它们包含的值是一样的),这两个列表虽然相等,但并非同一个列表。
ord函数可以获取字母的顺序值,chr函数的作用与其相反:
>>> ord('a') 97 >>> ord('v') 118 >>> chr(118) 'v'
断言:assert
>>> age = 10 >>> assert 0 < age < 11 >>> age = -1 >>> assert 0 < age < 11 Traceback (most recent call last):File "<pyshell#47>", line 1, in <module>assert 0 < age < 11 AssertionError >>> age = -1 >>> assert 0 < age < 11,'the age must be realistic' #字符串对断言做出说明 Traceback (most recent call last):File "<pyshell#49>", line 1, in <module>assert 0 < age < 11,'the age must be realistic' #字符串对断言做出说明 AssertionError: the age must be realistic
循环
while 循环
>>> name = '' >>> while not name.strip(): #屏蔽空格name = input('please enter your name:')print('hello,{}!'.format(name))please enter your name:Momo hello,Momo!
for循环
>>> numbers = [0,1,2,3,4,5,6,7,8] >>> for number in numbers:print(number)0 1 2 3 4 5 6 7 8
内置函数range():
>>> range(0,10) range(0, 10) >>> list(range(0,10)) #范围[0,10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> range(10) #如果只提供1个位置,将把这个位置视为结束位置,并假定起始位置为0 range(0, 10) >>> for num in range(1,10):print(num)1 2 3 4 5 6 7 8 9
迭代字典:
>>> d = dict(a=1,b=2,c=3) >>> d {'a': 1, 'b': 2, 'c': 3} >>> for key in d:print(key,'to',d[key])a to 1 b to 2 c to 3
换一种方式迭代:
>>> for key,value in d.items():print(key,'to',value)a to 1 b to 2 c to 3 >>> d.items() dict_items([('a', 1), ('b', 2), ('c', 3)])
并行迭代:
同时迭代2个序列。
>>> names = ['aaa','bbb','ccc'] >>> ages = [10,11,12] >>> for i in range(len(names)):print(names[i],'is',ages[i],'years old')aaa is 10 years old bbb is 11 years old ccc is 12 years old
内置函数zip,可以将2个序列缝合起来,并返回一个由元组组成的序列。
>>> list(zip(names,ages)) [('aaa', 10), ('bbb', 11), ('ccc', 12)] >>> for name,age in zip(names,ages):print(name,'is',age,'years old')aaa is 10 years old bbb is 11 years old ccc is 12 years old
zip函数可以缝合任意数量的序列,当序列的长度不同时,zip函数将在最短的序列用完后停止缝合。
>>> list(zip(range(5),range(10))) [(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)]
迭代时获取索引:
>>> strings = ['aac','ddd','aa','ccc'] >>> for string in strings:if 'aa' in string: #替换列表中所有包含子串‘aa’的字符串index = strings.index(string) #在列表中查找字符串strings[index] = '[censored]'>>> strings ['[censored]', 'ddd', '[censored]', 'ccc']
优化一下:
>>> strings = ['aac','ddd','aa','ccc'] >>> index = 0 >>> for string in strings:if 'aa' in string:strings[index] = '[censored]'index += 1>>> strings ['[censored]', 'ddd', '[censored]', 'ccc']
继续优化:
内置函数enumerate能够迭代索引-值对,其中的索引是自动提供的。
>>> strings = ['aac','ddd','aa','ccc'] >>> for index,string in enumerate(strings):if 'aa' in string:strings[index] = '[censored]' >>> strings ['[censored]', 'ddd', '[censored]', 'ccc']
反向迭代和排序后在迭代:
>>> sorted([4,2,5,1,3]) [1, 2, 3, 4, 5] >>> sorted('hello,world') #sorted返回一个列表 [',', 'd', 'e', 'h', 'l', 'l', 'l', 'o', 'o', 'r', 'w'] >>> list(reversed('Hello,world')) #reversed返回一个可迭代对象, ['d', 'l', 'r', 'o', 'w', ',', 'o', 'l', 'l', 'e', 'H'] >>> ''.join(reversed('Hello,world')) 'dlrow,olleH' >>> sorted('aBc',key=str.lower) #按照字母表排序,可以先转换为小写 ['a', 'B', 'c']
break 跳出循环
>>> from math import sqrt >>> for n in range(99,1,-1): #找出2-100的最大平方值,从100向下迭代,找到第一个平方值后,跳出循环。步长为负数,让range向下迭代。root = sqrt(n)if root == int(root): #开平方为整print(n)break81
while True/break
>>> while True: #while True导致循环永不结束word = input('enter your name:')if not word:break #在if语句中加入break可以跳出循环print(word)enter your name:aa aa enter your name:bb bb enter your name: >>>
简单推导
列表推导式一种从其他列表创建列表的方式,类似于数学中的集合推导。
>>> [x*x for x in range(10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
打印能被3整除的平方值
>>> [x*x for x in range(10) if x%3 == 0] [0, 9, 36, 81]
使用多个for部分,将名字的首字母相同的男孩和女孩配对。
>>> girls = ['aaa','bbb','ccc'] >>> boys = ['crde','bosy','adeb'] >>> [b+'+'+g for b in boys for g in girls if b[0]==g[0]] ['crde+ccc', 'bosy+bbb', 'adeb+aaa']
上面的代码还能继续优化:
>>> girls = ['aaa','bbb','ccc'] >>> boys = ['crde','bosy','adeb'] >>> letterGrils = {} >>> for girl in girls:letterGrils.setdefault(girl[0],[]).append(girl) #每项的键都是一个字母,值为该字母开头的女孩名字组成的列表>>> print([b+'+'+g for b in boys for g in letterGrils[b[0]]]) ['crde+ccc', 'bosy+bbb', 'adeb+aaa']
字典推导
>>> squares = {i:'{} squared is {}'.format(i,i**2) for i in range(10)} >>> squares[8] '8 squared is 64'
转载于:https://www.cnblogs.com/suancaipaofan/p/11070937.html
Python学习6——条件,循环语句相关推荐
- Python学习2 条件判断语句if,循环语句for while
顺序,分支,循环结构 条件判断语句if 1)if-else- 2) if-elif-else 注意: 1)python中不支持switch-case语句 2)注意缩进! 3)区间范围内允许连续比较: ...
- Python学习笔记:循环语句
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Python入门5_条件循环语句
1 , 赋值操作: >>> x,y,z = 1,2,3 #等同于x = 1,y = 2, z = 3 >>> x,y = y,x #交换x,y的值 >> ...
- python基础之条件循环语句
前两篇说的是数据类型和数据运算,本篇来讲讲条件语句和循环语句. 0x00. 条件语句 条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语 ...
- Python学习 Day26 JS循环语句(二)
JS循环语句(二) (一)寻找质数 输出1-100之间的质数 for(var num = 1;num <= 100;num++){//累加器,只要遇到是数字num的约数,这个变量就进行+1var ...
- Python 学习笔记9 循环语句 For in
For in 循环主要适用于遍历一个对象中的所有元素.我们可以使用它遍历列表,元组和字典等等. 其主要的流程如下:(图片来源于: https://www.yiibai.com/python/pytho ...
- [转载] Python入门(输入/输出、数据类型、条件/循环语句)
参考链接: Python中的循环技术 在介绍之前我们先来看看计算机的三个根本性基础: 1.计算机是执行输入.运算.输出的机器 2.程序是指令和数据的集合 3.计算机的处理方式有时与人们的思维习惯不同 ...
- 【python】python学习之条件语句,小实验:商品打折后价格
python学习之条件语句,用一个小实验来进行学习吧! price = float(input("请输入金额:\n")) if(price >= 100):if(price ...
- 从c语言到Python (4)循环语句
题主是大一学生,刚刚开始学习python,但是题主有一定的c语言基础,在这里以两者对比的形式做一些学习笔记 #循环语句的命名 在python和c语言中,都有两个循环语句,关键字都是while/for, ...
- python教程循环语句,Python基础教程之循环语句(for、while和嵌套循环)
循环可以用来重复执行某条语句,直到某个条件得到满足或遍历所有元素. 1 for循环 是for循环,可以把集合数据类型list.tuple.dict.set的元素遍历出来. (1)对list进行循环 c ...
最新文章
- 一致性哈希算法的理解
- 六周第三次课 9.6/9.7 awk
- Day 23 面向对象进阶
- 关于手机横屏打开相机或者相册闪退解决方案
- [转载] 杜拉拉升职记——43 偷听者
- 数学之贝叶斯分类的理解
- 2台电脑一根网线传文件_用1根网线直连2台电脑,能干嘛?
- c语言自定义double函数例子,C语言的那些事——sqrt()函数 跟 double型数据的“%lf”...
- collector_使用Data Collector进行SQL Server性能监视–第3部分–阅读报告
- httpClient测试
- MySQL 基本信息的查询(初始化配置信息 my.ini)
- cesium 模型绕点飞行一周
- IE6下PNG背景透明的七种方法
- matlab 相位谱_电气信息类专业课程之matlab系统仿真 第九章 提高仿真能力需要案例(1)...
- 毕设-基于JavaWeb在线学习平台
- 读书笔记,《刻意练习》,第三章,心理表征
- 云适配牵手中建信息 征战企业级市场信心十足
- Vue3 - 组件通信(子传父)
- 苹果公司不给iPhone配大电池的原因
- 今天是2019年最后一天,全球金融危机,离我们已经过去十年了
热门文章
- field property data type validation error in metadata
- 如何在SAP CRM Fiori My Task应用里创建task
- php核销次数,人人商城记次时商品核销时展示剩余积分 - YangJunwei
- 计算机组成原理第二版复习大纲,计算机组成原理复习大纲
- 旋转链表Python解法
- deinstall 卸载grid_oracle 11g RAC手动卸载grid,no deinstall .
- mysql 存储过程游标删除_mysql数据库存储过程游标循环,提前退出
- mysql恢复语句报错_php对于mysql恢复数据的时候,只能恢复一条!然后就会报错!但把sql语句直接贴到数据库里面是可以执行的!...
- 后退返回命令数量_Redis | Redis 有序集合相关命令
- 事件总线第一次点击_用户体验研究指南3-3第一次点击测试