python全栈闯关--6-小知识点总结

1、python2和python3区别常用整理

# python2print ‘abc‘# 返回一个列表range()# 返回一个生成器值,不是list。每次只生成一个值,避免暂用很大的内存xrange() # 生成器# 输入raw_input(...)

# python3print(‘abc‘)# 返回一个迭代值,需要生成列表就需要使用list(range(...))range()input(...)

2、复制 == 比较值是否相等 is 比较,比较的是内存地址 id(内容)

>>> li1 = [1,2,3]
>>> li2 = li1
>>> pring(id(li1),id(li2))
>>> print(id(li1),id(li2))
2472533256584 2472533256584

# 数字和字符串存在小数池,小数池范围内,使用的是同一个内存地址
# 数字  -5~256
>>> i1 = 6
>>> i2 = 6
>>> print(id(i1),id(i2))
140717920019440 140717920019440
>>> i1 = 300
>>> i2 = 300
>>> print(id(i1),id(i2))
2472536947344 2472536947248
>>> i1 = 256
>>> i2 = 256
>>> print(id(i1),id(i2))
140717920027440 140717920027440
>>> i2 = 257
>>> i1 = 257
>>> print(id(i1),id(i2))
2472536947344 2472536947248
>>> i1 = -5
>>> i2 = -5
>>> print(id(i1),id(i2))
140717920019088 140717920019088
>>> i2 = -6
>>> i1 = -6
>>> print(id(i1),id(i2))
2472536947344 2472536947248
# 字符串: 1、不能有特殊字符
#         2、s*20 还是同一个地址,s*21以后都是两个地址(有待考证,试验时,* 1以上,都变化了。估计是版本不同导致)
>>> s1 = ‘121212asdasdasdadasdasdasdadadqrjladksfjaiodfu‘
>>> s2 = ‘121212asdasdasdadasdasdasdadadqrjladksfjaiodfu‘
>>> print(id(s1),id(s2))
2472537146064 2472537146064
>>> s1 = ‘[email protected]‘
>>> s2 = ‘[email protected]‘
>>> print(id(s1),id(s2))
2472537146160 2472537146064

# list、dict、tuple、set
# list
>>> l1 = [1,]
>>> l2 = [1,]
>>> print(l1 is l2)
False
>>>
>>> l2 = l1
>>> print(l1 is l2)
True

3、字符集编码

ascii            A : 00000010  8位 一个字节

unicode     A : 00000000 00000001 00000010 00000100 32位  四个字节            中:00000000 00000001 00000010 00000110 32位  四个字节

utf-8      A :  00100000 8位 一个字节          中 :  00000001 00000010 00000110 24位 三个字节

gbk        A : 00000110  8位 一个字节         中  : 00000010 00000110 16位 两个字节1,各个编码之间的二进制,是不能互相识别的,会产生乱码。2,文件的储存,传输,不能是unicode(只能是utf-8 utf-16 gbk,gb2312,asciid等)

py3:    str 在内存中是用unicode编码。        bytes类型        对于英文:             str  :表现形式:s = ‘beer‘                    编码方式: unicode            bytes :表现形式:s = b‘beer‘                    编码方式: utf-8 gbk。。。。

        对于中文:             str  :表现形式:s = ‘熊大‘                    编码方式: unicode            bytes :表现形式:s = b‘\xe9\x9b\x84\xe5\xa4\xa7‘                    编码方式: utf-8 gbk。。。。
>>> s = ‘beer‘
>>> s1 = b‘beer‘
>>> print(s,type(s))
beer <class ‘str‘>
>>> print(s1,type(s1))
b‘beer‘ <class ‘bytes‘>
>>>
>>>
>>> s = ‘雄大‘
>>> print(s,type(s)
      )
雄大 <class ‘str‘>
>>> s1 = b‘雄大‘
SyntaxError: bytes can only contain ASCII literal characters.
>>>
>>>
>>> s1 = s.encode(‘utf-8‘)
>>> print(s1)
b‘\xe9\x9b\x84\xe5\xa4\xa7‘
>>> s1 = s.encode(‘gbk‘)
>>> print(s1)
b‘\xd0\xdb\xb4\xf3‘

