第二课主题
1.基础数据类型宏观的初始
int:1, 3, 100
#加减乘除等计算。
+ - * / //
str:存储少量的数据,进行简单的操作。
'[1,2,3]' boy = '素还真' girl = "风采铃" msg = "半神半圣亦半仙,全儒全道是全贤,脑中真书藏万卷,掌握文武半边天."
#list 列表存储大量的数据。
list_user=["业火红莲",'风莲','墨渊水莲','三莲归真','天官赐福','天踦爵','三余无梦生','鷇音子','解锋镝']
#tuple 只读列表
tuple_user = ("业火红莲",'风莲','墨渊水莲','三莲归真','天官赐福','天踦爵','三余无梦生','鷇音子','解锋镝')
# dict 字典 查询速度快,存储的是关系型数据
dict_user = { 'name':"素还真", 'age':180, 'title':"半神半圣亦半仙,全儒全道是全贤,脑中真书藏万卷,掌握文武半边天", }
#set:集合
set_int= {1,2,3}
2.int 整型,多用于计算
3.bool:True,False 布尔值,用于判断
4.str字符串
4.1索引与切片
格式化打印
msg =''' 半神半圣亦半仙, 全儒全道是全贤。 脑中真书藏万卷, 掌握文武半边天 ''' print(msg)
字符串拼接
boy = '素还真' girl = '风彩铃' print(boy + ' ' + girl)
字符串批量打印
title_time = '看莽莽红尘,谁将韶光偷换,人也好,魂也罢,不过是一抹塘荷影\n' print(title_time*8)
打印第一个字符(切片)
切片以索引表示,第一个字符索引为0,最后一个字符索引是-1,提取字符方式为:str[0]
title = '玄歌浪蹈,幻中道真,太游方外睨红尘。' title_first = title[0] print(title_first,type(title_first))
切片 格式为:[0:3],类似数学中的区间,数学形式为[0,3) #取值范围是>=0 <3,也可以使用这样的标记,切片:s[起始索引:结束索引+1:步长]
title = '非吾小天下,才高而已;非吾纵古今,时赋而已;非吾睨九州,宏观而已;三非焉罪?无梦至胜。' print(title[0:3]) # 提示:如果字符取值想从末尾开始,需要使用-1,并且步长也需要使用负数表示 print(title[-1:-5:-1]) # 反向打印字符 print(title[-1::-1])
4.2常用操作方法
title = 'Today,I consider myself the luckiest man on the face of the earth. 现在,我想我是这个世界上最幸运的人。(《扬基的骄傲》' # ** capitalize 首字母大写其余字母小写 print(title.capitalize()) # 大小写反转 print(title.swapcase()) # 非字母隔开的每个单词的首字母大写 print(title.capitalize().title()) # center 设置总长度,并居中 print(title.center(190,'*')) # upper() lower() 全部大写,全部小写 print(title.upper()) print(title.lower()) # 使用upper(),lower()可以用于常规验证码对比 code = 'QwErDf' input_code = input("请输入验证码:") if input_code.lower() == code.lower(): print("验证成功") else: print("验证失败") # startswith 以什么开头 endswith 以什么结尾 返回布尔值 title = '时间从来只留恨,不留人' print(title.startswith("时间")) print(title.endswith('人')) # strip 默认删除字符串左右两侧的空格,换行符,制表符 # lstrip 删除左侧空格 # rstrip 删除右侧空格 title = ' 吾用一生,写一首诗,盲目寻添,只找一字,直至此刻,诗成一字,早已铭心。 ' print(title.strip()) print(title.lstrip()) print(title.rstrip()) #适用场景,用于用户输入内容时,删除误操作产生的空格 user_name = input("请回答霹雳主角的名字").strip() #输入内容: 素还真 if user_name == "素还真": print("回答正确") else: print('回答错误') # replace 替换 replace("源字符串","目标字符串",[替换次数]) title = '初遇倾心,再见痴心,用尽苦心,不顾良心,终生费心,欲得芳心,难道你心,不懂孤心?' print(title.replace("心","情",3)) print(title.replace("心","情")) # split 分隔,str --> list 字符串 转 列表 默认以空格分隔 # split 语法格式 split(分隔字符[,分隔次数]) title = '初遇倾心,再见痴心,用尽苦心,不顾良心,终生费心,欲得芳心,难道你心,不懂孤心?' list_title = title.split(',') list_title = title.split(',',2) print(list_title) # join list --> str 列表 转 字符串 print(','.join(list_title)) # 通过元素找索引 找多个字符,以第一个找到的字符索引为标记 # find 找不到返回 -1 find(目标字符串[,开始查找索引位置]) # index 找不到会报错 index(目标字符串[,开始查找索引位置]) title = '人心最可怕的,不是无情,而是利用感情' print(title.find('人')) print(title.find('可怕')) print(title.find('情',15)) print(title.index('人')) print(title.index('可怕')) print(title.index('情',15)) # format 三种格式化打印方式 # 第一种用法 user = "{},{},{}" user_print = user.format('三年寻龙,十年点穴,肩负青囊走南北;三寸知心,十面洞息,掌握乾坤通天阙','齐烟九点-天踦爵','名称来源,遥望齐州九点烟,一泓海水杯中泻') print(user_print) # 第二种用法 title = '{0}神{0}圣亦{0}仙,{1}儒{1}道是{1}贤,脑中真书藏万卷,掌握文武{2}' user_title = title.format('半','全','半边天') print(user_title) # 第三种用法 title = '{first}?{second},{thrid}' user_title = title.format(first='冷灯看剑,剑上几番功名',second='炉香无需计苍生,纵一川烟逝',thrid='万丈云埋,孤阳还照古陵') print(user_title) # 公共方法 # len 测量字符个数 # count 统计某个字符(串)出现的次数 title = '多情楼上月徘徊,独照离人妆镜台。皎皎空中霜色影,凛如寒魄绝尘埃' print(len(title)) print(title.count('皎')) # 判断数字或数字,返回布尔值 # isalnum 字符串由字母或数字组成 # isalpha 字符串由字母组成 # isdigit 字符串由数字组成 user_int = '123' print(user_int.isalnum()) print(user_int.isalpha()) print(user_int.isdigit()) # 数据类型转换 # str ---> int 字符串全部由数字组成 int('123') # int ---> str str(1) # int ---> bool 0--->False 非0 --->True bool(1) print(bool(100)) print(bool(-1)) print(bool(0)) # bool --> int True 1 False 0 print(int(True)) print(int(False)) # str ---> bool 非空True 空字符串 False print(bool('')) print(bool('素还真')) # bool ---> str print(str(True),type(str(True))) # str ---> list split # list ---> str jion
4.3格式化输出
提示:%%可以将%打印出来
# 格式化输出 % 占位符 s d name = input('请输入你的名字:') age = input('请输入你的年龄:') job = input('请输入你的职业:') hobbie = input('请输入爱好:') msg = '''--------------info of %s---------------------- Name : %s age : %d job : %s hobbie : %s --------------end of %s---------------------- ''' % (name,name,int(age),job,hobbie,name) print(msg)
5比较运算符
# 前后都是比较运算
# 优先级:() > not > and > or
# 2, 前后都是数值 # 0 是False 其他都是True # x or y # if x is True: # return y print(3 or 4) print(1 or 4) print(0 or 4) print(-1 or 4) print(3 and 5) print(3 or 4 and 5)
6.列表
# 按照索引取值,与元素本身的数据类型一致 # 按照切片取值,取出来的是小列表 user_list = ['素还真',('墨渊水莲','业火红莲','耀世白莲'),'天踦爵','三余无梦生','鷇音子','解锋镝'] user_chice = user_list[:3] print(user_chice,type(user_chice)) # 增 # append() 追加 user_list.append('千叶传奇') print(user_list) # insert() 插入 # insert(索引位置,内容) user_list.insert(1,'天官赐福') print(user_list) # extend 将对象迭代地追加到列表中 # 提示:字符串会被拆分成单个字符追加到列表 # 列表会被拆分成单个元素追加到列表 # 元组会被拆分成单个元素追加到列表 # 字典会被拿出键名做为元素追加到列表 user_list.extend(['素续缘','风彩铃']) user_list.extend(('原无乡','芳天秀')) user_list.extend({"name":"四智武童"}) print(user_list) # 删除 # 按照索引删除 pop(索引) 默认删除最后一个元素 且返回删除元素的内容 ret = user_list.pop() print(ret) print(user_list) # 按照元素删除 remove user_list.remove("原无乡") user_list.remove("芳天秀") print(user_list) # clear 清空列表 user_chice.clear() print(user_chice) # del 删除元素 删除列表 这个变量就消失了 # 1.删除列表 # 2.按照索引删除 # 3.按照切片删除 del user_chice # 验证变量是存在 try: user_chice except NameError: var_exists = False else: var_exists = True print(var_exists) # 改 # 按照索引改 user_list[0] = '素还真-风彩铃' print(user_list) # 按照切片去改 # 切片方式修改,会是以迭代的方式插入到列表的指定位置,并且列表索引会重新排列 user_list[0:3] = ['无计先生'] user_list[:3] = ['叶小钗','一页书','剑子仙迹','佛剑分说','疏楼龙宿'] user_list[0:3] = '人也好,魂也罢,不过一抹塘荷影' print(user_list) # 提示如果加了步长,则修改的索引必须与插入元素一一对应,否则出错 user_list[:15:5] = ['叶小钗','一页书','秦假仙'] print(user_list) # 查 # 按照索引,切片(步长) # for 循环遍历 for item in user_list: print(item) # 其他方法 print(user_list.__len__()) print(len(user_list)) print(user_list.count(',')) # 排序 int_list = [1,3,2,9,8,4,5] int_list.sort() print(int_list) # 反向排序 int_list.sort(reverse=True) print(int_list) # 翻转 int_list.reverse() print(int_list)
7.元组与range
# 元组 只读列表 # 元组中如果包含列表,则列表操作不受限制 user_tuple = ('素还真','叶小钗','一页书',['天踦爵','无梦生']) print(user_tuple[0]) print(user_tuple[:-1]) for item in user_tuple: print(item) user_tuple[-1].append('鷇音子') print(user_tuple) # range print(range(100)) for item in range(100): print(item,end='') for item in range(1,12): print(item,end='') for item in range(2,101,2): print(item,end='') for item in range(100,0,-1): print(item,end='') for item in range(len(user_tuple)): print(user_tuple[item])
8.字典
user_dict = { 'name':'素还真', 'age':'180', 'desc':'半神半圣亦半仙,全儒全道是全贤。脑中真书藏万卷,掌握文武半边天' } # 增 user_dict['hobby'] = '风彩铃' print(user_dict) # setdefault 有key 则不修改,无key则添加 user_dict.setdefault('hobby','素续缘') print(user_dict) # 随机删除 popitem 有返回值 ret = user_dict.popitem() print(ret) print(user_dict) # clear 清空字典 user_dict.clear() # del 删除字典 # 1,删除整个字典 # 2,按照键去删除键值对 del user_dict try: user_dict except NameError: user_dict_exit = False else: user_dict_exit = True print(user_dict_exit) user_dict = { 'name':'素还真', 'age':'180', 'desc':'半神半圣亦半仙,全儒全道是全贤。脑中真书藏万卷,掌握文武半边天' } new_user_dict = { 'name':'三余无梦生', 'age':180, 'student':['小鬼头','小狐','灵凶','奉丹'] } # 改 user_dict['age'] = 200 print(user_dict['age']) # update 更新字典 user_dict.update(new_user_dict) print(user_dict) # 查 print(user_dict.get('name','未找到这个键名')) print(user_dict.keys()) print(user_dict.values()) # 下面两个操作等价 for item in user_dict.keys(): print(item) for item in user_dict: print(item) print(user_dict.items()) # 分别赋值 a,b = 1,3 print(a,b) a,b = [22,33] print(a,b) for k,v in user_dict.items(): print(k,v)
9.字典嵌套及数据类型补充
user_dict = { 'name_list':['素还真','叶小钗'], 1:{ 'age':180, 'height':180 } } # 向 user_dict['name_list']中追加一个元素'一页书' user_dict['name_list'].append('一页书') for k,v in user_dict.items(): print(k,v) # 向user_dict[1] 添加键值对 'sex':'man' user_dict[1].setdefault('sex','man') for k,v in user_dict.items(): print(k,v) int_list = [11,22,33,44,55] # 将索引为奇数对应的元素删除 del int_list[1:-1:2] print(int_list) # 提示,在循环一个列表时,不要改列表的大小,这样会影响结果 int_list = [11,22,33,44,55] for i in range(0,len(int_list)+1): if i % 2 == 0: print(int_list[i]) # 反向思维,从后向前删除元素,不会影响元素顺序,非常规用法 int_list = [11,22,33,44,55] # range(4,-1,-1) 相当于数学区间[4,-1)表明可以取到的值为 4-0,即可以取到的索引值 print(range(len(int_list)-1,-1,-1)) for i in range(len(int_list)-1,-1,-1): if i % 2 == 1: del int_list[i] print(int_list) # dictionary changed size during iteration # 在循环一个字典时,不要改变字典的大小,这样的影响结果或报错 # 删除dic 字典中包含k的键名 dic = {'k1': 'v1', 'k2': 'v2', 'k3':'v3', 'name':'素还真'} for key in list(dic.keys()): if 'k' in key: del dic[key] print(dic) dic = dict.fromkeys('abc','666') print(dic) dic['a'] = '777' print(dic) dic = dict.fromkeys('abc',[]) print(dic) dic['a'] = 'bbb' print(dic) dic['c'].append('888') print(dic)
浙公网安备 33010602011771号