# 一、python代码规范
# 代码编码:1.国际惯例,文件编码和python编码格式全部为utf-8,例如:在python代码的开头,要统一加上 #--coding:utf-8--。
# 2.python代码中,非ascii字符的字符串,需添加u前缀。
# 3.若出现python编码问题,可按照以下操作尝试解决:
# import sys
# reload(sys)
# sys.setdefaultencoding('utf-8')
# 空格:1.运算符两侧和函数参数之间建议使用空格进行分割
# 2.括号内两侧不要有空格
# 3. , : ; 前面不要有空格,应该在它们后面加(除了在行尾)
# 4.当=用于指示关键字参数或默认参数值时,不要在其两侧使用空格
# 5.避免使用不必要的空格,不要为了对齐增加空格
# 注释:1.总体原则:错误的注释不如没有注释,当一段代码发生变化时,第一件事就是修改注释
# 2.注释使用中文或者英文,最好是完整的句子
# 3.单行注释:在代码上使用#加文字注释 #与注释内容用空格隔开
# 说明多行代码的功能时一般将注释放在代码的上一行
# 说明单行代码的功能时一般将注释放在代码的右侧
# 多行注释:使用三双引号或者三单引号,引号中是注释的内容
# 保留字:1.保留字即关键字,不能作为任何标识符的名称
# 2.python的标准库提供了一个keyword模块,可以输出当前版本的所有关键字
# import keyword
# print(keyword.kwlist)
# 命名规范:1.函数命名尽量短小并且使用小写字母,提高可读性可使用下划线分割
# 2.类名采用单词首字母大写的驼峰式命名方法,例如GetMoney,History等
# 3.使用单下划线开头的模块变量或者函数是受保护的
# 4.不要使用L、O作为单字符变量名,易混淆
# 缩进:每级缩进使用4个空格(1个Tab),在冒号换行后一定要跟一个缩进,不然会出现语法错误
# 变量:1.变量命名规范:数字字母下划线,数字不能打开头
# phone_num = 123
# PhoneNum = 123
# phoneNum = 123
# Tel = 123
# dian_hua_hao = 123
# 2.name = value
# name表示变量名,value表示值,也就是要储存的数据
# 注意:变量名是标识符的一种,名字不能随便取
# 3.n = 95
# n = 100
# n = '你好世界'
# print(n)
# 变量的值一旦修改,之前的值就被覆盖了,也就是变量只能容纳一个值
# 4.将变量的结果赋值给变量
# n = 50+30
# r = 50+50-n
# print(n)
# print(r)
# 二、python数字类型
# 1.int 整型(包括正整数、零和负整数,全部由数字构成,没有取值范围的限制)
# 123 456
# print(123,type(123))
# 2.float 浮点型(由整数、小数点和小数构成的数字)
# 3.2 6.8
# print(3.2,type(3.2))
# 3.bool 布尔型
# True 1 False 0
# print(True,type(True))
# if []:
# print(123)
# 4.str 字符串 (不可变数据类型)
# print('hello world')
# print("hello world",type("hello world"))
# 字符串定义:字符串是一个有序的字符集合,用来存储和表现基于文本的信息
# python中字符串需要使用成对的单引号或双引号括起来,单引号和双引号是等效的
# 字符串格式化:
# ① % 格式化
# %s 格式化字符串
# %d 格式化整数
# %s 格式化浮点数字,可指定小数点后的精度
# ② format 格式化
# ③ f-string 格式化
# name = 'xiaoming'
# age = 12
# phone_price = 2080.652
# ①
# print("My name is %s,My age is %d,我的手机%.1f元" %(name,age,phone_price))
# print("My name is %s,My age is %s,我的手机%s元" %(name,age,phone_price))
# ②
# print("My name is {},My age is {},我的手机{}元".format(name,age,phone_price))
# ③
# print(f"My name is {name},My age is {age},我的手机{phone_price}元")
# 字符串转义
# print('I\'m a great coder!') 引号前加\
# print(r'C:\Users\wangshang\Desktop\第一阶段(全)\6') 使用r进行转义(路径)
# print('C:\\Users\wangshang\Desktop\第一阶段(全)\\6') \转义
# 字符串操作
# 拼接
# user = 'wang'
# age = '15'
# print('用户名:'+user+'\n年龄:'+age)
#
# 切片
# strs = '你好啊,中国,哈哈哈。hello world'
# print(strs[4])
# print(strs[:3:1])
# print(strs[::1])
# print(strs[::-1])
#
# str1 = 'abc12中国'
# 统计字符串长度
# print(len(str1))
# 统计字节数
# print(len(str1.encode('utf8')))
# print(len(str1.encode('gbk')))
#
# 分割合并
# str2 = '你好 王小明'
# print(str2.split(' '))
# str3 = '五险一金|餐补|双休|下午零食'
# data = str3.split('|')
# print(data)
# print('|'.join(data))
#
# 函数
# str3 = ' Hello WORlD'
# 大小写
# 转大写
# print(str3.upper())
# 转小写
# print(str3.lower())
# 首字母大写
# print(str3.title())
# 大小写互转
# print(str3.swapcase())
#
# 查询一个字符串是否出现在另一个字符串内以及位置
# 第一个
# print(str3.find('llo')) #找得到 返回下标
# print(str3.find('XXX')) #找不到 返回-1
# 第二个
# print(str3.index('llo')) #找得到 返回下标
# print(str3.index('XXX')) #找不到 报错
#
# 统计字符串出现次数
# print(str3.count('l'))
# print(str3.count('l',0,5))
#
# 替换
# print(str3.replace('l',''))
# 去左右空白字符
# str3.strip()
# print(str3)
# print(str3.strip())
# print(str3.lstrip())
# print(str3.rstrip())
# str4 = 'mmmmhello'
# print(str4.lstrip('m'))
# 判断以什么开头以什么结尾(bool)
# print(str3.startswith(' '))
# print(str3.endswith(' '))
#
# 5.list 列表
# lists = ['hello','world',['123','456']]
# print(lists,type(lists))
# print(lists,len(lists))
# print(list('123'))
# print(list({'hello':'world','nihao':'大地瓜'}))
# print(range(1,101),type(range(1,101)))
# for i in range(1,101):
# print(i)
#
# print(list(range(1,101))[::-1])
# list1 = [1,2,3]
# print(list1[2])
# print(list1[-1])
# 范围取值不会报超出索引错误
# 单个取索引对应的值会报错
# print(list1[1:30])不会报错
#
# 6.dict 字典
# dicts = {'hello':'world'}
# print(dicts,type(dicts))
# 7.set 集合
# s = {'hello','world'}
# print(s ,type(s ))
# 8. tuple 元组
# tul = ('hello','world')
# print(tul,type(tul))
# 一、python代码规范
# 代码编码:1.国际惯例,文件编码和python编码格式全部为utf-8,例如:在python代码的开头,要统一加上 #--coding:utf-8--。
# 2.python代码中,非ascii字符的字符串,需添加u前缀。
# 3.若出现python编码问题,可按照以下操作尝试解决:
# import sys
# reload(sys)
# sys.setdefaultencoding('utf-8')
# 空格:1.运算符两侧和函数参数之间建议使用空格进行分割
# 2.括号内两侧不要有空格
# 3. , : ; 前面不要有空格,应该在它们后面加(除了在行尾)
# 4.当=用于指示关键字参数或默认参数值时,不要在其两侧使用空格
# 5.避免使用不必要的空格,不要为了对齐增加空格
# 注释:1.总体原则:错误的注释不如没有注释,当一段代码发生变化时,第一件事就是修改注释
# 2.注释使用中文或者英文,最好是完整的句子
# 3.单行注释:在代码上使用#加文字注释 #与注释内容用空格隔开
# 说明多行代码的功能时一般将注释放在代码的上一行
# 说明单行代码的功能时一般将注释放在代码的右侧
# 多行注释:使用三双引号或者三单引号,引号中是注释的内容
# 保留字:1.保留字即关键字,不能作为任何标识符的名称
# 2.python的标准库提供了一个keyword模块,可以输出当前版本的所有关键字
# import keyword
# print(keyword.kwlist)
# 命名规范:1.函数命名尽量短小并且使用小写字母,提高可读性可使用下划线分割
# 2.类名采用单词首字母大写的驼峰式命名方法,例如GetMoney,History等
# 3.使用单下划线开头的模块变量或者函数是受保护的
# 4.不要使用L、O作为单字符变量名,易混淆
# 缩进:每级缩进使用4个空格(1个Tab),在冒号换行后一定要跟一个缩进,不然会出现语法错误
# 变量:1.变量命名规范:数字字母下划线,数字不能打开头
# phone_num = 123
# PhoneNum = 123
# phoneNum = 123
# Tel = 123
# dian_hua_hao = 123
# 2.name = value
# name表示变量名,value表示值,也就是要储存的数据
# 注意:变量名是标识符的一种,名字不能随便取
# 3.n = 95
# n = 100
# n = '你好世界'
# print(n)
# 变量的值一旦修改,之前的值就被覆盖了,也就是变量只能容纳一个值
# 4.将变量的结果赋值给变量
# n = 50+30
# r = 50+50-n
# print(n)
# print(r)
# 二、python数字类型
# 1.int 整型(包括正整数、零和负整数,全部由数字构成,没有取值范围的限制)
# 123 456
# print(123,type(123))
# 2.float 浮点型(由整数、小数点和小数构成的数字)
# 3.2 6.8
# print(3.2,type(3.2))
# 3.bool 布尔型
# True 1 False 0
# print(True,type(True))
# if []:
# print(123)
# 4.str 字符串 (不可变数据类型)
# print('hello world')
# print("hello world",type("hello world"))
# 字符串定义:字符串是一个有序的字符集合,用来存储和表现基于文本的信息
# python中字符串需要使用成对的单引号或双引号括起来,单引号和双引号是等效的
# 字符串格式化:
# ① % 格式化
# %s 格式化字符串
# %d 格式化整数
# %s 格式化浮点数字,可指定小数点后的精度
# ② format 格式化
# ③ f-string 格式化
# name = 'xiaoming'
# age = 12
# phone_price = 2080.652
# ①
# print("My name is %s,My age is %d,我的手机%.1f元" %(name,age,phone_price))
# print("My name is %s,My age is %s,我的手机%s元" %(name,age,phone_price))
# ②
# print("My name is {},My age is {},我的手机{}元".format(name,age,phone_price))
# ③
# print(f"My name is {name},My age is {age},我的手机{phone_price}元")
# 字符串转义
# print('I\'m a great coder!') 引号前加\
# print(r'C:\Users\wangshang\Desktop\第一阶段(全)\6') 使用r进行转义(路径)
# print('C:\\Users\wangshang\Desktop\第一阶段(全)\\6') \转义
# 字符串操作
# 拼接
# user = 'wang'
# age = '15'
# print('用户名:'+user+'\n年龄:'+age)
#
# 切片
# strs = '你好啊,中国,哈哈哈。hello world'
# print(strs[4])
# print(strs[:3:1])
# print(strs[::1])
# print(strs[::-1])
#
# str1 = 'abc12中国'
# 统计字符串长度
# print(len(str1))
# 统计字节数
# print(len(str1.encode('utf8')))
# print(len(str1.encode('gbk')))
#
# 分割合并
# str2 = '你好 王小明'
# print(str2.split(' '))
# str3 = '五险一金|餐补|双休|下午零食'
# data = str3.split('|')
# print(data)
# print('|'.join(data))
#
# 函数
# str3 = ' Hello WORlD'
# 大小写
# 转大写
# print(str3.upper())
# 转小写
# print(str3.lower())
# 首字母大写
# print(str3.title())
# 大小写互转
# print(str3.swapcase())
#
# 查询一个字符串是否出现在另一个字符串内以及位置
# 第一个
# print(str3.find('llo')) #找得到 返回下标
# print(str3.find('XXX')) #找不到 返回-1
# 第二个
# print(str3.index('llo')) #找得到 返回下标
# print(str3.index('XXX')) #找不到 报错
#
# 统计字符串出现次数
# print(str3.count('l'))
# print(str3.count('l',0,5))
#
# 替换
# print(str3.replace('l',''))
# 去左右空白字符
# str3.strip()
# print(str3)
# print(str3.strip())
# print(str3.lstrip())
# print(str3.rstrip())
# str4 = 'mmmmhello'
# print(str4.lstrip('m'))
# 判断以什么开头以什么结尾(bool)
# print(str3.startswith(' '))
# print(str3.endswith(' '))
#
# 5.list 列表
# lists = ['hello','world',['123','456']]
# print(lists,type(lists))
# print(lists,len(lists))
# print(list('123'))
# print(list({'hello':'world','nihao':'大地瓜'}))
# print(range(1,101),type(range(1,101)))
# for i in range(1,101):
# print(i)
#
# print(list(range(1,101))[::-1])
# list1 = [1,2,3]
# print(list1[2])
# print(list1[-1])
# 范围取值不会报超出索引错误
# 单个取索引对应的值会报错
# print(list1[1:30])不会报错
#
# 6.dict 字典
# dicts = {'hello':'world'}
# print(dicts,type(dicts))
# 7.set 集合
# s = {'hello','world'}
# print(s ,type(s ))
# 8. tuple 元组
# tul = ('hello','world')
# print(tul,type(tul))