for:
仅当 for 循环运行完毕时(即 for 循环没有被 break 语句中止)才运行 else 块 。
while:
仅当 while 循环因为条件为假值而退出时(即 while 循环没有被break 语句中止)才运行 else 块 。
try:
仅当 try 块中没有异常抛出时才运行 else 块 。
即 。如果异常或者 return、break 或 continue 语句导致控制权跳到了复合语句的主块之外 。那么else 子句也会被跳过 。
按正常的理解应该是“要么运行这个循环 。要么做那件事” 。可是 。在循环中 。else 的语义恰好相反:“运行这个循环 。然后做那件事 。”
十七、except的用法和作用try/except: 捕捉由PYTHON自身或写程序过程中引发的异常并恢复
except: 捕捉所有其他异常
except name: 只捕捉特定的异常
except name, value: 捕捉异常及格外的数据(实例)
except (name1,name2) 捕捉列出来的异常
except (name1,name2),value: 捕捉任何列出的异常 。并取得额外数据
else: 如果没有引发异常就运行
finally: 总是会运行此处代码
十八、Python自省这个也是python彪悍的特性.自省就是面向对象的语言所写的程序在运行时,所能知道对象的类型.简单一句就是运行时能够获得对象的类型.比如type(),dir(),getattr(),hasattr(),isinstance().
十九、python容器列表:元素可变(任何数据类型) 。有序(可索引) 。append/insert/pop;
元组:元素不可变 。但元素中的可变元素是可变的;有序(可索引);而且元组可以被散列 。例如作为字典的键 。
集合:无序(不可被索引)、互异
字典:无序 。键值对(key:value) 。key唯一不可重复
二十、map()map()函数接收两个参数 。一个是函数 。一个是Iterable 。map将传入的函数依次作用到序列的每个元素 。并把结果作为新的Iterator返回 。(重点理解)
举例说明 。比如我们有一个函数f(x)=x2 。要把这个函数作用在一个list [1, 2, 3, 4, 5, 6, 7, 8, 9]上 。就可以用map()实现如下:
>>>deff(x):...returnx*x...>>>r=map(f,[1,2,3,4,5,6,7,8,9])>>>list(r)[1,4,9,16,25,36,49,64,81]
map()作为高阶函数 。事实上它把运算规则抽象了 。因此 。我们不但可以计算简单的f(x)=x2 。还可以计算任意复杂的函数 。比如 。把这个list所有数字转为字符串:
>>>list(map(str,[1,2,3,4,5,6,7,8,9]))['1','2','3','4','5','6','7','8','9']
二十一、reducereduce把一个函数作用在一个序列[x1, x2, x3, …]上 。这个函数必须接收两个参数 。reduce把结果继续和序列的下一个元素做累积计算
简单例子:
>>>fromfunctoolsimportreduce>>>deffn(x,y):returnx*10+y>>>reduce(fn,[1,3,5,7,9])13579
结合一下 。我们可以自己写出int()函数
fromfunctoolsimportreducea={'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}defcharnum(s):returna[s]defstrint(s):returnreduce(lambdax,y:x*10+y,map(charnum,s))
我们继续说一些好用的函数
二十二、splitPython split() 通过指定分隔符对字符串进行切片 。如果参数 num 有指定值 。则仅分隔 num 个子字符串 。
语法:
str.split(str="",num=string.count(str))
简化:
str.split("")
二十三、理论结合实际1)结合第四期所学知识 。我们可以写出这一行代码
print("".join(input().split("")[::-1]))
实现功能 。leetcode原题:给定一个句子(只包含字母和空格) 。将句子中的单词位置反转 。单词用空格分割 。单词之间只有一个空格 。前后没有空格 。比如:(1)“hello xiao mi” – >“ mi xiao你好“
2)再举一例:
将两个整型数组按照升序合并 。并且过滤掉重复数组元素
输入参数:
int*pArray1:整型数组1intiArray1Num:数组1元素个数int*pArray2:整型数组2intiArray2Num:数组2元素个数
对于python来说 。给个数没什么卵用 。
a,b,c,d=input(),list(map(int,input().split())),input(),list(map(int,input().split()))print("".join(map(str,sorted(list(set(b+d))))))
3)我们把最近的知识结合起来做一道题:
输入一个int型整数 。按照从右向左的阅读顺序 。返回一个不含重复数字的新的整数 。
result=""foriininput()[::-1]:ifinotinresult:result+=iprint(result)
还有很多具体的简洁操作 。这里就不再举例子了 。多体会吧 。
推荐阅读
- 我爸说八十年代他每月工资32块,可以养活一家四口人,可信吗?
- 想写本小说,番茄、飞卢、纵横、起点、创世,该选哪个平台呢?
- 七八十年代农村露天电影的放映员,当时有多受欢迎?
- 我的世界好马是什么样的,我的世界3种马匹
- 哪些平台稿费比较高?
- 70后的你挣下了多少家产?觉得够不够用?
- 关于晚霞的诗句优美句子 赞美夕阳晚霞的诗句
- 城市里打拼的60、70后,你在农村的房子还有必要保留吗?
- 100首神仙级古风音乐,百听不厌古风音乐100首