1.filter() 函数的语法格式如下:
newIter = filter(function, iterable)
正因为该函数是根据自定义的过滤函数进行过滤操作,所以支持更加灵活的过滤规格。
其中,各个参数的含义如下:
function:可传递一个用于判断的函数,也可以将该参数设置为 None。
iterable:可迭代对象,包括列表、元组、字典、集合、字符串等。
newIter:在 Python 2.x 中,该函数返回过滤后得到的新列表;而在 Python 3.x 中,该函数返回一个迭代器对象,可以用 list()、tuple() 等方法获取过滤后得到的新序列。
元组相当于一个常数,不能被修改。
应用:删除1——100以内的素数
L=range(1,101)
def isprimer(n):
flag=1
for i in range(2,n):
if n%i==0: #能被(2——n)的数整除,说明不是素数
flag=0
if flag==0: #不是素数就输出
return n
print(list(filter(isprimer,L)))
2,re.match(正则表达式,要匹配的字符串,[匹配模式])
re.match(pattern, string, flags)
第一个参数是正则表达式,如果匹配成功,则返回一个Match,否则返回一个None;
第二个参数表示要匹配的字符串;
第三个参数是标致位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
import re
str1 = "Python's features"
str2 = re.match( r'(.*)on(.*?) .*', str1, re.M|re.I)
print(str2.group(0))
print(str2.group(1))
print(str2.group(2))
结果:
Python's features
Pyth
's
分析:
要匹配的字符串为str1 = “Python’s features”
r’(.)on(.?) .*’
(.*)提取的数据为str1字符串中on左边的所有字符,即Pyth
(.*?)提取的数据为str1中on右边,空格前面,即's
.group(0)输出的是匹配正则表达式整体结果
.group(1) 列出第一个括号匹配部分,
.group(2) 列出第二个括号匹配部分
匹配模式:
https://www.cnblogs.com/feifeifeisir/p/10627474.html
3,元组中只包含一个元素时,需要在元素后面添加逗号
tup1 = (50,)
tup1 = () #创建空元祖
元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# 以下修改元组元素操作是非法的。
# tup1[0] = 100
# 创建一个新的元组
tup3 = tup1 + tup2
print tup3
结果
(12, 34.56, ‘abc’, ‘xyz’)
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组。
Python 元组 cmp() 函数用于比较两个元组元素。
返回值
如果比较的元素是同类型的,则比较其值,返回结果,前一个大返回1,相同返回0,前一个小返回-1。
如果两个元素不是同一种类型,则检查它们是否是数字。
如果是数字,执行必要的数字强制类型转换,然后比较。
如果有一方的元素是数字,则另一方的元素"大"(数字是"最小的")
否则,通过类型名字的字母顺序进行比较。
如果有一个列表首先到达末尾,则另一个长一点的列表"大"。
如果我们用尽了两个列表的元素而且所 有元素都是相等的,那么结果就是个平局,就是说返回一个 0。
#!/usr/bin/python
tuple1, tuple2 = (123, 'xyz'), (456, 'abc')
print cmp(tuple1, tuple2);
print cmp(tuple2, tuple1);
tuple3 = tuple2 + (786,);
print cmp(tuple2, tuple3)
tuple4 = (123, 'xyz')
print cmp(tuple1, tuple4)
结果:
-1
1
-1
0
针对字典 会返回字典的key组成的tuple
tuple(seq) 强制转换为元组
tuple({1:2,3:4}) #针对字典 会返回字典的key组成的tuple
(1, 3)
3,求两个数的最大公因数
辗转相除法,又称欧几里得算法,以除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数
def f(a, b):
if b == 0:
return a
else:
return f(b, a%b)
a, b = input(“Enter two natural numbers: ”)
print(f(a, b))