您现在的位置是:首页 > 技术教程 正文

蓝桥杯从零开始备战(Python组)---基础知识篇

admin 阅读: 2024-03-19
后台-插件-广告管理-内容页头部广告(手机)

第一次尝试报名蓝桥杯的Python组,好好备战,希望省赛可以拿奖!目前是整理了一些Python的常用函数和常用内置库,后面可能会开始刷题,如果有比较需要记住的知识点,会再写一篇刷题篇

一、输入输出

1.输入字符串和浮点数

n = input() #字符串可以直接遍历,输入字符串时遇到需要输出字符串的题,可以再建一个字符串用来更新,比如这道题 #输入一个由小写英文字母组成的字符串,请将其中的元音字母(a, e, i, o, u)转换成大写,其它字母仍然保持小写 n= input() res='' for i in n: if i in 'aeiou': res +=i.upper() else: res+=i print(res) n = float(input())#浮点数
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

2.一行输入多个字母或数字

m,n=map(int,input().split()) #输入一个列表 a=list(map(int,input().split()))
  • 1
  • 2
  • 3

3.转换时间格式

#12:00:00 h,m,s = map(int,t.split(':')) #h=12 m=00 s=00
  • 1
  • 2
  • 3

4.输入一串数字

s = [int(i) for i in input().split()]
  • 1

5.输入二维矩阵

for i in range(n): mp.append(list(map(int,input().split())))#矩阵中都是数字 for i in range(n): mp.append(list(input()))#矩阵中都是字符
  • 1
  • 2
  • 3
  • 4
  • 5

6.输入例如:

220000

000000

002202时

map=[] for i in range(N):#N是行数 map.append(list(input()))
  • 1
  • 2
  • 3

7.向字符串里添加符号

words=['www','ccc','aaa'] print('\n'.join(words)) #使用 join() 方法合并字符串时,它会将列表(或元组)中多个字符串采用固定的分隔符连接在一起。 #join() 方法也是非常重要的字符串方法,它是 split() 方法的逆方法,用来将列表(或元组)中包含的多个字符串连接成一个字符串。 #例如 # 隔空输出 a = [1,2,3,4] print(' '.join(map(str,a))) #1 2 3 4
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

8.保留两位小数

a = 3.1415926 print("%.2f"%a)
  • 1
  • 2

9.字符串转化为数字

n = input() int(i) for i in str(n)
  • 1
  • 2

10.字符串格式化的三种方法

v1 = "我是{},今年{}".format("李明",22) v2 = "我是%s,今年%d岁“ %(”李明“.22) name = "李明" age = 22 v3 = f"我是{name},今年{age}岁" %s 字符串 {:s} %d 整数 {:d} %.2f 浮点数字(用小数点符号,45) {:.2f} %.2e 浮点数字(科学计数法) {:.2e}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

11.输出

for i in range(10): print(i,end='')#打印在一行 print(i,end='\n')#换行符结尾
  • 1
  • 2
  • 3

12.切片列表,字符串

a=[起始位置:截止位置:步长]
  • 1

13.常用内置函数

round(number, digits) # 对数字number四舍五入保留digits位小数,四舍,五不进,六入 enumerate() # 迭代器,返回index和value,可用于循环遍历或查找 set(x) # 将x转化为集合,即去重 set1 & set2 # 求交集 set1 | set2 # 求并集 set2 - set1 # 求差集
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

二、关于string类型的一些常用函数

S.lower() # 小写 S.upper() # 大写 S.swapcase() #大小写互换 S.capitalize() # 只有首字母大写 L love you S.title# 只要遇到空格都会大写 L Love You S.ljust(width,[fillchar]) # 输出width个字符,S左对齐,不足部分用fillchar填充,默认的为空格。 返回字符串第一次出现的索引,如果没有匹配项则返回-1,索引从0开始 S.find#针对字符串,会返回-1 S.index()#针对列表,找不到直接报错 S.find('a', 0,3)#在0-2的索引中找,只返回首次出现的位置 print(s.find('l',1,-1))#指定位置查询 S.rfind('a',0,3)#从右侧开始查找,返回找到的第一个的位置 S.count(substr, start, end) # 计算substr在S中出现的次数 S.replace(oldstr, newstr, count)#把S中的oldstar替换为newstr,count为替换次数 S.strip(chars)#移除s list中指定的chars字符 S.split(sep, maxsplit) # 以sep为分隔符,把S分成一个list。maxsplit表示分割的次数。 S.join(seq)#.join(): 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串 例:a='-' b='helloword' print(a.join(b)) >h-e-l-l-o-w-o-r-d
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

三、关于list的一些常用函数

