#11.编写程序,输入一个自然数,输出它的二进制、八进制、十六进制表示形式
Num = input("请输入任性自然数:")
Num = eval(Num)
print("二进制:",bin(Num))
print("八进制:",oct(Num))
print("十六进制:",hex(Num))
#12.简述迭代器和生成器的区别
‘‘‘
迭代器:类中有next和iter方法,可以使用for循环(例:字符串(string),列表(list),字典(dict),元组(tuple))
生成器:能创建迭代器,只需要在返回的时候将return换成yield就是生成器
区别:生成器能做到迭代器所能做的所有事,能节约内存且更加简洁,生成器终结时,能自动抛出StopIteration异常
‘‘‘
#13.什么是线程安全
‘‘‘
在多线程的环境下,保证多个线程同时执行且运行正确,保证对于共享数据可以由多个线程存取,但同一时刻只能有一个线程进行存取.
多线程解决资源竞争的方法是加锁,加锁能保证存取操作的唯一性
‘‘‘
#14.你所遵循的代码规范是什么?举例说明
‘‘‘
变量:
1.常量:大写加下划线ABC_DEF
2.私有变量:变量名前面加一个前导的下划线_private_value
3.内置变量:小写,前后各加2个下划线__class__
函数和方法
1.函数名写法:小写和下划线(当然还有小驼峰,大驼峰等)
2.私有方法:小写和前导一个下划线(跟私有变量类似)
3.特殊方法:小写,前后各加2个下划线__repe__
代码量:
1.一行不要超过79列(不要超过满屏显示的列数)
2.一个函数不要超过30行代码
3.一个类不要超过200行代码,不要超过10个方法.
4.一个模块不要超过500行
‘‘‘
#15.python中简单的实现列表去重
‘‘‘
a = [1,2,3,1,3,4]
a = set(a)
a = list(a)
print(a)
‘‘‘
#16.python中yield的用法
‘‘‘
yield简单说就是一个生成器,它能记住上次返回函数体的位置,
‘‘‘
#17.什么是面向对象编程
‘‘‘
将相近相似的逻辑和操作、应用数据、状态以类的形式描述出来,以对象实例在软件系统中复用,以达到提高开发效率的作用
‘‘‘
#18.简述GIL锁对python多线程的影响?
‘‘‘
GIL(Global interpreter Lock)全局解释器锁.设计来做线程安全的.每个CPU在同一时间只能执行一个线程
1.获取GIL
2.执行代码直到sleep或者python虚拟机将其挂起
3.释放GIL
‘‘‘
#19.Ajax是什么,如何使用AJAX
‘‘‘
ajax(异步的javascript和Xml)能够刷新局部网页数据而不是重新加载整个网页
‘‘‘
#20.post和get的区别
‘‘‘
1.GET请求,请求数据会附加到URL之后,以?分割
post请求:post请求,会把数据放在http请求包中
get会将数据暴露在地址中,post不会
2.传输数据大小
get请求会受url长度的制约
post不是url传值,理论上不收限制,但服务器会规定post提交数据的大小
3.安全性
post安全性比get高.
‘‘‘