python刷题笔记

Q:为什么不用 input() 而用 sys.stdin?
A:ACM 模式中常需处理多行输入,sys.stdin 能直接读取所有输入行,避免逐行调 input() 的潜在问题(如EOF处理)。

Q:split() 与 split(’ ') 有何区别?
A:split() 默认按任意空白符(空格、制表符等)分割并忽略空字符串,更适合处理不规则空格;split(’ ') 严格按单个空格分割,可能产生空字符串。

Q:split() 前是否必须用 strip()?
A:如果输入可能存在 开头/结尾空格 或 换行符,需要先 strip()。如果需保留字符串中间的空格(如 " a b c " 要分割为 [‘a’, ‘b’, ‘c’]),则必须用 strip() + split()。

strip() 会删除字符串 开头和结尾 的所有空白字符(包括空格、换行符 \n、制表符 \t 等)。

Q:集合(set)
A:集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。

# 创建格式
parame = {value01,value02,...}
value = [1,2,3,4,3,2]
s=set(value) # s={1,2,3,4}
# 创建一个空集合必须用 set()
s=set()
# 添加元素
s.add( 2 )
s.update( {1,3}) # {1, 3, 'Google', 'Taobao', 'Runoob'}
s.update([1,4],[5,6])   # {1, 3, 4, 5, 6, 'Google', 'Taobao', 'Runoob'}
# 移除元素
s.remove("Taobao") # 如果元素不存在,则会发生错误。
s.discard("Facebook") # 如果元素不存在,不会发生错误。
x = s.pop()  # 随机删除集合中的一个元素 x= "Runoob"
# 计算集合元素个数
len(s)
# 清空集合
s.clear()
# 判断元素是否在集合中存在
x in s # 存在返回 True,不存在返回 False。

Q:排序函数
A: sort() 方法、sorted() 函数、lambda 表达式作为 key 参数进行排序、operator 模块进行排序以及 numpy 模块进行排序

# sort()方法,直接修改原列表
lst.sort()
# sorted()函数,可以对任何可迭代对象进行排序,返回一个新的列表。
new_lst = sorted(lst) 
# lambda 表达式作为 key 参数进行排序
lst = ['apple', 'banana', 'orange', 'pear']
lst.sort(key= lambda x: x[1]) # 按照第二个字母排序
print (lst) # ['banana', 'pear', 'apple', 'orange']

Q:除法
A:取整,取模(取余)(/,//,%)

10/3 =  3.3333333333333335
9/3 =  3.0
10//3 =  3  # 取整
10%3 =  1  # 取余
15//4 =  3  # 取整,向下取整
int(7.8)=7  # 取整
math.floor(7.8) = 7 # 取整,向下取整
math.ceil(7.8) = 8 # 取整,向上取整
quotient, remainder = divmod(7, 3) # 取整取余,quotient = 2,remainder =1

Q:ljust()方法
A:

str.ljust(width[, fillchar])
"""
width -- 指定字符串长度。
fillchar -- 填充字符,默认为空格。
"""

Q:int(input(), base=16)
A:

"A" # 10
8 # 报错
"15" # 21
"a8" # 168
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值