# 注释
# 单行注释
'''
多行注释
'''
"""
多行注释
"""
# 变量
# 命名
'''
变量的定义要求:
1.命名要求: 字母、数字、下划线
2.注意: (1)数字不能作为开头
(2) 不能以关键字作为变量名
'''
i = 'hello world'
print(i)
# 关键字
import keyword
print(keyword.kwlist)
# 变量定义
# 定义即赋值,定义的时候不需要去指定数据的类型,Python执行器可以自动判断
var1 = "word"
print(var1, type(var1))
var1 = 1
print(var1, type(var1))
# print函数
print(1, 2, 3, 4)
print("hello", end='')
print("world")
# 5种基础数据类型
'''
整型: int
字符串: str
小数: float
布尔类型: bool
空类型:NoneType
注意:
1.bool类型中的True和False是需要首字母大写
2.变量类型可以自动去判断
3.字符串中单引号和双引号不区分
'''
# 整型
var1 = 1
print(var1, type(var1))
# 字符串
var1 = "str"
print(var1, type(var1))
var1 = 'str'
print(var1, type(var1))
# 小数类型
var1 = 1.1
print(var1, type(var1))
# 布尔
var1 = True
print(var1, type(var1))
# 空类型
var1 = None
print(var1, type(var1))
# 类型之间的相互转换
# 从字符串转换成int类型
# 字符串转换成int
s = '1'
print(int(s), type(int(s)))
# 字符串转换成浮点型
s1 = "1.1"
print(float(s1), type(float(s1)))
# float转换成int类型
f1 = 3.14
print(int(f1), type(int(f1)))
# 丢失精度时 不会去做四舍五入
f1 = 3.6
print(int(f1), type(int(f1)))
# 数值0 转换成bool类型时 会默认转换成False
# 数值1 转换成bool类型时 会默认转换成True
b = 0
print(bool(b), type(bool(b)))
b = 1
print(bool(b), type(bool(b)))
b = 3
print(bool(b), type(bool(b)))
print(">" * 50)
# 字符串的常见操作
str1 = "java Python scala sql"
# split 切分
str2 = str1.split(" ")
print(str2, type(str2))
# strip 去除字符串两边的隐藏字符
# \t 表示一个制表符
# \n 表示换行
# \r 表示回车
str3 = " \t \n java Python scala sql \t \n \r"
print(str3)
str4 = str3.strip()
print(str4, type(str4))
# 字符串的切分
# 规则:[开始位置:结束位置:步长]
# 开始位置是从0开始 结束位置不包含 即 取值区间是一个左闭右开区间 [开始位置:结束位置)
#
print(str1[5:11])
# 步长
print(str1[5:11:2])
# 反转
print(str1[::-1])
# 反转Python
# 负值取值是从后往前数
print(str1[-11:-17:-1])
# 获取字符串长度
print(len(str1))
# 字符串中的索引
print(str1[0])
# 格式化
a = 10
b = 3
print(a, ' * ', b, ' = ', a * b)
# 方式一
str_format = "{} * {} = {}"
print(str_format.format(a, b, a * b))
# 方式二
# %d 表示 数字
# %s 表示 字符串
# %f 表示 浮点型
# %.nf 表示 输出小数点后n位
print("%d * %d = %d" % (a, b, a * b))
print("%s * %d = %d" % ('4', b, a * b))
print('%f' % 3.14)
print('%.1f' % 3.14)
# 算术运算符
# + - * / % // **
# Pycharm 快捷键 Ctrl + D 表示复制当前行至下一行
# // 表示整除 ** 表示次方
a = 10
b = 3
print(a + b) # 13
print(a - b) # 7
print(a * b) # 30
print(a / b) # 3.33333...
print(a % b) # 1
print(a // b) # 3
print(a ** b) # 1000
# 如果是两个 ** 号 则需要从后往前计算
print(2 ** 3 ** 2) # 512
# 如果是两个 // 号 则需要从前往后计算
print(10 // 3 // 2) # 1