原文地址:https://www.cnblogs.com/zxw-xxcsl/p/11577576.html

时间: 2024-10-08 10:05:18

python全栈闯关--6-小知识点总结的相关文章

python全栈闯关--7-基础数据类型汇总、集合、深浅拷贝

1.str s = ' ' print(s.isspace()) # 如果字符串全是空格返回True 2.在循环一个列表时,最好不要删除列表中的元素 删除列表元素,得到的结果,往往不是预期的 例子1: lis = [11, 22, 33, 44, 55] # 循环开始后,按照索引递增,删除了前面的值,不会处理列表索引的位置 # 虽然没有报错,但是不是想要的结果 for i in lis: print("目前删除元素值为:%d " % i) print("值删除前:"

python全栈闯关--XX-细节总结汇总

1.The start value of slice is less than then end value,and the step is negative print("if the start value less then the end value and the step is negative ! " "No error will be reported and empty will be returned, ") for i in range(0,

python全栈闯关--5-字典

1.数据类型的划分 数据类型分为:可变数据类型,不可变数据类型 不可变数据类型:元祖.bool.int.str                    可哈希 可变数据类型:list,dic,set                                   不可哈希 2.dic的数据结构 dic key:必须为可哈希数据类型,不可以变数据类型 value:任意数据类型 dic 优点:二分查找,存储大量关系型数据 dic特点:3.6以前无序,3.6后有序 3.dic的增.删.改.查 定义

python全栈闯关--10-2、函数的嵌套和作用域

1.全局作用域函数嵌套 def three_max(a, b, c): t = two_max(a, b) # 函数嵌套调用two_max return t if t > c else c def two_max(a, b): return a if a > b else b print(three_max(1, 2, 3)) 程序执行,按照从下往下的顺序,把变量.函数名加入到命名空间,如果还未加入到命名空间,就调用了函数,将会报错. 如上程序,如果把three_max的调用,交换到two_m

python全栈闯关--11-装饰器初识

1.装饰器形成 当不想修改原函数,未函数前后添加功能时,就可以使用装饰器,在函数前后增加功能. 装饰器的初始形成 import time def timer(f): def inner(): print("我是装饰器,我来装饰了!!!") start = time.time() f() end = time.time() print(start - end) return inner # 返回inner由于f实现了闭包,直接调用了程序 def func(): time.sleep(1)

python全栈闯关--12-装饰器进阶

带参数的装饰器 装饰器使用过程中,如果需要一个参数来判断装饰器是否启用时,就需要传入一个参数,来判断是否启用. 目前装饰器,传输函数名给外部函数做参数,内部函数参数用做调用函数的参数,无法实现参数的传递. 因此,需要在加一层嵌套,来实现参数的传入,装饰器最多三层!!! import time from functools import wraps FLAG = True def out_warpper(flag): def warpper(f): @wraps(f) def w_in(): if

python全栈闯关--15-内置函数

1.作用域相关 print(locals()) print(globals()) # global 关键字,局部变量可以修改全局变量 # nonlocal 关键字,局部函数中,可以修改上一层函数中的变量 2.迭代器相关 next(迭代器) 等价与迭代器.__next__() 3.内置属相查看 dir 查看函数拥有的方法 4.帮忙 help 返回函数的帮助信息 5.程序调度相关 callable 判断函数是否可以执行,如果是函数返回true,是变量,放回false 6.文件操作相关 open 打开

Python全栈问答小技巧_2

Python全栈测试题(二) 作者:尹正杰 声明:答案如有偏差,欢迎指正! 1. 计算100-300之间所有能被3和7整除的所有数之和

python全栈和python自动化课程的区别在哪?

老男孩算是国内组早的做python培训的机构了,下面小编对于python自动化课程及全栈课程做了一个总结,希望能帮到你们: python全栈开发: 适合人群:应届本科生,专科,及零基础学员学习基础:0基础上课形式:脱产5个月,周一至周五上课课程内容:linux基础知识,python基础知识,网络编程,数据库应用,web开发,算法设计模式项目实战:博客系统开发,CRM系统开发,CMDB开发,主机开发管理,爬虫开发,金融量化交易项目开发未来发展方向:python全栈开发工程师就业方向:python爬