输入
下面记录算法题常见的输入。
一行多个空格隔开的输入
一行2个
#输入 13 12(中间由空格隔开的输入数据)
a,b = map(int,input().split())
一行多个
list1=list(map(int,input().split()))
多行每行一个:
n=int(input())#行数
list1=[]#创建输入列表
for i in range(n):
list1.append(input())
#将每行输入作为元素输入进列表
输入二维数组
list1 = [ [0 for j in range(m)] for i in range(n) ]
#n行m列的矩阵,用零填充
将数字的各位变成列表
list(map(int,str(1234)))
[1, 2, 3, 4]
进行颠倒:
list/str[::-1]
常用函数
四舍五入:round(x,四舍五入位数)
如果不指定位数,默认保留到整数。 round()对浮点数的取舍遵循的是四舍六入五平分,当遇到 .5 时如果要取舍的位数前的小数是奇数,则直接舍弃,如果是偶数,则向上取舍。
math.ceil(2.3) :向上取整
math.floor(2.3) :向下取整
ASCII码的转换:
ord( ) 、chr( )
ord('A') #65
chr(65) #A
进制转换
bin(num) #十进制转二进制 '0b11'
int(num) #任何进制转十进制
#int("",16/2/8) “ ”字符串内的是16/2/8进制
oct(num) #十进制转八进制 '0o14'
hex(num) #十进制转十六进制 '0xf'
其它进制转换操作
把整数格式化为2位的16进制字符串,高位用零占位
'{:02x}'.format(9)
>>'09'
把整数格式化为2位的16进制字符串,高位用空占位
'{:2x}'.format(9)
>>> ' 9'
把整数格式化为2位的16进制字符串
'{:x}'.format(9)
>>> '9'
-------------------------------
把整数格式化为2位的8进制字符串,高位用空占位
'{:2o}'.format(9)
>> '11'
把整数格式化为2位的8进制字符串,高位用零占位
>>> '{:02o}'.format(6)
>>> '06'
------------------------------
把整数格式化为8位的2进制字符串,高位用零占位
>>> '{:08b}'.format(73)
>>> '01001001'
把整数格式化为2进制字符串
>>> '{:b}'.format(73)
>>> '1001001'
把整数格式化为8位的2进制字符串,高位用空占位
>>> '{:8b}'.format(73)
>>> ' 1001001'
format(num,'x')以16进制输出 'b'以二进制
format(15,'x') 'f'
排序
list.sort( ) #直接改变list列表的内容
#默认升序
#降序
list.sort(reverse=True)
sorted(list) #不改变原列表的内容,而是根据一个可迭代对象建立一个新的列表
字符串小写转大写:
str1.upper()
大写转小写:
str1.lower()
深拷贝
copy.deepcopy(s): copy变原来不变
import copy
s=[]
s1 = copy.deepcopy(s)
输出格式
保留n位输出
#保留7位小数输出 print("%.7f"%S)
不换行输出、空格输出
print(ans,end="")#无换行无空格
print(ans,end=" ")#空格
print()#自动换行
格式输出
print ("{}:{}:{}".format(h,m,s))
format()
保留小数.f
{:.2f}:保留小数点后两位
{:+.2f} : 带符号保留小数点后两位
{:.0f} : 不带小数
预留位置
{:0>2d} :数字补零 (填充左边, 宽度为2)
{:x<4d}: 数字补x (填充右边, 宽度为4)
表达格式
{:,} :以逗号分隔的数字格式 1,000,000
{:.2%}: 百分比格式
{:.2e}:指数记法 1.00e+09
对齐方式
{:>10d}:右对齐 (默认, 宽度为10)
右对齐填充指定长度,默认空格
str.rjust(width[, fillchar])
{:<10d}:左对齐 (宽度为10)
{:^10d} : 中间对齐 (宽度为10)