@FE40536
2019-06-24T15:24:14.000000Z
字数 3657
阅读 699
python
基础
print('hello world')
print('hello' * 2) # 输出两次
ret = ipnut('>>>') # 返回值是字符串类型
a = 12
str(a)
float(a)
bool(a)
# if语句
if a > 1:
print('a>1')
elif a < 1:
print('a<1')
else:
print('a=1')
# while语句
while a < 5:
print('a<5')
a += 1
# for 语句
for i in range(10):
print(i)
# continue,break
# 用中括号括表示,用逗号隔开,有顺序,可变数据类型,不可hash(哈希)
a = ['jojo', 123, 'dio', 'GioGio', 40536, 'banana']
# 可用相应多的变量来接收列表的元素,每个变量接收到一个
b = [4, 5, 6]
x, y, z = b
# 切片操作
a[0:] # 取第一项到末尾项(取所有项)
a[0:-1] # 取第一项到倒数第二项
a[1:-1:1] # 从第二项按步长为1取到倒数第二项
a[1::2] # 从第二项按步长为2取到最后
a[4::-1] # 从第五项往左按步长为1取
a[::-1] # 从最后往前取完
a[-1::-1] # 从倒数第一位往前一位一位取
a[1:-1:-2] # 无效取法
# 增
a.append('666') # 添加到列表最后一项
a.insert(3, 'muda') # 添加到第四项
a.extend('abcd') # 将可迭代类型中的每一项分别添加进列表的末尾,该例子添加了'a','b','c','d'
# 删
a.remove('banana') # 删除'banana',列表里没有'banana'会报错ValueError
a.pop(2) # 按索引值删除,即删除第三项'dio',并返回删除的值
del a[0] # 按索引值删除
del a[0:2] # 按切片删除
del a # 删除整个列表,不是清空,是删除
# 改
a[0] = 'JOJO' # 按索引值修改
a{1:3] = [456, 123, 'lost'] # 按切片修改,换多少向都可以,可以不带中括号直接写456, 123, 'lost'
# 其他操作
a.sort() # 排序操作,默认从小到大,字符串也可以排,但是字符串和数字不能混排
a.count('dio') # 统计并返回'dio'在列表中出现的次数,没有就输出0
a.reverse() # 将a中的数据全部颠倒顺序,配合排序可变成逆序
a.index('jojo') # 返回'jojo'的索引值,没有则报错ValueError,有多个'jojo'返回第一个的索引
# 用''或者""或者''' '''围起来的就叫字符串
st = 'hello kitty'
# 字符串方法
st[0:5:1] # 字符串也可以切片
print('llo' in st) # 查看st里面是否含有'llo'片段,有返回True,无返回False
st.count('lo') # 统计'lo'出现次数
st.capitalize() # 首字母大写,不对原本的st做改变,要做改变要用st去接收,以后对原值不做改变我就说不保存
st.center(50, '*') # 将st夹在50个*中间,不保存
st.startswith('he') # 判断st是不是以'st'开头
st.endswith('tty') # 你应该懂的
st.find('it') # 找到第一个'it'的位置并返回索引,没找到返回-1
mantra = ['d', 'fs', 'asf']
'++'.join(mabtra) # 将mantra里的字符串用++连接起来,mantra里面有非字符串类型会报错
# 下面换一个字符串做演示
st = 'hello kitty {name} is {age}'
st.format(name='dino', age=7) # 原字符串内用大括号的部分用format可以格式化输出,不保存
st.format_map({'name': 'line', 'age': 78}) # 另一种格式化形式,不保存
st.index('e') # 同find,但没找到会报错
# 另一些操作
'abc123'.isalnum() # 判断是否包含数字或字母,中文也行,返回True,全是标点符号返回False
'123456'.isdecimal() # 判断字符串是不是长的像数字
'123.456'.isdigit() # 判断是不是整型数字
'123'.isnumeric() # 同上
'34abc'.isidentifier() # 判断字符串是不是合法标识符,由字母和数字下划线构成,数字不能开头
'Abc'.islower() # 判断是不是全小写
'Abc'.isupper() # 判断是不是全大写
'aBc'.upper() # 大写化,不保存
'aBc'.lower() # 小写化,不保存
'aBc'.swapcase() # 反转大小写,不保存
' '.isspace() # 判断是不是全是空格
'My Title'.istitle() # 判断是不是标题格式,每个单词首字母大写
'My title'.ljust(50, '#') # 在字符串右边放#直到字符串和#总长度到了50,若本来就长于50就不放#了,不保存
'My title'.rjust(50, '#') # 在左边放,不保存
' My title \n'.strip() #去左右空格换行符,不保存
'\tMy title\t'.lstrip() # 去左的
'\tMy title\t'.rstrip() # 去右的
'My title'.replace('My', 'You') # 替换字符串,不保存,没找到不报错,不替换而已
'My title title'.rfind('t') #从右往左找
'My title title'.find('t') # 从左边找
'My title title'.split('t') # 碰到't'就分割字符串,保存到临时列表之中,要接收,以后把不保存改成要接收
'My title title'.rsplit('t', 2) # 从右往左分割2次
'My title title'.title() # 标题化My Title Title
# 键值对结构
# 不可变类型:整形 字符串 元组
# 可变类型: 列表 字典
# 键不可以是可变类型 值可以是可变类型
# 创建方法
dic = {'name': 'awsl', 'age': 19, 'hobby': {'girl_name':'dasabi','boy_name':'dadasabi'}, 'isgood': True }
dic = dict([['name', 'dino'],['age', 7] ])
dic = dict.fromkeys(['host1', 'host2', 'host3', 'test'], ['jjj', 55])
# 结果如下{'host1': ['jjj', 55], 'host2': ['jjj', 55], 'host3': ['jjj', 55], 'test': ['jjj', 55]}
dic['host1'][1] = 33
# 修改过后{'host1': [4, 33], 'host2': [4, 33], 'host3': [4, 33], 'test': [4, 33]}
dic = {'name': 'alex'}
# 增
dic['dio'] = 100
print(dic.setdefault('age', 34)) # 有键不做修改,无键添加新键,有键修改后返回原有的值,无键添加后返回添加的值
# 查
print(dic['name']) # 以下为列表化
print(list(dic.keys())) # 查找键
print(list(dic.values())) # 查找值
print(list(dic.items())) # 查找键值对
# 改
dic1 = {'1': '111', '3': '3', '4': '4', }
dic2 = {'2': '222', '3': '333', '4': '444', '5': '555'}
dic1.update(dic2) #有相同的键则会覆盖
# 删
dic2.popitem() #删除字典最后一个,返回被删的键值对
dic2.pop('2') #根据键去删除,返回删除的值
dic2.clear() # 清空字典
# 其他操作
for i, v in dic2.items():
print(i, v) # 打印键和值
# 拷贝问题
dic3 = dic2.copy()
dic4 = dic2
dic2['4'] = '5555555555555555555555'
print(dic4) # dic4的'4'也被改变了
print(dic3) # dic3未被改变
# 和list类似,但是tuple是不可变类型,不能修改,可hash,但是tuple里面有可变类型,该可变类型可以修改
tu = (1, 2, 3, [4, 5, 'move', ], 7, 8, 9,)
tu[3][1] = 'just'.upper()
tu[3].append(96)
print(tu)