#1.注释
# 脚本中的 # 就是一个注释,作用:说明,解释,调试
'''
这也是python中的注释,用前后各三个单引号
'''
"""
这也是python中的注释,用前后各三个双引号
"""
###############################################################
#2.输出函数
# print是一个函数,功能就是输出或打印变量
print('hello world')
# hello world
###############################################################
#3.变量
'''
什么是变量?
变量就是用一个英文字符串来记录或标记一些数据,并且这个被标记的数据是可以变化的
num = 1 的理解
就是把数据 1 赋值给变量 num 使用,之后就可以使用num来代替这个1的数据
'''
num = 10
print(num)
# 10
num += 10
print(num)
# 20
###############################################################
#4.变量定义规范
'''
1.变量名可以使用字母,数字,下划线_,
2.不能以数字开头
3.严格区分大小写
4.不要使用中文
5.不要使用关键字 if else True False print
6.另外,变量的命名规范适用于脚本名称和后期的函数名及其它命令规范
'''
A = '123'
a = 123
# 10 = 20 #报错,变量不能以数字开头
你好 = 'nihao'
print(你好)
#nihao
###############################################################
#5.变量的定义方式
# 定义变量时 要注意遵守变量命名规范
# 第一种 变量定义方式
a = 10
b = 20
# 第二种定义方式
a,b = 30,40
# 交换变量的数据
a = 10
b = 20
'''
Python特色交换方式
利用python定义比变量的语法来实现 变量的数据交换
'''
a,b = b,a
print(a,b)
#20 10
'''
普通方式,完成变量数据的交换
'''
c = a
a = b
b = c
print(a,b)
#20 10
###############################################################
#6.python的数据类型
# 什么是数据类型?
# 数据类型就是数据的表现形式,比如 你好 就是一个字符串,200就是一个数字,
# 在程序当中除了这种常用的字符和数字外还有很多其它的数据表现形式
# 常用的数据类型
# 1.字符串类型
love = 'iloveyou'
hello = '你好 世界'
s = "i like " \
"you"
# 大字符串,可以换行
s = '''
比如说这一个
很长很长的文章内容。。。
'''
# 在python中提供来一个方法用户获取当前变量的数据类型,
# type() 函数 返回一个数据或变量的数据类型结果
res = type(s) # <class 'str'> str == string
print(s,res)
# 使用引号定义的字符串,可以嵌套别的引号
#s = 'i 'love' you' #单双引号可以互相嵌套,但是不是嵌套自己
s = 'i "love" you'
s = '''
窗前'明'月光
疑似"地上"霜
举"""头望"""明月
'''
print(s)
# 关于转义字符 \n 表示换行 \t 表示一个制表符 。。。
s = '窗前\n明月光'
s = r'窗前\n明月光' # 可以取消转义字符
print(s)
###############################################################
#7.数字类型 Number
'''
int 整型
float 浮点类型
complex 复数
bool 布尔类型(True,False)
'''
varn = 521 #整型
varn = -1111 #整型
varn = 3.1415926 #浮点型
varn = 0x10 # 十六进制
varn = b'001100111' # bytes
# 复数
varn = 5+6j # complex
# 布尔类型 bool
varn = True
varn = False
# print(varn,type(varn))
# 数值类型可以参与运算
a = 10
b = 20
print(a+b)
###############################################################
#8.list 列表类型
# 列表用来表示一系列数据,例如: 需要记录一组数字或其它数据
# 列表中存储的数据可以是任意类型的
# 在需要记录多个数据时,可以使用中括号进行定义 [],
# 并且每个数据之间使用逗号分隔 ,
# 例如以下数据,定义了几组数字
varlist = [192,168,200,68]
print(varlist,type(varlist)) # <class 'list'>
# 列表中存储的每一组数据,称为元素
varlist = ['a','b',521,'pai',3.1415926]
print(varlist)
# 列表中存储的数据,可以通过下标的方式进行获取
'''
关于列表中的下标
0 1 2 3 4
['a','b',521,'pai',3.1415926]
-5 -4 -3 -2 -1
'''
print(varlist[0])
print(varlist[2])
print(varlist[-3])
# 列表中元素的值可以是任意类型
# 那么列表中元素的值可不可以存储一个列表,称为 二级列表(二维列表) 或者 多级列表 (多维列表)
varlist = [1,2,3,[11,22,33],'a','b','c']
print(varlist)
'''
0 1 2 3 4 5 6
[1,2,3,[11,22,33],'a','b','c']
0 1 2
[11,22,33]
'''
print(varlist[3])
print(varlist[3][1])
###############################################################
#9.tuple 元组类型
'''
+ 在定义多个数据内容时,可以选择使用List列表类型
+ 还可以使用元组类型来定义,元组和列表非常像,都时用于存储多个数据时使用
+ 元组使用小括号进行定义(),列表使用中括号进行定义
'''
# tuple
vart = (1,2,3,'a','b')
print(vart,type(vart))
print(vart[3])
# 注意在定义元组时,如果元组中只有一个元素,那么需要加, 不然就不是元组类型了
# vart = (123,)
# 元组的其它定义方式
vart = 1,2,3
print(vart,type(vart))
# 列表与元组的区别
'''
+ 列表使用中括号定义,
+ 元组使用小括号定义,
+ 列表中的值可以被改变,
+ 元组中的值是不可以改变的
'''
# 定义列表
varl = [1,2,3]
# 通过下标来修改元素的值
varl[2] = 33
# print(varl)
# 定义元组
vart = (1,2,3)
vart[2] = 33
print(vart) # 错误,元组的值不能改变
# 'tuple' object does not support item assignment
###############################################################
#10.Dict 字典类型
'''
+ 字典也是用于存储一组或多组数据时使用,使用大括号 {}来定义
+ 字典是 键值对 的存储方式 name :admin
+ 键和值之间使用冒号进行分隔,多组键值对之间使用逗号分隔
+ 键必须是字符串或数字类型,值可以是任意类型
+ 键名不能重复,值可以重复
'''
# 比如需要记录一本书的相关数据 书名,作者,价格,。。。
vard = {'title':'<<鬼谷子>>','author':'鬼谷子','price':'29.99'}
print(vard,type(vard))
# {'title': '<<鬼谷子>>', 'author': '鬼谷子', 'price': '29.99'} <class 'dict'>
# 获取字典中的值
print(vard['title'])
# 字典中的键不能重复使用,否则会覆盖
vard = {'a':10,'b':10,'c':20,'a':'aa',1:'abcdef','2':'2222'}
print(vard)
# tip: 在python之前的版本中,字典是无序的
###############################################################
#10.set集合类型
'''
set集合是一个 无序且元素不重复的 集合的数据类型
set集合使用 中括号或者set()方法来定义
'''
# 集合的定义方式
vars = {1,2,3,'a','b',1}
vars = set('123456')
# 如果需要定义一个空集合时 只能使用 set()方法,因为大括号时定义的空字典
vars = {}
vars = set()
print(vars,type(vars)) # <class 'set'>
a = {1,2,3,'a'}
# 给集合添加元素
a.add('b')
# 无法获取集合中的单个元素,但是可以添加和删除
a.discard('a')
print(a)
# 检查当前的元素是否在集合中
print(1 in a)
# 集合主要用于运算,交集,差集,并集,对称集合
a = {1,2,3,'a','b'}
b = {1,'a',22,33}
print(a & b) # 交集 {1, 'a'}
print(a - b) # 差集 {'b', 2, 3} a 集合有,b集合没有的
print(a | b) # 并集 {1, 2, 3, 33, 'a', 'b', 22} 两个集合,放到一起,并且去重
print(a ^ b) # 对称差集 {33, 2, 3, 'b', 22}
###############################################################