python—test2021.11.2

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值