语法采用缩进方式,语句以:
结尾时,缩进的语句视作代码块
/
精确的,结果为浮点数//
地板除,得到整数表示:“”或‘’或’‘’ ‘’'(可表示多行字符串)括起来的文本
转义字符:\
默认不转义字符串:r''
取值:True 和False
运算: and``or``not
None
书写:全部字母大写
在计算机内存中统一使用Unicode编码,当需要将数据保存到硬盘或需要传输时,转换为UTF-8编码
str
)Unicode编码
ord()
和chr()
)print(ord('A'))# 65
print(chr(66))# 'B'
str
在内存中以Unicode
形式编码,需要传输或保存到磁盘上时,变为以字节为单位的bytes
print('ABC'.encode('ascii'))
#b'ABC' 占3个字节,而不是3个字符6个字节
print('中文'.encode('utf-8'))
#含有中文的字符不可以用ascii编码
#解码
print(b'ABC'.decode('utf0-8'))
#当bytes中韩有一小部分无效字节时,使用`error = 'ignore'` 忽略
b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore')
#计算字符数或字节数
len('ABD')#得到字符数
len(b'ABD')#得到字节数
#小栗子
print(len('中文'))# 2
print(len('中文'.encode('utf-8')))# 6,一个中文字符经utf-8编码之后占3个字节
格式化字符串:
%
用于占位和将字符串与参数分隔开%
用%%
表示f'xxx'
中的{xxx}会用相应的变量替换#占位符格式化方法
print('Hello, %s' % 'world')# Hello, world
print('Hi, %s, you have $%d.' % ('Michael', 1000000)) # Hi, Michael, you have $1000000.
#指定补位和小数位数
print('%2d-%02d' % (3, 1))
print('%.2f' % 3.124234)
#%s永远起作用
print('Age: %s. Gender: %s' % (25, True))# %s将任何数据类型转换为str
#format()方法
print('Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)) # 第二个参数使用:限制小数位数
#f-string方法
r = 2.5
s = 3.14 * r ** 2
print(print(f'The area of a circle with radius {r} is {s:.2f}'))
操作集:
len()
获得元素个数IndexError
append(key)
方法追加元素到末尾insert(pos, key)
方法插入元素到指定位置pop(i)
删除指定位置的元素,默认为最后一个元素.sort()
排序注意:
#建立list
classmates = ['Michael', 'Bob', 'Tracy']
print(classmates)
#len()
print(len(classmates))
#索引访问
print(classmates[0])
print(classmates[-2])
classmates[0] = 'Sarah'
#追加
classmates.append("Adan")
#插入
classmates.insert(1, "Jack")
#删除
classmates.pop()
classmates.pop(3)
#list中元素可为不同类型
s = ['python', 'java', ['asp', 'php'], 'scheme']
#排序
a = ['c', 'b', 'a']
a.sort()
print(a)
操作集
与list类似,但tuple不可变,没有insert,append,pop等方法
注意事项:
,
将只有一个元素的tuple和元素本身区分,()
可理解为运算符号t = (1,)
print(t)
#可变的tuple
t = ('a', 'b', ['A', 'B'])
t[2][0] = 'X'
t[2][1] = 'Y'
print(t)
非零数值,非空字符串,非空list等都为True
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
input()
得到的返回值为str
类型,需要使用强制类型转换变成我们需要的类型
s = input('birth: ') #使用int()强制类型转换
birth = int(s)
if birth < 2000:
print('00前')
else:
print('00后')
使用:
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name)
sum = 0
for x in range(101):
sum = sum + x
print(sum)
使用break
和continue
语句
#计算100以内的所有奇数和
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
使用键值对(key-value)存储,查找速度快(通过key得到value的存储地址),占用内存大,空间换时间
操作
in
判断key是否存在None
注意事项
#创建dict
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
print(d['Michael'])
#使用索引插入
d['Adam'] = 67
#使用in关键字判断
print('Thomas' in d)
#使用get方法
print(d.get('Thomas', -1))
#删除
d.pop('Bob')
print(d)
#使用可变对象list作为key
key = [1, 2, 3]
d[key] = 'a list'#报错:TypeError
set元素为key,不能重复,但不存储value
操作集:
注意事项:
#set的创建
s = set([1, 2, 3])
print(s)
#含有重复元素的创建
s = set([1, 1, 2, 2, 3, 3])
#添加元素
s.add(4)
print(s)
#删除元素
s.remove(4)
print(s)
#集合的交并运算
s1 = set([1, 2, 3])
s2 = set([2, 3, 4])
print(s1 & s2)
a = 'abc'
a.replace('a', 'A')
print(a)
#等价代码
a = 'abc'
b = a.replace('a', 'A')
print(b)
print(a)
代码分析
replace()
方法是创建了一个新的字符串,并且让被赋值的变量指向它
改变的是变量的指向
对于不可变对象:
调用对象自身的任意方法都不会改变对象自身的内容