知识点总结

一、序列

操作符

x in s 如果x是列表s的元素,返回True,否则Falses + t 连接两个序列s和ts*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元素为xls[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位置家加入元素xls.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替换xstr.center(width,x) 将str根据宽度width居中,x填充左右部分str.strip(x) 删除str首尾的xx.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 = 0while 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 = 0for i in range(1,101): x+=iprint(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道例题的解析