python绘制荷花_python题
1、⼀⾏代码实现1--100之和
利⽤sum()函数求和
sum(range(1,101)
2、如何在⼀个函数内部修改全局变量
利⽤global 修改全局变量
3、列出5个python标准库
Python 有许多使⽤了 POSIX 标准 API 和标准 C 语⾔库的模块. 它们为底层操作系统提供了平台独⽴的接⼝.这类的模块包括: 提供⽂件和进程处理功能的 os 模块; 提供平台独⽴的⽂件名处理(分拆⽬录名, ⽂件名, 后缀等)的 os.path 模块; 以及时间⽇期处理相关
的 time/datetime 模块.
类型⽀持模块:标准库⾥有许多⽤于⽀持内建类型操作的库. string 模块实现了常⽤的字符串处理. math
模块提供了数学计算操作和常量(pi, e都属于这类常量),cmath 模块为复数提供了和 math ⼀样的功能.
正则表达式:re 模块为 Python 提供了正则表达式⽀持. 正则表达式是⽤于匹配字符串或特定⼦字符串的有特定语法的字符串模式.
语⾔⽀持模块:sys 模块可以让你访问解释器相关参数,⽐如模块搜索路径,解释器版本号等. operator 模块提供了和内建操作符作⽤相同的函数.copy 模块允许你复制对象, Python 2.0 新加⼊的 gc 模块提供了对垃圾收集的相关控制功能.
⽹络相关的库:
通⽤
urllib -⽹络库(stdlib)。
requests -⽹络库。
grab – ⽹络库(基于pycurl)。
pycurl – ⽹络库(绑定libcurl)。
urllib3 – Python HTTP库,安全连接池、⽀持⽂件post、可⽤性⾼。
httplib2 – ⽹络库。
RoboBrowser – ⼀个简单的、极具Python风格的Python库,⽆需独⽴的浏览器即可浏览⽹页。
MechanicalSoup -⼀个与⽹站⾃动交互Python库。
mechanize -有状态、可编程的Web浏览库。
socket – 底层⽹络接⼝(stdlib)。
Unirest for Python – Unirest是⼀套可⽤于多种语⾔的轻量级的HTTP库。
hyper – Python的HTTP/2客户端。
PySocks – SocksiPy更新并积极维护的版本,包括错误修复和⼀些其他的特征。作为socket模块的直接替换。
异步
treq – 类似于requests的API(基于twisted)。
aiohttp – asyncio的HTTP客户端/服务器(PEP-3156)。
4、字典如何删除键和合并两个字典
删除键:del dict[key]  #dict没有remove()⽅法
删除数组元素:array=[1,2,3,4,5]; ve(3); print(array); array=[1,2,4,5]
array=[1,2,3,4,5];del a[2]; print(array); array=[1,2,4,5] del 删除索引是2的值
dict1={"A":5,"B":'2',"C":'3'}
dict2={"A":9,"E":'2',"F":'3'}
合并字典:
⽅法⼀:
dict3={**dict1,**dict2}
⽅法⼆:
dict3=dict{list(dict1.item1)+list(dict2.items)}
⽅法三:
dict2.update(dict1)
拓展1:type()和dir()区别
A=dict1.items()
print(type(A))
type()就是⼀个最实⽤⼜简单的查看数据类型或者⽗类的⽅法,。返回结果:
print(dir([A]))dir([obj]):调⽤这个⽅法将返回包含obj⼤多数属性名的列表返回结果['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__',
'__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce
__', '__reduce_ex__', '__repr__',
python正则表达式不包含'__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count',
'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
上⾯的⽅法,dict2都会覆盖dict1⾥的内容,所以A=9
(1) 深复制
即将被复制对象完全再复制⼀遍作为独⽴的新个体单独存在。所以改变原有被复制对象不会对已经复制出来的新对象产⽣影响。
(2) 赋值
并不会产⽣⼀个独⽴的对象单独存在,他只是将原有的数据块打上⼀个新标签,所以当其中⼀个标签被改变的时候,数据块就会发⽣变化,另⼀个标签也会随之改变。
(3) ⽽浅复制要分两种情况进⾏讨论:
1)当浅复制的值是不可变对象(数值,字符串,元组)时和“等于赋值”的情况⼀样,对象的id值与浅复制原来的值相同。
2)当浅复制的值是可变对象(列表和元组)时会产⽣⼀个“不是那么独⽴的对象”存在。有两种情况:
第⼀种情况:复制的 对象中⽆ 复杂 ⼦对象,原来值的改变并不会影响浅复制的值,同时浅复制的值改变也并不会影响原来的值。原来值的id值与浅复制原来的值不同。
第⼆种情况:复制的对象中有 复杂 ⼦对象 (例如列表中的⼀个⼦元素是⼀个列表),如果不改变其中复杂⼦对象,浅复制的值改变并不会影响原来的值。 但是改变原来的值 中的复杂⼦对象的值  会影响浅复制的值。
对于简单的 object,例如不可变对象(数值,字符串,元组),⽤shallow copy和deep copy没区别
复杂的 object, 如list中套着list的情况,shallow copy中的 ⼦list,并未从原object真的「独⽴」出来。也就是说,如果你改变原object 的⼦list中的⼀个元素,你的copy就会跟着⼀起变。这跟我们直觉上对「复制」的理解不同。
5、谈下python的GIL
GIL 是python的全局解释器锁,同⼀进程中假如有多个线程运⾏,⼀个线程在运⾏python程序的时候会霸占python解释器(加了⼀把锁即GIL),使该进程内的其他线程⽆法运⾏,等该线程运⾏完后其他线程才能运⾏。如果线程运⾏过程中遇到耗时操作,则解释器锁解开,使其他线程运⾏。所以在多线程中,线程的运⾏仍是有先后顺序的,并不是同时进⾏。
多进程中因为每个进程都能被系统分配资源,相当于每个进程有了⼀个python解释器,所以多进程可以实现多个进程的同时运⾏,缺点是进程系统资源开销⼤ 。
如何避免受到GIL的影响:multiprocess库的出现很⼤程度上是为了弥补thread库因为GIL⽽低效的缺陷。
6、python实现列表去重的⽅法
array=[1,2,4,4,1,2,3]
⽅法⼀:
a=list(set(array))
b=set(array)print("a="+str(a))print("b="+str(b))"""缺点是:使⽤set⽅法⽆法保证去重后的顺序。
a=[1, 2, 3, 4]
b={1, 2, 3, 4}"""⽅法⼆:
array2=[]for i inarray:if i not inarray2:
array2.append(i)print(array2)
⽅法三:importitertools
array=[1,2,3,4,1,2,3]
array.sort()
upby(array)for k, g init:print(k)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。