Python总结
Python语言开发复习总结
第一章,字符串相关
一,查看在一段字符串中是否出现一个字符
a,str =input().split() #拆开成两个字符串,用空格隔开
str.strip() #除去多余的空格
if str.find(a) == -1: #直接用find方法
print(“false”)
else:
print(“true”)
二,活用字符串的内嵌方法:
用字符串的方法isupper, islower来判别大小写。isdigit来判断是否是数字。
三,保留小数点的写法:
一般写法:print("%.5f “%a)
专业写法:
如何做到保留两位小数?下面举例说明。
假如’以英里为单位的距离’用dist变量存储,那么下面的写法将做到保留两位小数,并且尾部附加了miles这个串。
print(”%.2f %s"%(dist, ‘miles’))
这里,"%.2f %s"是格式控制串,这与C语言的格式化输出是类似的。%.2f是指要在这个位置输出一个浮点数,
'.2’是指要保留(dist, ‘miles’)是指要保留两位小数。%s是指要在这个位置输出一个字符串。
整体效果是,拿dist的值填充到%.2f所占位置,拿’miles’填充到%s所占位置,而后输出。
假如’无线电往返小时数’用time变量存储,那么下面的写法将达成【样例输出】中的最后一行输出的效果。
print("%s %.2f %s"%(“time:”, time, ‘hours’))
这里,"%s %.2f %s"是格式控制串,这与C语言的格式化输出是类似的。
整体效果是,拿"time:“填充到第一个%s所占的位置,拿time的值填充到%.2f所占的位置,
拿’hours’填充到第二个%s所占的位置,而后输出。
如何让time:之后有一个空格,在格式控制串中的第一个%s所占的位置之后留一个空格即可。
效果如图:
print(”%.2f %s"%(dist, ‘miles’))
四,格式函数,格式化
(1)Format函数的格式化功能:
(2)Format函数对输出的字符的控制:
(3)转义字符的使用
Please write letter ‘A’.
The path is “D:\study\computer”.
print("Please write letter ‘A’. ")
print(‘The path is “D:\study\computer\”.’)
在输出的时候:要输出”加\ 输出\加\
(4)输出格式的控制:
1,,print(n, str(height) + ‘m’)
第二章,
(1)求平方根和平方的方法总结
1,Import math
Math.Pow(数字,平方数)
Math.sqrt(数字)开平方,
2,直接用表达式
122=144
1440.5=12.0
(2)在一定数内进行循环
1+2+4+8+…+2**64
for gezi in range(64):
maili_sum += 2 ** gezi
(2)竖着输入横着输入对数据的处理
#一整条输入,ss =line.split()
这个时候的ss已经是个一个列表了,可以直接使用方法
s1 = input()
s2 = input()
s3 = input()
ss = [s1, s2, s3]
分开一行行输入
对不确定的若干行的处理:
n=int(input())
stu_list = []
for i in range(n):
stu = input().split()
stu[0] = int(stu[0]) #学号
stu[2] = int(stu[2]) #年龄
stu_list.append(stu)
例题:
n = int(input()) #输入学生人数
#输入学生名单
stu_list = []
for i in range(n):
stu = input().split()
stu[0] = int(stu[0]) #学号
stu[2] = int(stu[2]) #年龄
stu_list.append(stu)
print(stu_list)
stu_list.sort(key = lambda stu: stu[1]) #按姓名排序
for stu in stu_list:
print("%3d%6s%3d" % (stu[0], stu[1], stu[2]))
print(’’)
stu_list.sort(key = lambda stu: stu[2])
for stu in stu_list:
print("%3d%6s%3d" % (stu[0], stu[1], stu[2]))
(3)将列表输出为字符串的形式
print(" ".join(list2))
for i in range(len(str)):#循环长度与打印的数据有关
print(str[i], end=’ ');
print(’ '.join(list(map(str, num_list))))
(4)
判断的数列中包含符号,或者其他字符
For i in a:
If i == ’-’
(5)字母大小写转换
1,swapcase方法 ,大写变成小写,小写转化为小写,并且返回新的字符串
2,Upper方法,把小写字母变成大写字母
3,Lower 大写转为小写
4,Title,把每一个单词的首字母大写
6)求一串数字中的最大值和最小值
将需要对比的数字输入到一串列表中,用max和min 的方法直接输出
For i in range(n):
K1=i
K2=n-i
A=k1*k2
Li.append(a)
Print(max(li))
7)活用map
8)字典
常规用法;
(1)num=int(input())
sum={}
for i in range(num):
key,value=input().spilit 一行行输入,一行添加到字典sum内,并用sum[key]=value定义字典的键值对。
sum[key]=value
print( sum.get(input(),‘notfound’) get的用法就是,直接将输入的值,放进去进行寻找,不存在就输出notfound
(2)
利用字典的值可变,键key不变储存一次次的增加,并排序
在标准输出上输出出现次数最多的整数及其出现次数,两者以一个空格分隔;若出现次数最多的整数有多个,则按照整数升序分行输出。
【样例输入】
10
0 -50 0 632 5813 -50 9 -50 0 632
line=input()
str_list={}
for s in line:
str_list[s]=line.count(s) #省去了一步步相加的步骤,例如直接将a在line出现的次数用line.count写了出来,并把他赋值给对应的key的值
max_count=max(str_list.values())
for s in sorted(str_list.keys()) 这个方法是用for,一个个遍历字典的key出来,根据特意要按照key值的大小输出,所以在for遍历就进行排序
if str_list[s]=max_count:
print(s,max_count)
因为只是输出几个特定的最值,所以直接在已排好的数列中,找出对应的最值
(3)输出,每一个都要输出
输出有多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数。按出现次数递减的顺序输出。如果两个整数出现的次数一样多,则先输出值较小的,然后输出值较大的。
【样例输入】
12
5 2 3 3 1 3 4 2 5 2 3 5
【样例输出】
3 4
2 3
5 3
1 1
4 1
n_list = [int(s) for s in input().split()]
n = int(input())
#统计各个数字的出现次数
dict_n_cnt = {}
for n in n_list:
dict_n_cnt[n]=n_list.count(n)
list_n_cnt = list(dict_n_cnt.items())
list_n_cnt.sort(key=lambda x: x[0])
list_n_cnt.sort(key=lambda x: x[1], reverse=True)
for key,value in list_n_cnt:
print(key, value)
多个数值,输入n个学生的成绩,按总分从大到小输出。
按总分从大到小排序。若总分相同,则按学号从小到大排序。
【样例输入】
5
355 dj 60 70
665 kk 70 80
g33 He 55 95
【样例输出】
665 kk 150
g33 He 150
n = int(input())
xs_list = []
for i in range(n):
xs = input().split()
xs[2] = int(xs[2])
xs[3] = int(xs[3])
xs_list.append(xs)
xs_list.sort(key=lambda xs: xs[0])
xs_list.sort(key = lambda xs: xs[2] + xs[3], reverse = True)
for xs in xs_list:
print(xs[0], xs[1], xs[2] + xs[3])
=倒序:if x==x[::-1]
Tips:字符串的切分:
按照空格切分普通的操作: n=input().split
切成主要前面的一个字符,后面的不分割:n = input().split(’ ', 1) 字符串(3,vss,dd)
会变成 [‘3’,‘vss dd’]
拓展如果要取出字母部分print(n[1])
for i in n[1]:遍历出每一个字母 vssdd
将输入的字符串每一个变成数列和int类型
num_list = list(map(int, input().split()))
num_list = int(map(int, input().split()))
key max count 计数方法
print(max(num_list, key=num_list.count))
排序问题:
print(’ '.join(map(str,sorted((x1, x2), reverse=True))))
关于字母的加和
利用ASCII码
关于越界的问题
使用求余
round 方法 求余数
判读两个数组是否包含相同的字符
使用set集合(是一个无序不重复的元素集)可以消除重复的元素
Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。
print (“我叫 %s 今年 %d 岁!” % (‘小明’, 10))
以上实例输出结果:
我叫 小明 今年 10 岁!
列表的元素可以变
元祖列表不能变
将列表转换为元祖
tuple(seq)
将列表转换为元组。
list1= [‘Google’, ‘Taobao’, ‘Runoob’, ‘Baidu’]
tuple1=tuple(list1)
tuple1
(‘Google’, ‘Taobao’, ‘Runoob’, ‘Baidu’)
元祖可以直接访问最大的值
只定义第一个数的元祖,应该设置后面加上逗号tup1 = (50,)
forma函数
格式化工具
3.1415926 {:.2f} 3.14 保留小数点后两位
3.1415926 {:+.2f} +3.14 带符号保留小数点后两位
-1 {:+.2f} -1.00 带符号保留小数点后两位
2.71828 {:.0f} 3 不带小数
5 {:0>2d} 05 数字补零 (填充左边, 宽度为2)
5 {:x<4d} 5xxx 数字补x (填充右边, 宽度为4)
10 {:x<4d} 10xx 数字补x (填充右边, 宽度为4)
1000000 {:,} 1,000,000 以逗号分隔的数字格式 #
0.25 {:.2%} 25.00% 百分比格式
1000000000 {:.2e} 1.00e+09 指数记法
13 {:10d} 13 右对齐 (默认, 宽度为10)
13 {:<10d} 13 左对齐 (宽度为10)
13 {:^10d} 13 中间对齐 (宽度为10)
11
‘{:b}’.format(11)
‘{:d}’.format(11)
‘{?}’.format(11)
‘{:x}’.format(11)
‘{:#x}’.format(11)
‘{:#X}’.format(11)
1011
11
13
b
0xb
0XB 进制
list
[1,2,3]可以使用sum,方法直接求和
[‘1’.‘2’,‘3’]不可以使用sum list只能由int类型