下面是我在学习玩python基础之后,在运用python做题时,遇到忘记或当初没弄懂的内容,后做的知识点总结(持续更新中!!!)
1.python语句中的 end=’'是什么意思
print默认是打印一行,结尾加换行,end传递一个空字符串,表示这个语句没结束。“end=”作为print()中的一个参数,会使该函数关闭“在输出中自动包含换行”的默认行为。
2.集合运算
A={1,2,3,4,5}
B={2,4,6,8,10}
C={1,3,5,7,9}
(1)交集(intersection()或使用 & 算子)
A.intersection(B,c)
A & B & C
#三者交集为空集,输出结果为set{}
#注:python中’{}"表示的是空字典, 空集合用set()表示
(2)并集(union()或使用| 算子)
A.union(B,C)
A | B | C
#注:union( )方法的参数可以是以是iteralbe
如:A.union([3,4,56,6]))
(3)差集(difference()或使用 ‘-’)
A.difference(B,C)
A.difference(B)
A - B
(4)对称差集(将两个列表都有的部分去掉,symmetric_difference())
A.symmetric_difference(B)
(5)判断是否为子集(issuperset())
A.issuperset(B)
#返回的是bool类型的值
(6)一些集合 中常用的方法
增加元素:
A.add(999) #添加道最后一位删除元素:
A.pop() #pop()在集合中使用不能携带参数,功能是删除并弹出集合中第一个元素 !!!(这里和列表有明显差别)
A.discard() #discard()方法是删除指定的元素(参数是具体的元素值且必须携带参数),但discard是不返回删除的元素值
A.remove() #和discard()方法一样
3.if name == ‘main’
一个python文件通常有两种使用方法,第一是作为脚本直接执行,第二是 import 到其他的 python 脚本中被调用(模块重用)执行。因此if name == ‘main’: 的作用就是控制这两种情况执行代码的过程,在if name == ‘main’: 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而 import 到其他脚本中是不会被执行的
4.字符与ASCII码的相互转换:
a=‘字符’
b=‘ASCII码’
字符转ascll: ord(a)
ascll转字符: chr(b)
#注:
• ord()方法将字符转换成ASCLL码,并且只能传入一个长度的字符作为参数。
• chr()方法将十进制的ASCLL码转换成对应的字符,并且只能传入十进制的整数。
5.python中的join函数的用法
(1)join()函数
语法: ‘sep’.join(seq)
参数说明
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典
上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
返回值:返回一个以分隔符sep连接各个元素后生成的字符串
(2)os.path.join()函数
语法: os.path.join(path1[,path2[,…]])
返回值:将多个路径组合后返回
注:第一个绝对路径之前的参数将被忽略
6.python中format函数
格式化字符串的函数 str.format(),它增强了字符串格式化的功能。、
基本语法是通过 {} 和 : 来代替以前的 % 。
format 函数可以接受不限个参数,位置可以不按顺序。
字符串的参数使用{NUM}进行表示,0, 表示第一个参数,1, 表示第二个参数, 以后顺次递加;
使用":", 指定代表元素需要的操作, 如":.3"小数点三位, ":8"占8个字符空间等;。
7.python中的replace()函数的用法
补充:如果字符串中不存在str1,则此替换无效
8.sys标准库基本用法
(待续)
9.python中eval()的用法
首先讲一下我自己的理解,我曾经看到过
eval()能把字符串列表、字符串元组、字符串字典转化为列表、元组、字典
…
下面是在博客上看到的新理解
原文链接
…
函数原型:
eval(expression, globals=None, locals=None)
参数:
expression:这个参数是一个字符串,python会使用globals字典和locals字典作为全局和局部的命名空间,将expression当做一个python表达式(从技术上讲,是一个条件列表)进行解析和计算。
globals:这个参数管控的是一个全局的命名空间,也就是我们在计算表达式的时候可以使用全局的命名空间中的函数,如果这个参数被提供了,并且没有提供自定义的__builtins__,那么会将当前环境中的__builtins__拷贝到自己提供的globals里,然后才会进行计算。关于__builtins__,它是python的内建模块,也就是python自带的模块,不需要我们import就可以使用的,例如我们平时使用的int、str、abs等都在这个模块中。关于它的说明可以参照这篇文章:点击打开链接。如果globals没有被提供,则使用python的全局命名空间。
locals:这个参数管控的是一个局部的命名空间,和globals类似,不过当它和globals中有重复的部分时,locals里的定义会覆盖掉globals中的,也就是当globals和locals中有冲突的部分时,locals说了算,它有决定权,以它的为准。如果locals没有被 提供的话,则默认为globals。
eval函数也可以被用来执行任意的代码对象(如那些由compile()创建的对象)。在这种情况下,expression参数是一个代码对象而不是一个字符串。如果代码对象已经被‘exec‘编译为模式参数,eavl()的返回值是None。
下面举一些例子进行讲解:
三个参数的使用:
1、在前两个参数省略的情况下,eval在当前的作用域执行:
a=10;
print(eval("a+1"))
执行结果为:11
在这种情况下,后两个参数省略了,所以eval中的a是前面的10。对于eval,它会将第一个expression字符串参数的引号去掉,然后对引号中的式子进行解析和计算。
2、在globals指定的情况下:
a=10;
g={'a':4}
print(eval("a+1",g))
执行结果为:5
这里面可能有点绕啊,初学者得理理清楚。在这次的代码中,我们在 eval中提供了globals参数,这时候eval的作用域就是g指定的这个字典了,也就是外面的a=10被屏蔽掉了,eval是看不见的,所以使用了a为4的值。
3、在 locals指定的情况下 :
a=10
b=20
c=30
g={'a':6,'b':8}
t={'b':100,'c':10}
print(eval('a+b+c',g,t))
执行的结果为:116
10.python二维列表排序
可以使用lambda表达式实现二维列表排序
alist = [[2,3],[4,2],[1,4],[1,2]]
//若是根据二维列表中列表元素的第二个元素的大小升序排列
sorted(alist,key=lambda x:x[1])
//输出为[[4, 2], [1, 2], [2, 3], [1, 4]]
//若是主要根据列表中列表的第二个元素,次要根据第一个元素的大小进行升序排列
sorted(alist,key=lambda x:[x[1],x[0]])
//输出为[[1, 2], [4, 2], [2, 3], [1, 4]]