##二维列表:列表中的元素是列表,本质:一维列表 a=[[1,2,3],[3,4,5]] list.append(lista)#lista当成一个元素加到前面的列表中 lista+listb #才是拼接 list.extend(str)extend()#接受参数为可迭代的值,会把str加入到list中 list.insert(index,obj) list.remove(obj)#移除第一个匹配项 list.index(obj)#找出某个值第一个匹配项的下标 list.sort()# 由小到大排序 list.reverse() # 将列表进行翻转 list.count(obj) # 返回某个元素在列表里面的个数 list.clear()# 清除列表元素 list(seq)#将字符串转为列表 zip(list1,list2)#用zip封装列表,在for遍历 max(a)#求列表a的最大值 min(a)#求列表a的最小值 sum(a)#求列表a的和
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

四、关于math库的一些常用函数

1.数学常数
math.e:自然常数 e 的值,约等于 2.71828。

math.pi:圆周率 π 的值,约等于 3.14159。

2.常用数学函数
math.sqrt(x):返回 x 的平方根。

math.pow(x, y):返回 x 的 y 次方。

math.exp(x):返回 e 的 x 次方。

math.log(x, base=math.e):返回 x 的对数。base 参数为对数的底数,默认为自然对数 e。

math.sin(x)、math.cos(x)、math.tan(x):返回 x 的正弦、余弦和正切值。

math.asin(x)、math.acos(x)、math.atan(x):返回 x 的反正弦、反余弦和反正切值。

3.数值运算函数
math.ceil(x):返回不小于 x 的最小整数。

math.floor(x):返回不大于 x 的最大整数。

math.trunc(x):返回 x 的整数部分。

math.modf(x):返回 x 的小数部分和整数部分,以元组形式返回。

math.fabs(x):返回 x 的绝对值。

math.factorial(x):返回 x 的阶乘。

math.gcd(a, b):返回 a 和 b 的最大公约数。

a*b//gcd(a,b)#返回a,b的最小公倍数

4.特殊函数
math.erf(x)、math.erfc(x):返回 x 的误差函数和余误差函数的值。

math.gamma(x)、math.lgamma(x):返回 x 的伽马函数和它的自然对数。

math.comb(n, k)#返回不重复且无顺序地从 n 项中选择 k 项的方式总数

五、关于datetime库的一些函数

1.日期加减

print(datetime.datetime.now() + datetime.timedelta(hours=1)) print(datetime.datetime.now() + datetime.timedelta(days=1)) print(datetime.datetime.now() + datetime.timedelta(weeks=1))
  • 1
  • 2
  • 3

2.修改时间为指定时间

print((datetime.datetime.now() + datetime.timedelta(days=1)).strftime("%Y-%m-%d 00:00:00"))
  • 1

六、关于re库的一些常用函数

re.match(pattern, string[, flags]):从字符串的开头开始匹配,如果字符串的开头能够匹配正则表达式,就返回匹配对象,否则返回None。其中,pattern是正则表达式,string是需要匹配的字符串,flags是可选的匹配标志。

re.search(pattern, string[, flags]):在字符串中搜索正则表达式的第一个匹配结果,如果找到了匹配结果就返回匹配对象,否则返回None。其中,pattern是正则表达式,string是需要匹配的字符串,flags是可选的匹配标志。

re.findall(pattern, string[, flags]) 搜索字符串中所有满足正则表达式的匹配结果,并以列表形式返回这些匹配结果。其中,pattern是正则表达式,string是需要匹配的字符串,flags是可选的匹配标志。

re.sub(pattern, repl, string[, count, flags]) 用repl替换字符串中所有满足正则表达式的匹配结果,并返回替换后的字符串。其中,pattern是正则表达式,repl是替换字符串,string是需要匹配的字符串,count是可选的替换次数,默认是0

七、关于queue的一些常用函数

1.创建一个FIFO队列对象:

q = queue.Queue()
  • 1
q.put(1)#向队列中添加元素 q.put(2) print(q.get()) # 输出1 get()从队列中获取元素 print(q.get()) # 输出2 q.qsize() # 返回队列长度 q.empty() # 判断队列是否为空
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3.双端队列

q = deque() # 创建 q.append() # 入队,从队尾插入 q.appendleft() # 入队,从队头插入 q.pop() # 出队,从队尾删除,并返回该值 q.popleft() # 出队,从队头删除,并返回该值
  • 1
  • 2
  • 3
  • 4
  • 5

八、关于itertools的一些常用函数

itertools.permutations()
  • 1

此函数来生成一个序列的全排列。这个函数接受两个参数,第一个参数是需要排列的序列,第二个参数是排列的长度(可选,默认为序列的长度)。
生成1~3的全排列

for p in permutations: print(p) 1 2
  • 1
  • 2
  • 3
  • 4
