# 一、python中的关键字
# 1.导入工具包
# import keyword
# 2.使用工具包中的工具
# print(keyword.kwlist)
# 可以直接使用关键字,但是不能作为变量名,即不能使用关键字来存储变量,不能对关键字进行赋值。
# 二、数据类型
# 01.数据类型的分类
# 1.数字类型:int整数,float浮点数(小数),Bool布尔型(Ture是1,False是0)
# 2.非数字类型:string字符串(单引号或双引号内的都是字符串),list列表,tuple元组,dictionary字典
# str="aa"
# str1="11"
# str2="2.13"
# list=[22,33,"AA","python"] #列表
# tuple=(22,33,"aa","world") #元组
# dict={"name":"小明","age":18,"height":175.36,11:12} #字典
# print(str)
# print(str1)
# print(str2)
# print(list)
# print(tuple)
# print(dict)
# 列表与元祖的异同之处,
# 相同点:
# 都是序列
# 都可以存储任意数据类型
# 都可以通过索引访问
# 不同点:
# 使用方括号[]创建列表,使用小括号()创建元组
# 列表是可变的,元组是不可变的,这是两者之间的关键差异
# 我们可以修改列表的值,但是不能修改元组的值
# 由于列表是可变的,不能将列表用作字典的key,但是可以使用元组作为字典的key
# 不能将字典转换成列表,强制操作,只能归纳字典的键到列表中,后面值的数据丢失
# 有序的数据(可以使用索引进行访问):字符串、列表、元组
# 02数据类型转换
# 1.转换成int整数类型,仅限数字类型的字符串
# 格式:int(数据)
# aa="11234556"#数字型字符串
# # 通过type函数查看数据的类型
# print(type(aa))#查看需要修改的数据类型
# bb=int(aa)#把数据修改成int类型
# print(type(bb))#查看修改后的数据类型
# 2.转换成float浮点数类型,仅限int整数,int整数类型的字符串,浮点数类型的字符串
# 格式:float(数据)
# aa=11
# bb="22"
# cc="125.369"
# print(type(aa))
# print(type(bb))
# print(type(cc))
# aa=float(aa)
# bb=float(bb)
# cc=float(cc)
# print(type(aa))
# print(type(bb))
# print(type(cc))
# 3.转换成字符串类型,任意数据都可以
# 格式:str(数据)
# aa=123
# bb="123.25"
# cc=123.69
# dd="123"
# print(type(aa),type(bb),type(cc),type(dd))
# print(type(str(aa)))
# print(type(str(bb)))
# print(type(str(cc)))
# print(type(str(dd)))
# 4.把有序数据转换成list列表
# 有序容器:字符串、列表、元组
# 格式:list(数据)
# 字符串转换为列表
# info="python,world"
# print(type(info))
# list=list(info)
# print(type(list))
# print(list)
# 元组转换为列表
# info=('aa', '22', 11, 123.65, True)
# info1=list(info)
# print(info1,type(info1))
# 5.把有序数据转换为元组
# 有序数据:字符串、列表、元组
# 格式:tuple(数据)
# 字符串转换为元组
# info="python,world"
# print(info,type(info))
# info1=tuple(info)
# print(info1,type(info1))
# 列表转换为元组
# info=["aa","22",11,123.65,True]
# print(info,type(info))
# info1=tuple(info)
# print(info1)
# print(type(info))
# 6.拓展,字符串转换为列表之后,再转换为字符串
# 格式: "".join(列表名) 可以用来拼接字符串、列表、元组 (引号中间可以是空格,空,或任意字符)
# info="python,world"
# print(info)
# info1=list(info)
# print(info1)
# info2="".join(info1)#"引号中间可以用某些内容分隔"
# print(info2)
# info="python,world"
# print(info)
# info1=tuple(info)
# print(info1)
# info2="".join(info1)#"引号中间可以用某些内容分隔"
# print(info2)
# 7.字典不能转换成列表
# 格式:list(dict)
# 强制操作,只能归纳字典中的键到列表中,数据会丢失
# info={"name":"流川枫","age":18,"sex":"男"}
# print(info,type(info)) #打印字典中的原始数据
# info1=list(info)#强制转换为列表
# print(info1,type(info1))
# 三、代码的执行顺序
# 解释一行,运行一行
# price=8
# weight=7
# money=price*weight
# print(money)
# money=money-5
# print("你的总花费是:",money,"元")
# debug断点调试
# 1.数字和数字之间可以进行任何运算
# 2.数字和字符串之间可以进行乘法运算
# 3.字符串和字符串之间可以进行加法运算
# a=34
# b="python"
# c="world"
# print(a*b)
# print(b+c)
# print(b,c)
# print(b+" "+c)
# print("今天",b,c)
# print("今%s天" % b)
# 三、数据序列基础(总结)
# 可以将数据序列基础理解位数据类型
# 01数据为什么需要类型
# 1.人类可以肉眼观察,轻松的区分不同类型的数据,但是计算机做不到。
# 2.计算机工作的过程就是完成不同类型的数据计算,例如:数学运算,文件存储,逻辑判断。
# 3.为了让计算机完成不同的运算过程,在python中定义了数据类型的概念
# 4.数据类型可以对不同数据进行分类管理和标识。
# 02数据类型的检测
# 通过type()函数可以查看当前数据的类型
# name="张三"
# age=18
# print(type(name))
# print(type(age))
# 03常见的数据类型分类
# 数字型:整数型、浮点数型、布尔型(True=1 False=0)、复数型(用于科学计算)
# 布尔型参与运算时,代表的值
# print(False+5)
# print(True+5)
# 非数字型:字符串str、列表list、元组tuple、字典dict
# 字符串"小明" "23" "23.55"
# 列表[66,56,"lisi"]
# 元组(66,56,"lisi")
# 字典{"name":"小红","age":19}
# 四、input()输入函数
# 格式:input(提示信息)
# 注意:
# input()函数获取的信息一般保存在变量当中
# input()获取的数据类型都是字符串类型
# input()函数默认是阻塞的,除非用户输入信息或关闭程序
# msg="请输入您的账户:"
# user=input(msg)
# print(user)
# msg1="请输入密码:"
# password=input(msg1)
# print(password)
# print(type(user))
# print(type(password))
# 实现案例:
# 买苹果,xx块钱一斤,顾客买xx斤,总共需要多少金额.
# price=input("请输入苹果的单价:") #通过input函数接收输入的数据单价
# weight=input("请输入购买苹果的重量:") #通过input函数接收输入的数据重量
# money=float(price)*float(weight)#字符串不能直接参加运算,需要转换成整数或浮点数
# print("请支付%.2f" % money)#格式化输出需要支付的金额
# 小结:input()函数获取的数据都是字符串类型,在控制台输入int或float类型的数据,
# 也会被默认为字符串类型,所以,当获取到的数据需要以整数、小数类型与其它类型的数据
# 进行比较、算数运算的时候,需要数据类型转换。
# 四、字符串
# 01.字符串的定义和使用
# 1.自定义变量2.在变量中存储字符串
# name="长青科技"
# print(name)
# 02字符串定义的细节
# 1.单引号字符串
# 2.双引号字符串
# 3.三引号字符串
# a='python'
# b="长青"
# c="""长青科技"""
# print(a,b,c)
# 03.去除特殊字符功能,通过正则表达式,在字符前面加 r ,表示这是原生字符串,需要完整输出
# d="I\'m小华"
# print(d)
# e=r"I\'m小华"#字符前面加 r ,表示这是原生字符串
# print(e)
# 04.字符串的拼接
# 同类型的数据可以用加号+或逗号,来进行拼接
# 不同类型的数据只能用逗号拼接,不能用加号+拼接
# name="李四"
# name1="鲁班"
# num=232
# num1=369
# print(name+name1)#拼接没有空格
# print(name,name1)#拼接中间有空格
# # print(name+num)#不同类型数据,不能用加号拼接,会报错
# print(name,num)#不同类型数据,可以用逗号拼接,中间有空格
# print(num+num1)#数字类型用加号拼接发生了数学运算
# print(num,num1)#拼接中间有空格
# print(str(num)+str(num1))#类型转换后可以进行加号拼接
# 注意:强制转换数字类型后,可以用加号拼接
# 05.字符串的查询和统计
# 索引:从0开始,索引号就是字符在字符串中的位置
# 格式:字符串名[索引号]
# str="hello,world"
# print(str[10])
# print(str[-1])
# str1="我在东北玩泥巴"
# print(str1[2])
# print(str1[-5])
# 索引号从左边开始索引号是正数,从0开始,索引号从右边开始索引号是负数,从-1开始
# 06.通过字符串中的数据获取索引号
# 格式:字符串名.index("数据值")
# str="hello,world"
# print(str.index("h"))
# print(str.index("o"))#当字符串重复出现时,获取的是该字符第一次出现的索引号
# print(str.index("l"))
# print(str.index("wor"))#当匹配到小字符串时,获取的是最左边的字符索引号
# print(str.index("hello"))
# 07.统计字符串的长度
# 格式:len("字符串名字")
# str="hello,world"
# print(len(str))
# 08.统计大字符串中某个小字符串出现的次数
# 格式:大字符串名.count("小字符串名")
# str="hello,python,python,hello"
# print(str.count("hello"))
# print(str.count("l"))
# 小结:
# 字符串是用来处理文本数据的,
# 字符串是一种有序的数据容器,字符串中的数据是有顺序的(有序的数据容器才可以通过索引号访问),可以通过索引号访问。
# 索引号默认从0开始。
# 根据索引查询字符串中的数据:格式:字符串名[索引号]
# 根据字符串中的数据获取索引号:格式:字符串名.index(数据值)
# 统计字符串的长度(个数),格式:len('字符串名')
# 统计大字符串中某个小字符串出现的次数,格式:大字符串名.count('小字符串名')
# 09.字符串的查找
# 1.检查字符串是否以"自定义字符串"开头,是则返回True,否则返回False
# 格式:字符串名.startswith("字符串")
# my_str="hello,hello,python"
# print(my_str.startswith("he"))
# print(my_str.startswith("ll"))
# 2.检查字符串是否以"自定义字符串结尾",是则返回True,否则返回False
# 格式:字符串名.endswith("字符串")
# my_str="hello,hello,python"
# print(my_str.endswith("on"))
# print(my_str.endswith("ll"))
# 3.通过字符串查找小字符串是否包含在变量(字符串)中
# 如果是,则返回开始的索引值,如果否,则返回-1,下边的代码正常执行。
# 语法:变量名.find(小字符串,开始索引号,结束索引号)
# str="hello,python,world"
# print(str.find("hello",0,5)) #左闭右开的区间 [0,5)。在索引号0到5之间查找hello字符串,查找的位置不包含结尾位置的索引
# print(str.find("world"))#查询整个变量字符串中是否包含小字符串,包含返回结果为小字符串开始位置索引号
# print(str.find("python",4,14))#从索引号第4位和14(不包括第14位的索引)位之间开始查找小字符串python,找到就返回索引号,找不到就返回-1
# print(str.find("aa"))#找不到返回-1
# print(str.find("python",4))#从索引号4开始查找小字符串python,找到就返回索引号,找不到就返回-1
# 4.通过索引号查找小字符串是否包含在变量(字符串)中
# 如果是,则返回索引号,如果否,则报错,并且不再往下执行代码
# 语法:变量名.index("小字符串",开始索引号,结束索引号)
# str="hello,python,world"
# print(str.index("py"))#不写索引号,从整个字符串中开始找py小字符串,找到返回索引号
# # print(str.index("aa"))#找不到小字符串,报错,代码不再往下执行
# print(str.index("py",4,15))#从索引第4位和第15位(不包含第15位)之间查找py小字符串,找到返回索引号,找不到报错
# print(str.index("py",4))#从索引第4位开始到结束查找py小字符串,找到返回索引号,找不到报错