Python3 语法刷题零散笔记
分类总结
1.输入输出
-
Python3 实现一行输入多个数字,用空格隔开
a,b,c,d = map(int,input().split())
-
Python3 实现多行输入多个数字
a,b,c,d = (int(input()) for i in range(4))
-
条件输入(带条件判断或生成对应列表): 列表生成式
-
格式化输出: format函数和{___}
-
指定结尾格式(不希望每次print后自动换行): 举例:
print("{:d}".format(a // b), end='')
2.特殊计算
-
Python3 实现开根号:
import math
后书写:math.sqrt(变量)
3.常用函数
-
通过字典查询对应值:
dict.get(key)
如果key不存在,返回None
,dict.get(key, False)
也可以自定义查询不到的返回结果 -
四舍五入 函数round()用法
-
迭代器反转函数
reversed()
将输入的20个数反转为一个新列表:a = list(reversed([int(input()) for i in range(20)]))
-
判断是否整体由数字组成
isdigit()
,返回布尔值 -
从列表中找出某个值第一个匹配项的索引位置
index()
: index()函数的用法 -
将对应整数的值转换为对应的AScii码的字符:
chr()
函数,写入括号内整数 -
ord()
函数是chr()
的配对函数将对应AScii码的字符转换为对应整数 -
统计一个集合的元素出现次数:count():
a.count(xxx)
4.简易操作
-
输入一个二维数组并求某
列
的和:i = [[float(y) for y in input().split()] for x in range(12)]
ans = sum([i[x][a] for x in range(12)])
-
除了列表生成式外初始化一个指定大小数组的办法:
N = 100010
a=[0] * N
类似前缀和数组:如果输入一个下标从1开始的二维矩阵(一维同理):for i in range(1,n+1): temp = [int(k) for k in input().split()]
for j in range(1,m+1): matrix[i][j] = temp[j-1]
或者
for i in range(n):
g[i][0:m + 1] = list(map(int, input().split()))
-
简单数组去重:
IndexLst = list(set(IndexLst))
-
简单倒序列表:
array = array[::-1]
5.字符串操作
-
对空格清除操作:
str.strip()
只对左边清除空格:str.lstrip()
:右边改为r -
把字符串中的旧字符串替换新字符串,如果指定第三个参数max,则替换不超过 max次 replace()函数的用法
-
将字符串中的小写字母转为大写字母:
upper()
-
字符串包含问题:
str.contains('X')
6.运算符
- 实现和C++相同的
!x
位运算需要使用x ^ 1
7.数据结构类或方法类包
-
Python中的优先队列PriorityQueue(默认为小根堆,想要大根堆可以把权值乘-1转化大根堆
开销更小的简单优先队列heapq -
python的递归层数很低,为了防止爆栈,可以进行如下操作
import sys
sys.setrecursionlimit(1000000)