一、 range 数值列表生成器
常与for循环搭配使用,产生一个数值列表生成器,数值范围由range参数控制,生成器被调用时才显示具体数值内容,节省内存空间。
# python 3.* 以后,xrange取消
# range直接生成一个生成器,调用的时候才显示具体值
a = range(0,5)
print(a,type(a)) # range(0, 5) <class 'range'>
# 调用时显示具体值
for i in range(0,5):
print(i,end=' ') # 0 1 2 3 4
print()
# 设置跳步
for i in range(0,5,2):
print(i,end=' ') # 0 2 4
print()
# 默认从0开始
for i in range(5):
print(i,end=' ') # 0 1 2 3 4
print()
# 开始值比结束值大,无返回值
for i in range(5,2):
print(i) # None
View Code
二、 bytearray 生成bytes序列
函数返回一个bytearray对象,它是一个可变bytes序列,序列中的元素范围是[0,255],调用时显示对象内具体值。
# 如果参数为可迭代类型,则元素必须是0~255的整数,返回一个字节数组。
# 如果参数为整数,则返回一个长度为参数的初始化数组,元素全部为:\x00。
# 如果参数为空,则返回一个空字节数组:b''。
# 如果参数是str,按指定的编码方式,将字符串转换成字节序列。
# 生成一个bytesarray对象,调用时显示具体数值
b = bytearray([1,4,5])
print(b,type(b)) # bytearray(b'\x01\x04\x05') <class 'bytearray'>
for i in b:
print(i,end=' ')
print() # 1 4 5
# 如果参数为可迭代类型,则元素必须是0~255的整数,返回一个字节数组
print(bytearray(range(1,5))) # bytearray(b'\x01\x02\x03\x04')
# 如果参数为整数,则返回一个长度为参数的初始化数组
print(bytearray(5)) # bytearray(b'\x00\x00\x00\x00\x00')
# 如果参数为空,则返回一个空字节数组
print(bytearray()) # bytearray(b'')
# 如果参数是str,按指定的编码方式,将字符串转换成字节序列
print(bytearray('name',encoding='utf_8')) # bytearray(b'name')
# bytes序列,可以通过decode方法,转换成str
s_bytes = bytearray('4358',encoding='utf-8')
print(s_bytes,type(s_bytes)) # bytearray(b'4358') <class 'bytearray'>
c = s_bytes.decode()
print(c,type(c)) # 4358 <class 'str'>
View Code
bytes序列,可以通过decode方法,转换成str。
三、 chr 与 ord
chr 由ASCII码值取ASCII字符,参数int范围[0,255],返回str。
# chr返回ASCII码值对应的字符,参数范围[0,255]。
print(chr(0),type(chr(0))) # <class 'str'>
print(chr(255),type(chr(255))) # ÿ <class 'str'>
# ASCII中,48~57,是数值0~9。
print(chr(48),type(chr(48))) # 0 <class 'str'>
print(chr(57),type(chr(57))) # 9 <class 'str'>
# ASCII中,65~90,是大写英文字母。
print(chr(65),type(chr(65))) # A <class 'str'>
print(chr(90),type(chr(90))) # Z <class 'str'>
# ASCII中,97~122,是小写英文字母。
print(chr(97),type(chr(97))) # a <class 'str'>
print(chr(122),type(chr(122))) # z <class 'str'>
View Code
ord 与chr正相反,由ASCII字符取ASCII码值,参数str,返回[0,255]内int。
# ord返回ASCII码字符对应的数值,与chr正相反。
print(ord('0'),type(ord('0'))) # 48 <class 'int'>
print(ord('9'),type(ord('9'))) # 57 <class 'int'>
print(ord('A'),type(ord('A'))) # 65 <class 'int'>
print(ord('Z'),type(ord('Z'))) # 90 <class 'int'>
print(ord('a'),type(ord('a'))) # 97 <class 'int'>
print(ord('z'),type(ord('z'))) # 122 <class 'int'>
View Code
ASCII中,48~57是数值0~9;65~90是大写英文字母; 97~122是小写英文字母。
四、查看对象、方法
(一)
不带参数时,显示当前范围的变量、方法和类名列表;带参数时,显示参数的属性、方法名列表。
# 不带参数时,显示当前范围的变量、方法和类名列表。
a = 1243
print(dir())
'''['__builtins__', '__cached__', '__doc__', '__file__', '__loader__',
'__name__', '__package__', '__spec__', 'a']'''
# 带参数时,显示参数的属性、方法名列表。
# import time
# print(dir(time))
'''['_STRUCT_TM_ITEMS', '__doc__', '__loader__', '__name__', '__package__', '__spec__',
'altzone', 'asctime', 'clock', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 'localtime',
'mktime', 'monotonic', 'perf_counter', 'process_time', 'sleep', 'strftime', 'strptime',
'struct_time', 'time', 'timezone', 'tzname']'''
View Code
help() 查看全部方法名及内容
根据所带参数不同,可以显示模块的帮助文档、方法说明、方法操作方法等信息。
import time
help(time) # 显示全部time模块的帮助内容
help(abs) # 显示abs方法的简单说明
'''abs(x, /)
Return the absolute value of the argument.'''
a = [1,2,3]
help(a) # 显示list的操作方法
help(a.append) # 显示append方法的简单说明
'''append(...) method of builtins.list instance
L.append(object) -> None -- append object to end
'''
View Code
五、format 字符串格式化
使用{num}占位,num可以默认按顺序匹配,也可用数字指定:0表示第一个数、1表示第二个数,一个参数可以使用多次。
name = 'lucy'
age = 5
# format格式化字符串
s = '{} is young!'.format(age)
print(s) # 5 is young!
# 字符串内括号无参数,默认按顺序匹配
print('{} is {} years old!'.format(name,age))
# lucy is 5 years old!
# 可以接受不限个参数,位置可以不按顺序,可以不用或者用多次
# 字符串参数使用{num}表示,0表示第1个参数,1表示第2个参数指定参数
print('{0}:{1} is {0} years old!'.format(age,name))
# l5:lucy is 5 years old!
# 字符串内大括号,单用时作为占位符,两遍{{}}进行转义
print('{{}}'.format()) # {}
print('{}'.format(1)) # 1
View Code
(二)format函数使用格式限定符(:),对元素进行格式控制:
^、<、>分别表示居中、靠右、靠左,后面用数字表示宽度。
# 填充与对齐
# ^、<、>分别表示居中、靠右、靠左,后面用数字表示宽度
print('{:^8}'.format('mid')) # mid
print('{:>8}'.format('rgt')) # rgt
print('{:<8}'.format('lef')) # lef
# 默认空格填充,:后面可以带填充字符,但只能是一个字符
print('{:0^8}'.format('mid')) # 00mid000
print('{:*>8}'.format('rgt')) # *****rgt
print('{:$<8}'.format('lef')) # lef$$$$$
View Code
.d表示整体位数,.df表示小数点后位数。
# float类型精度
# .d表示整体精度,.df表示小数点精度
print('{0}-->{0:.5}'.format(3.1415926)) # 3.1415926-->3.1416
print('{0}-->{0:.5f}'.format(3.1415926)) # 3.1415926-->3.14159
print('{0}-->{0:.5}'.format(26.888888)) # 26.888888-->26.889
print('{0}-->{0:.5f}'.format(26.888888)) # 26.888888-->26.88889
View Code
b,d,o,x分别表示二进制、十进制、八进制、十六进制。
# 使用b,d,o,x控制进制
s = '十进制数{0:d}:十六进制是{0:x}、八进制是{0:o}、二进制是{0:b}'.format(17)
print(s) # 十进制数17:十六进制是11、八进制是21、二进制是10001
View Code
逗号,自动分隔;使用科学技术法e表示。
# 使用逗号,大数值自动分隔
print('{:,}'.format(873598475984375983)) # 873,598,475,984,375,983
# 用e表示科学计数法
print('{:.4e}'.format(87483947389)) # 8.7484e+10
View Code
%将小数按百分数显示,注意:.2%表示百分数的小数取两位,.2f%写法会报错。
# %将小数按百分数形式显示,注意:.2%表示百分数的小数取两位
print('{:.2%}'.format(0.25)) # 25.00%
View Code
id 获得对象的内存地址
a is b 与 id(a)==id(b)
a = 1
b = 1
c = b
print(a is c) # True
print(id(a),id(b),id(c)) # 1664741168 1664741168 1664741168
View Code
七、 globals 和 locals
(一) globals() 获得全部全局变量
(二) locals() 获得全部局部变量