知识点总结
一、序列
操作符
x in s 如果x是列表s的元素,返回True,否则False
s + t 连接两个序列s和t
s*n或者n*s 将序列s复制n次
s[i] 返回s中第i元素
s[i:j]或s[i:j: k] 切片,返回序列s中第i到j-1以k为步长的元素子序列
函数
len(s) 返回序列的长度
min(s) 返回序列的最小值
max(s) 返回序列的最大值
s.index或s.Index(x,i,j) 索引从i到j-1中第一次出现x的位置
s.count(x) 返回x在s中出现的次数
ls[i] = x 替换列表中第i元素为x
ls[i:j:k] =lt 用lt代替从i到j-1步长为k的元素
ls += lt 把lt元素加入ls中
ls*= n 把ls的元素复制n次
二、列表
函数
ls.append(x) 把x加入列表ls中
ls.clear() 删除ls中所有元素
ls.copy() 生成一个新列表并赋予ls的元素
ls.insert(i.x) 在第i位置家加入元素x
ls.pop(i) 将列表ls中第i元素去除并删除其元素
ls.remove(x) 将列表ls出现的第一个元素x删除
ls.reverse() 将列表ls的元素反转
三、元组
与列表类似,但是内容不可添加或者删除,用()表示。
四、字符串
str.lower()
或者str.upper() 把元素全部大写\小写
str.split(x) 用x把str的元素分隔开
str.count(x) 返回x在str中出现的次数
str.replace(x,y) 用y替换x
str.center(width,x) 将str根据宽度width居中,x填充左右部分
str.strip(x) 删除str首尾的x
x.join(str) 在除了最后1个元素的其他元素后增加一个str
五、15道例题
1、用阶梯形状打印出九九乘法表
解题思想
九九乘法表需要把两个变量相乘,可考虑用for if循环
由于每次print都会自带一个换行符,所以可以考虑用end去除换行符
代码
for i in range(1,4):
for j in range(1,i+1):
print(i,‘*‘,j,‘=‘,i*j, sep=‘‘, end=‘ ‘)
print(‘‘)
2、打印字符串"甲乙丙丁午己庚辛壬癸"的所有字符,要求每个字符占据一行
解题思想
这样依次打印字符串,考虑用 for循环。
代码
for c in "甲乙丙丁午己庚辛壬癸":
print(c)
3、循环十次在同一行内打印10个’X’
解题思想
考虑while循环,同一行用end函数换掉末尾的换行符
代码
i = 0
while i<10:
print(‘*‘, end=‘‘)
i += 1
4、计算绩点
若分数小于60,则GPA=0
若分数score>=60, 则 GPA=(score-50)/10
解题思想
需要分情况,所以可用if函数
代码
def GPA(score):
GPA = 0
if score>=60:
GPA = (score-50)/10
return GPA
输入分数即可得到GPA
5、计算不大于100的所有自然数的和
解题思路
for循环里面加入叠加的变量
代码
x = 0
for i in range(1,101):
x+=i
print(x)
6、将字符串‘pythonlil’变成大写形式
解题思想
可用upper实现
代码
x = ‘pythonlil‘.upper()
print(x)
7、用单个for,循环十次在同一行内打印十个数字’0 1 2 3 4 5 6 7 8 9 ’
字符之间用单个空格分隔
解题思想
十个数字可以用range函数实现,通过for 循环解题
代码
for i in range(10):
print(i, end=‘ ‘)
print(‘‘)
8、循环十次在同一行内打印10个’=’
解题思想
看到循环应该反应用for或者while来解决
代码
for i in range(10):
print(‘=‘, end=‘‘)
print(‘‘)
9、打印下列图案:12个等号,每行4个
解题思想
打印重复等号用for或者while实现,换行可以用if实现
代码
for i in range(1,13):
print(‘=‘, end=‘‘)
if(i%4==0):
print(‘\n‘, end=‘‘)
10、用双层for循环打印九九乘法表
解题思路
限定用两个for 一个for控制第一个变量 另一个for控制第二个变量 换行用end函数实现
代码
for i in range(1,4):
for j in range(1,i+1):
print(i,‘*‘,j,‘=‘,i*j, sep=‘‘, end=‘ ‘)
print(‘‘)
11、异常处理
假设在一大堆日期数据中出现多个错误日期2019/2/29 除去这些不正确的行
解题思想
需要锁定29这个不存在二月的号数,需要用split分隔
代码(设data是日期列表)
for line in data1:
linelist = line.split(‘,‘)
linelist1 = linelist[1].split(‘ ‘)
linelist2 = linelist1[0].split(‘-‘)
linelist3 = list(linelist2)
if linelist3[1] == ‘02‘ and linelist3[2] == ‘29‘
del line
12、数据分类
假设有包含1到12月的日期列表linelist 将每个月的日期分别放在不同的csv文件里面
解题思想
需要锁定月份 所以要把月份分隔开来作为分类依据
代码(设data是日期列表)
for line in data:
linelist = line.split(‘,‘)
linelist1 = linelist[1].split(‘ ‘)
linelist2 = linelist1[0].split(‘-‘)
if linelist2[1]==‘01‘:
with open(‘mon1.csv‘,‘a+‘)as f1:
f1.write(line)
elif linelist2[1]==‘02‘:
with open(‘mon2.csv‘,‘a+‘)as f2:
f2.write(line)
elif linelist2[1]==‘03‘:
with open(‘mon3.csv‘,‘a+‘)as f3:
f3.write(line)
elif linelist2[1]==‘04‘:
with open(‘mon4.csv‘,‘a+‘)as f4:
f4.write(line)
elif linelist2[1]==‘05‘:
with open(‘mon5.csv‘,‘a+‘)as f5:
f5.write(line)
elif linelist2[1]==‘06‘:
with open(‘mon6.csv‘,‘a+‘)as f6:
f6.write(line)
elif linelist2[1]==‘07‘:
with open(‘mon7.csv‘,‘a+‘)as f7:
f7.write(line)
elif linelist2[1]==‘08‘:
with open(‘mon8.csv‘,‘a+‘)as f8:
f8.write(line)
13、比较[1,3,6,8,5,2,6]的大小并按照从大到小排序
解题思想
sort函数可以按照从小到大的顺序排序,题目要的是从大到小,用reverse = True可实现降序
代码
[1,3,6,8,5,2,6].sort(reverse=True)
14、输入一个阿拉伯整数,四位数字一组,间隔以逗号
解题思想
需要判断什么时候达到四位并进行分隔,定义一个函数 n即为输入的整数
代码
def wan(n, sep=‘,‘):
n = str(n)
L = len(n)
lst = []
b = L%4
if b>0:
lst = [n[:b],]
for i in range(b,L,4):
lst.append(n[i:i+4])
n = sep.join(lst)
return n
使用print(wan(n))就可以得到结果
15、 创建一个1.txt文件 输入’静夜思‘
解题思想
创建py文件可以直接用with open函数 输入文字用write()实现
代码
with open(‘1.txt‘,‘w+‘) as f:
f.write(‘静夜思‘)
以上就是知识点的总结和15道例题的解析
原文地址:https://blog.51cto.com/14646124/2462310