python零碎知识

下面是我在学习玩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]]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值