isinstance(object, classinfo)
Python 中的isinstance函数,isinstance是Python中的一个内建函数。是用来判断一个对象的变量类型。
示例:
L=[1,3,'a']
if type(L) == type([]):
print("L is list")
if type(L) == list:
print("L is list")
if isinstance(L,list):
print("L is list")
hex,oct,bin(进制转换)
hex:十进制转十六进制
oct:十进制转八进制
bin:十进制转二进制
示例:
I = 1024
print(hex(I),oct(I),bin(I))
# 0x400
# 0o2000
# 0b10000000000
将字符串转化为整数
string = '1024'
print(int(string,base=10)) base为进制数
#1024
x if y else z:三元选择表达式
示例:
print(1 if 5>3 else 0)
当 if中的判断语句为真时,输出第一位的参数;为假时,输出最后一位的参数
#1
a = 6
result = (a > 20 and "big than 20" or a > 10 and "big than 10" or a > 5 and "big than 5") # 返回"big than 5"
+, -, *, /, //, %, **(算法)
示例:
a,b = (3.5,2)
print(a + b, a - b, a * b, a / b, a // b, a % b, a ** b)
/除
//除、得整数部分,被除数是什么类型,得数就是什么类型
%求余
**幂
#5.5 1.5 7.0 1.75 1.0 1.5 12.25
扫描二维码关注公众号,回复:
2945272 查看本文章
x[i], x[i:j:k] (索引,切片)
示例:
list = [1,3,4,6,7,8]
print(list[2],list[1:4:2]) [起始:终止:步数]含头不含尾
print(list[2],list[1:4:3])
#4 [3, 6]
#4 [3]
整数可以利用bit_length函数测试所占的位数
示例:
a,b = (1,1024)
print(a.bit_length(),b.bit_length())
#1 11
小数模块、分数模块
#小数模块
import decimal
from decimal import Decimal
De = Decimal("0.01") + Decimal("0.02")
decimal.getcontext().prec = 4
print(De)
#0.03
#分数模块
from fractions import Fraction
x = Fraction(4,6)
y = Fraction("0.25")
print(x,y)
#2/3 1/4
set.update(更新集合)
set2 = set("flask")
set2.update("django") 相当于一种添加元素的方式
print(set2)
#{'s', 'j', 'o', 'l', 'n', 'f', 'd', 'g', 'k', 'a'}
issubset,issuperset 两个集合做测试,测试集合(小)中所y有元素是否在另一集合(大)中
set4 = {1,2,3}
set5 = {1,2,3,4,5}
print(set4.issubset(set5), #set4 <= set5
set5.issuperset(set4)) #set >= set4
# True True
集合解析
set6 = {x ** 2 for x in [1,2,3,4]}
set7 = {x for x in 'spam'}
print(set6,set7)
#{16, 1, 4, 9} {'s', 'm', 'a', 'p'}
增强赋值和共享引用
d1 = d2 = [1,2]
d2 = d2 + [3,4]
print(d1,d2)
# [1, 2] [1, 2, 3, 4]
d1 = d2 = [1,2]
d2 += [3,4]
print(d1,d2)
#[1, 2, 3, 4] [1, 2, 3, 4]
普通+号会生成新的对象,而增强赋值+=会在原处修改
列表转字符串
list = ['1','2','3']
print(",".join(list))
#1,2,3
判断字符串是否全为字符、字母、数字、小写、大写
str1.isalnum(); str1.isalpha(); str1.isdigit(); str1.islower(); str1.isupper()
字符串转换工具
print(ord('s'),chr(115))
print(int('1001',2)) 把字符串数字当成二进制数进行转换,转换成十进制整型
# 115 s
# 9
%g 表示自动选择合适的表示法输出(好像就是四舍五入到小数点后五位。。。)
pi = 3.1415926
print("%g" % pi)
#3.14159
基于字典的格式化表达式
"%(name1)d---%(name2)s" % {"name1":23, "name2":"value2"}
"{0}, {1} and {2}".format('spam', 'ham', 'eggs') # 基于位置的调用
"{motto} and {pork}".format(motto = 'spam', pork = 'ham') # 基于Key的调用
"{motto} and {0}".format('ham', motto = 'spam') # 混合调用
# 23---value2
spam, ham and eggs
spam and ham
spam and ham
# 例子:
'={0:10} = {1:10}'.format('spam', 123.456) # 输出'=spam = 123.456'
'={0:>10}='.format('test') # 输出'= test='
'={0:<10}='.format('test') # 输出'=test ='
'={0:^10}='.format('test') # 输出'= test ='
'{0:X}, {1:o}, {2:b}'.format(255, 255, 255) # 输出'FF, 377, 11111111'
'My name is {0:{1}}.'.format('Fred', 8) # 输出'My name is Fred .' 动态指定参数
切片删除
a = [1, 2, 3, 4, 5, 6, 7]
a[1:4] = []
# a = [1, 5, 6, 7]
a = [0, 1, 2, 3, 4, 5, 6, 7]
del a[::2]
# 去除偶数项(偶数索引的),a = [1, 3, 5, 7]
常用字典常量和操作
D = {'spam':2,'tol':{'ham':1}}
print(D)
D = dict.fromkeys(['s','d'],8)
print(D)
D = dict(name='tom',age=12)
print(D)
D = dict([('name','tom'),('age',12)])
print(D)
print(D.keys())
print(D.values())
print(D.items())
print(D.pop('num','nonum')) 有key名为'num'的弹出'num'的建和值,并打印'num',没有则打印'nonum'
#{'spam': 2, 'tol': {'ham': 1}}
{'s': 8, 'd': 8}
{'name': 'tom', 'age': 12}
{'name': 'tom', 'age': 12}
dict_keys(['name', 'age'])
dict_values(['tom', 12])
dict_items([('name', 'tom'), ('age', 12)])
nonum
字典的append只能用在键对应的值为数组时
示例
a={'a':1,'b':[2]}
a['c']=3
(此时a = {'a':1,'b':[2],'c':3)
a['b'].append(4)
(此时a = {'a':1,'b':[2,4],'c':3)
赋值(考究一下)
#-- 赋值语句的形式
spam = 'spam' # 基本形式
spam, ham = 'spam', 'ham' # 元组赋值形式
[spam, ham] = ['s', 'h'] # 列表赋值形式
a, b, c, d = 'abcd' # 序列赋值形式
a, *b, c = 'spam' # 序列解包形式(Python3.x中才有)
#-- 序列赋值 序列解包
[a, b, c] = (1, 2, 3) # a = 1, b = 2, c = 3
a, b, c, d = "spam" # a = 's', b = 'p', c = 'a', d = 'm'
a, b, c = range(3) # a = 0, b = 1, c = 2
a, *b = [1, 2, 3, 4] # a = 1, b = [2, 3, 4]
*a, b = [1, 2, 3, 4] # a = [1, 2, 3], b = 4
a, *b, c = [1, 2, 3, 4] # a = 1, b = [2, 3], c = 4
# 带有*时 会优先匹配*之外的变量 如
a, *b, c = [1, 2] # a = 1, c = 2, b = []
print函数原型
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
else 在 while语句和for语句中的使用
while a > 1:
a -= 1
print(1)
else :
print(2)
#
1
1
1
1
2
for i in range(5):
print(1)
else:
print(2)
#
1
1
1
1
1
2
for循环的元组赋值
for (a,b)in[(1,2),(3,4)]:
print(a,b)
#
1 2
3 4
for ((a,b),c) in [((1,2),3),((4,5),6)]:
print(a,b,c)
#
1 2 3
4 5 6
for ((a,b),c) in [((1,2),3),("XY",6)]:
print(a,b,c)
#
1 2 3
X Y 6
for (a,*b) in [(1,2,3),(4,5,6)]:
print(a,b)
#
1 [2, 3]
4 [5, 6]
列表解析语法
list = [1,2,3]
print(sum(list))
#
6
M = [[1,2,3], [4,5,6], [7,8,9]]
res = [sum(row) for row in M]
print(res)
#
[6, 15, 24]
res = [c * 2 for c in 'spam']
print(res)
#
['ss', 'pp', 'aa', 'mm']
res = [a for a in [1,2,3] if a < 2]
print(res)
#
[1]
res = [a if a > 0 else 0 for a in[-1,0,1]]
print(res)
#
[0, 0, 1]
# 两个列表同时解析:使用zip函数
for teama, teamb in zip(["Packers", "49ers"], ["Ravens", "Patriots"]):
print(teama + " vs. " + teamb)
#
Packers vs. Ravens
49ers vs. Patriots
# 带索引的列表解析:使用enumerate函数
for index, team in enumerate(["Packers", "49ers", "Ravens", "Patriots"]):
print(index, team)
#
0 Packers
1 49ers
2 Ravens
3 Patriots
def func(a=[]):
a.append(1)
print(a)
func()
func()
func()
#
[1]
[1,1]
[1,1,1]
元组中只有一个元素,“必须”’在尾部加一个‘,’
a = ("one","two")
print(a[0])
#
one
b = ("just")
print(b[0])
#
j
c = ("just",)
print(c[0])
#
just
d = "just",
print(d[0])
#
just