输出结果: (1, 2, 3) (1, 3, 2) (2, 1, 3) (2, 3, 1) (3, 1, 2) (3, 2, 1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

如果想生成指定长度的排列,可以在第二个参数中指定排列的长度,如下所示:
生成1~3的2个元素排列

permutations = itertools.permutations([1, 2, 3], 2) for p in permutations: print(p)
  • 1
  • 2
  • 3
输出结果: (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
itertools.count(start=0, step=1)
  • 1

这个函数返回一个无限迭代器,从 start 开始,以 step 为步长不断地生成整数。可以使用 itertools.islice() 函数来控制生成的元素个数。

itertools.islice(iterable, start, stop[, step])
  • 1

iterable:可迭代对象,如列表、元组、字符串等。
start:切片的起始索引。
stop:切片的结束索引,切片生成的元素不包含该索引对应的元素。
step(可选):切片的步长,默认为 1,表示连续的元素。

itertools.cycle(iterable)
  • 1

这个函数接受一个可迭代对象作为参数,并不断重复生成该对象中的元素。可以使用 itertools.islice() 函数来控制生成的元素个数。

itertools.repeat(object, times=None)
  • 1

这个函数返回一个无限迭代器,不断重复生成指定的对象。如果指定了 times 参数,则迭代指定的次数。

itertools.chain(*iterables)
  • 1

这个函数接受一些可迭代对象作为参数,返回一个迭代器,依次将它们中的元素连接在一起。

itertools.compress(data, selectors)
  • 1

这个函数接受两个可迭代对象作为参数,data 和 selectors。它返回一个迭代器,依次返回 data 中与 selectors 中对应位置为 True 的元素。

itertools.filterfalse(function or None, iterable)
  • 1

这个函数接受一个函数和一个可迭代对象作为参数,返回一个迭代器,依次返回 iterable 中不满足函数 function 的元素。

itertools.groupby(iterable, key=None)
  • 1

这个函数接受一个可迭代对象和一个 key 函数作为参数,返回一个迭代器,将 iterable 中的元素按照 key 函数的结果进行分组。

itertools.product(*iterables, repeat=1)
  • 1

这个函数接受一些可迭代对象作为参数,返回一个迭代器,依次返回它们中的元素的笛卡尔积。

itertools.permutations(iterable, r=None)
  • 1

这个函数接受一个可迭代对象和一个整数 r 作为参数,返回一个迭代器,依次返回它们中的元素的 r 元排列。

itertools.combinations(iterable, r)
  • 1

这个函数接受一个可迭代对象和一个整数 r 作为参数,返回一个迭代器,依次返回它们中的元素的 r 元组合。

九、进制转换

bin()用来将任意进制整数转换为二进制数。
oct()用来将任意进制整数转换为八进制数。
hex()用来将任意进制整数转换为十六进制数。
int(x, 2) 将x由二进制转为十进制,其它进制转十进制类似

十、大小写转换

#upper() 方法将字符串中的小写字母转为大写字母。 #lower():所有字母小写 str.upper() str.lower()
  • 1
  • 2
  • 3
  • 4

十一、sort和sorted

list.sort(cmp=None, key=None, reverse=False) #cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。 #key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。 #reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。 sort 与 sorted 区别: sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。 list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

十二、哈希表和字典

enumerate(sequence, [start=0])#同时列出数据下表和数据 d = {key1 : value1, key2 : value2, key3 : value3 } print(d[key1])# values1 del d[key2] # 删除键key2 d.clear() # 清空字典 del d # 删除字典 len(dict)#计算字典元素个数,即键的总数。 str(dict)#输出字典,可以打印的字符串表示。 dict.get(key[, value]) print ("key1 : ", d.get(key1))#value1 d={1:[1,10,199],3:[2,9,16]} d.items() 含义:返回字典中的键值对列表。 d.items()返回包含键值对的元组列表。每个元组中的第一项是键,第二项是键的值。 list(d.items()) =[(1, [1,10,199]), (3, [2,9,16])] for o in d.items(): ids, ts_ = (i for i in o) # ids是1,3...号, ts_是[1,10,199],[2,9,16] ts_ = sorted(ts_) print(ids,ts_)#1 [1,10,199] 3 [2,9,16] d.keys() 含义:返回字典中的键列表。 d.values() 含义:返回字典中的值列表。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

十三、分数

#求1+1/2+1/4+1/8+⋯1/2**19的和 from fractions import Fraction#插入分数模块 sum = 1 for i in range(1,20): #输入分数时,Fraction开头字母必须大写,否则会报错。 sum+=Fraction(1,2**i)#表示1/2+......+1/2^19 print(sum)#1048575/524288
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

十四、求质数

m=[] for i in range(1,n): if i>1: for j in range(2,i): if i%j==0: break else: m.append(i)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索