Python 快速刷题
Python 快速刷题
目录
目录Python 快速刷题目录背景Tipspython基础知识1.输入2. 输出3. 基本数据类型算术运算符String 字符串List列表Set集合Tuple元组Dict 字典
背景
Background背景: 本人在做企业笔试题的时候,有些企业的笔试不让使用Go语言,在C、C++、JAVA、Python中,Python的能够快速上手!所以将Python语言作为第二种刷题语言,并总结以下基础知识,便于做题的查询。
Python3 教程 | 菜鸟教程 (runoob.com)
Tips
在单页面无ide的情况下,如果查找函数名字
print(dir(dict))#显示所有dict字典类型的函数名
#['__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__ior__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__ror__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
print(help(dict.get))
'''
Help on method_descriptor:
get(self, key, default=None, /)
Return the value for key if key is in the dictionary, else default.
None
'''
python基础知识
1.输入
# input(prompt), input函数中可以放一些输入的提示语句prompt
# 默认读取是字符串,如果是非字符串,需要进行转换
#将input读取的字符串转化内int类型,input默认读取一行
a = int(input())
# 一行读取两个int类型,以空格间隔
n, m = map(int, input().split())
# 一行读取多个int类型的值,并转换为为list
l = list(map(int, input().split()))
2. 输出
print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end="":
print("a",end="")
# 简单拼接输出
print("name is",name)
# 指定分隔符
print("1","2","3",sep="-")
# 指定结尾
print("Hello", end=" world!")
# 格式化输出,采用%或者format()函数,以及f函数
print("%s is %.4f"%("ten",10)) # ten is 10
print("{0} is {1}".format("ten",10)) # ten is 10
#此处注意f字符中,嵌套在 f 字符串中的字符串不能使用与 Python 3.12 之前的 f 字符串相同的引号字符,也就是{}中的变量不能为“ten”,只能为不同符号的'ten'
print(f"{'ten'} is {10}")
# ASCII码 转化输出
print(ord('a'),chr(65)) #输出97 A
# 打印输出到文件
# r后面跟着的路径,不会因为’\‘转生转义,比如"\n"正常表示回车
# 'a+'添加的模式存入文件n.txt,若文件不存在则创建新文件
fp = open(r"C:\n.txt",'a+')
List实用输出
# 实用!!
# 打印result列表中的元素,并以','逗号分隔,这样最后一个元素后面是没有逗号的!
result = [1,2,3,4]
print(",".join(str(x) for x in result)) # 输出: 1,2,3,4
3. 基本数据类型
Number(数字) 不可变
String(字符串)不可变
bool(布尔类型)可变
List(列表) 可变
Tuple(元组)不可变
Set(集合)可变
Dictionary(字典)可变
算术运算符
0b101为二进制5,0o5为八进制5,0x5为16进制5
进制转化:
#将字符串,以16进制解析,转换成10进制数
int("2a",16) # 2*16+10=42
bin(3) # 将3转换为二进制0b11,输出为str
oct(11) # 将11转换为八进制0o13,输出为str
hex(11) # 将11转换为十六进制0xb,输出为str
int(0b101) # 二进制转化为10进制
int(0o5) # 八进制转化为10进制
int(0x5) # 十六进制转化为10进制,因为0x5是int类型,直接转
int(bin(3),2) # 因为bin输出是str,所以要指定进制数为2去解析str,继而转换为int
幂次**
a = 2**3 # 2^3=8
科学技术
#同Go语言
b = 2e3 #2*10^3
b = 2E3 #2*10^3
向下取整 //
c = 9//2 #4
右移 >>左移<<
# 同Go语言
d = 9>>1 # 二进制0b1001 >> 1 = 0b100 = 4
#>>1等价于,向下整除2,同python中//
e = 1<<2 # 0b001 << 2 = 0b100 = 4
# 相当于1乘二的2次方数,即1*(2**2)=4
位运算&|^~
# 同Go语言
3&5 #0b011 & 0b101 = 0b001 = 1
3|5 #0b011 | 0b101 = 0b111 = 7
3^5 #0b011 ^ 0b101 = 0b110 = 6
~5 # ~ 0b101 = -0b110 = -6
# go语言中,取反是 ^5 =-6
链式比较
x = 3
1 String 字符串 # 字符串倒序输出 order = "Hello world!" res = order[::-1] # 逆序 !dlrow olleH List列表 类似于go里面slice切片 # 声明 l = [] l = set([]) # 添加元素 l.append(1) l.insert(0,1)#在索引0的位置插入1,原函数索引0以及后面的元素后移 a = l.copy() # 复制列表 # 删除元素 del l[0] l.remove(1) #删除1这个元素 l.pop([index=-1])#默认移除列表最后一个元素 l.clear() # 删除整个列表元素 #长度 len(l) # 组合 [1,2,3]+[4,5] # [1,2,3,4,5] [1]*2 # [1,1] # 查询 l.index(1) # 返回1元素的第一个的位置,其中1必须是列表l中的元素,否则使用下面的判断 2 in [1,2,3] # True # 读取 l[-1] # list元素最后一个 # 最大值,最小值,求和 max(l),min(l),sum(l) #在l数组中计数 l.count(2) #排序 l.sort() #原列表l进行排序 a = sorted(l,[reserve = True]) # 返回排序后的列表,原列表不受影响 l.reverse() # 倒序 # 遍历 l = [1,2] # list for x in l: print(x) for i, item in enumerate(l): print i, item # 截取-深拷贝 l = [1,2,3,4] a = l[1:3] #2,3 a[0] = 5 print(l,a) #[1, 2, 3, 4] [5, 3] # 截取,并且有步长,步长-1,为倒序 # seq[start:end:step] l = [1,2,3,4,5,6,7,8] r1 = l[::-1] # [8,7,6,5,4,3,2,1] r2 = l[::2] # [1,3,5,7] # 比较 import operator l1 = [1,2,3,4] l2 = [2,3,4,5] print(operator.eq(l1,l2)) # False Set集合 s = set()# 创建空的set s.add("a")# 添加单个元素 s.update("abcde")#将元素拆个单个字符添加入集合中 s.remove("a") #删除元素,若不存在元素“a",则报错 s.discard("a")#删除元素,若不存在,则啥事不干 s.pop() # 随机删除一个元素,若为空,则报错 s.clear()#清空集合 s = {1,2} # set 集合内不存在重合元素 for i, item in enumerate(l): print i, item # 没有sort函数,默认已经sort a = [9,8,7,6,2,2,1] print(set(a)) # {1,2,6,7,8,9} # 集合操作 s1 = {1,2,3,4,5} s2 = {4,5,6,7,8} # 交集,以下不修改原集合,返回新集合 print(s1&s2) #{4,5} print(s1.intersection(s2)) #{4,5} # 差集,以下不修改原集合,返回新集合 print(s1-s2)#{1,2,3} print(s1.difference(s2))#{1,2,3} #并集,以下不修改原集合,返回新集合 print(s1|s2)#{1, 2, 3, 4, 5, 6, 7, 8} print(s1.union(list(s2)))#{1, 2, 3, 4, 5, 6, 7, 8} # 集合对比>,>=,<,<=,==,!= 子集含包关系 s1=set([1, 2, 3, 4, 5]) s2=set([1, 2, 3, 4]) print(s1>s2)#True print(s2>s1)#True print(s1!=S2)#True # 不可变集合frozenset,不可修改,其他同set f = frozenset('asdf')#frozenset(['a', 's', 'd', 'f']) Tuple元组 t = (1,"2") # tuple for i, item in enumerate(l): print i, item Dict 字典 类似于Go语言里面的map # 初始化 d = set({}) #添加元素 d[1]=1 d[key]=value #删除元素 del d[key] # 删除指定键值对 d.pop(key)# 删除并返回指定键值对的 d.popitem()#删除并返回最后一对键值对 d.clear() #删所有键值对 #获取元素值 d.get(1) # 若存在则返回等同于d[1],否则返回None #浅拷贝 d1 = d.copy() #深拷贝 d1 = d.deepcopy() # 获取dict中的key d = {1:"a",2:"b",3:"c"} a = list(d.keys()) # "1","2","3" # 获取dict中的value d = {1:"a",2:"b",3:"c"} a = list(d.values()) # "a","b","c" # 遍历 d = {1:"a",2:"b",3:"c"} for a,b in d.items(): print(a,b) # 按key排序排序 l = {3:"a",1:"b",2:"c",4:"d"} [l[key] for key in sorted(list(l.keys()))] # ["b","c","a","d"]
友情链接