@FE40536
2019-06-24T07:24:14.000000Z
字数 3657
阅读 859
python 基础
print('hello world')print('hello' * 2) # 输出两次ret = ipnut('>>>') # 返回值是字符串类型
a = 12str(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'会报错ValueErrora.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'在列表中出现的次数,没有就输出0a.reverse() # 将a中的数据全部颠倒顺序,配合排序可变成逆序a.index('jojo') # 返回'jojo'的索引值,没有则报错ValueError,有多个'jojo'返回第一个的索引
# 用''或者""或者''' '''围起来的就叫字符串st = 'hello kitty'# 字符串方法st[0:5:1] # 字符串也可以切片print('llo' in st) # 查看st里面是否含有'llo'片段,有返回True,无返回Falsest.count('lo') # 统计'lo'出现次数st.capitalize() # 首字母大写,不对原本的st做改变,要做改变要用st去接收,以后对原值不做改变我就说不保存st.center(50, '*') # 将st夹在50个*中间,不保存st.startswith('he') # 判断st是不是以'st'开头st.endswith('tty') # 你应该懂的st.find('it') # 找到第一个'it'的位置并返回索引,没找到返回-1mantra = ['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'] = 100print(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 = dic2dic2['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)