目录
1.字符串
字符串format
'hello {}'.format('world') # ==> hello world
raw字符串
在字符串前面加个前缀r
,表示这是一个 raw 字符串,里面的字符就不需要转义了
但是r'...'
表示法不能表示多行字符串,也不能表示包含'
和 "
的字符串。
多行字符串
多行字符串,可以用'''...'''
表示:
'''Line 1
Line 2
Line 3'''
上面这个字符串的表示方法和下面的是完全一样的:
'Line 1\nLine 2\nLine 3'
字符串切片
s = 'ABC'
a = s[0] # 第一个
b = s[1] # 第二个
c = s[2] # 第三个
print(a) # ==> A
print(b) # ==> B
print(c) # ==> C
ab = s[0:2] # 取字符串s中的第一个字符到第三个字符,不包括第三个字符
print(ab) # ==> AB
2.控制语句
if else
score = 59 if score < 60: print('抱歉,考试不及格') elif score >= 90: print('恭喜你,拿到卓越的成绩') elif score >= 80: print('恭喜你,拿到优秀的成绩') else: print('恭喜你,考试及格')
for
s = 'ABCD'
for ch in s:
print(ch) # 注意缩进
while
while num <= 10:
print(num)
num = num + 1
3.容器
list
L = ['Alice', 66, 'Bob', True, 'False', 100]
print(names[2]) # ==> Bob
print(names[-3]) # ==> True #倒序访问
L.append('Candy') #尾部追加元素
L.insert(2, 'AAA') # 插入到指定位置 ['Alice', 66, 'AAA', 'Bob', True, 'False', 100]
L.pop() #弹出最后一个元素
L.pop(2) #弹出下标为2的元素
L[3] = 'BBBBB' #替换元素
tuple元组
L = ['Alice', 'Bob', 'Candy', 'David', 'Ellena'] # ==> ['Alice', 'Bob', 'Candy', 'David', 'Ellena']
T = tuple(L) # ==> ('Alice', 'Bob', 'Candy', 'David', 'Ellena')
T = ('Alice', 'Bob', 'Candy', 'David', 'Ellena')
T.count('Alice') #统计tuple中某个元素出现的次数
T.index('Alice') #返回指定元素的下标
dict
d = {
'Alice': 45,
'Bob': 60,
'Candy': 75,
'David': 86,
'Ellena': 49
}
d['Alice'] # ==> 45 读取
d['Mimi'] = [72, 73] #添加一个值为list的元素(key则替换,key不存在就添加)
d['Mimi'].append(75) ##更新 d['Mimi']=[72, 73, 75]
d.pop('Alice') #弹出一个元素
d.keys() #返回所有的key ['Alice','Bob','Candy','David']
d.values() #返回所有的value
d.items() #返回dict中所有的元素 [('Bob', 60), ('Ellena', 49), ('Alice', 45), ('Candy', 75), ('David', 86)]
d.clear() #清空
set
set 无重复,list允许重复; set 无序(不保证原顺序)
s = set([1, 4, 3, 2, 5])
print(s) # ==> set([1, 2, 3, 4, 5])
names = ['Alice', 'Bob', 'Candy', 'David', 'Ellena']
name_set = set(names)
'Alice' in name_set # ==> True 判断一个元素是否在set中
name_set.add('Gina') #添加元素
name_set.update(['Hally', 'Isen', 'Jenny', 'Karl']) #批量添加
name_set.remove('Jenny') #移除元素,元素不存在时报错
name_set.discard('Jenny') #移除元素,不报错
name_set.clear() # 清空
s1 = set([1, 2, 3, 4, 5])
s2 = set([1, 2, 3, 4, 5, 6, 7, 8, 9])
s1.issubset(s2) # ==> True # 判断s1是否为s2的子集
s2.issuperset(s1) # ==> True # 判断s2是否为s1的超集
s1.isdisjoint(s2) # ==> False #判断两个集合是否无重合(无:true,有:false)
4.函数
参数设置默认值
def power(x, n=2):
可变参数
def func(*args):
可变关键字参数
def info(**kwargs):
print('name: {}, gender: {}, age: {}'.format(kwargs.get('name'), kwargs.get('gender'), kwargs.get('age')))
info(name = 'Alice', gender = 'girl', age = 16)
对于一个拥有必需参数,默认参数,可变参数,可变关键字参数的函数,定义顺序是这样的:
def func(param1, param2, param3 = None, *args, **kwargs):
print(param1)
print(param2)
print(param3)
print(args)
print(kwargs)
func(100, 200, 300, 400, 500, name = 'Alice', score = 100)
# ==> 100
# ==> 200
# ==> 300
# ==> (400, 500)
# ==> {'name': 'Alice', 'score': 100}