文章目录
笔记github地址: https://github.com/zhoushaodong666/python-study
一、数字类型
1.1、int (整型)
# 整形 type(数据类型) type函数可以根据传入的参数 判断数据类型是什么
print(type(1)) # <class 'int'>
1.2、float (浮点型)
# 浮点型 带小数点的 python就认为是浮点数 精确度比整形大
print(type(1.0)) # <class 'float'>
1.3、int和float的运算
# 整形+浮点型 = 浮点型
print(type(1+1.0)) # <class 'float'>
# 整形*整形 = 整形
print(type(1*1)) # <class 'int'>
# 整型+整型 = 整型
print(type(1+1)) # <class 'int'>
# 浮点型+浮点型 = 浮点型
print(type(1.0+1.0)) # <class 'float'>
# 浮点型*浮点型 = 浮点型
print(type(1.0*1.0)) # <class 'float'>
# 整形*浮点型 = 浮点型
print(type(1*1.0)) # <class 'float'>
# 整形/浮点型 = 浮点型 浮点型/整形 = 浮点型
print(type(1/1.0)) # <class 'float'>
print(type(1.0/1)) # <class 'float'>
# 整形/整形 = 浮点型 单斜杠"/"除法会将整形自动转换为浮点型
print(type(1/1)) # <class 'float'>
print(1/1) # 1.0
# 整形//整形 = 整形 双斜杠"//"叫取整除运算符 返回商的整数部分(向下取整)
print(type(1//1)) # <class 'int'>
print(1//1) # 1
# 1/2=0.5 向下取整就是0了
print(1//2) # 0
1.4、2进制、8进制、10进制、16进制的表示和相互转换
# 数字的几种机制表示方法
# 常见的 10机制 2进制 8进制 16进制
# 2进制表示 例如0b11 0b/0B开头表示二进制 大小写都可以 11为二进制的数值大小 print函数是以10进制输出
print(0b11) # 3
# 8进制表示 0o/0O开头表示八进制
print(0o10) # 8
# 10进制表示 直接用阿拉伯数字表示
print(5) # 5
# 16进制表示 0x/0X 开头表示十六进制
print(0x10) # 16
# 进制转换
# bin 将其他进制转化为二进制
print(bin(10)) # 0b1010
print(bin(0o5)) # 0b101
print(bin(0xF)) # 0b1111
# int 将其他进制转化为十进制
print(int(0b10)) # 2
print(int(0O10)) # 8
print(int(0x10)) # 16
# oct 将其他进制转化为八进制
print(oct(10)) # 0o12
print(oct(0b10)) # 0o2
print(oct(0x10)) # 0o20
# hex 将其他进制转化为十六进制
print(hex(666)) # 0x29a
print(hex(0b1010)) # 0xa
print(hex(0o777)) # 0x1ff
1.5、bool(布尔类型)
# bool 布尔值 真/假
# 真用"True"表示
# 假用"True"表示
bool_true = True #注意 不能用 true表示 不然编译器会报错
print(type(bool_true)) # <class 'bool'>
print(bool_true) # True
print(int(bool_true)) # 1 True是int类型数据1 所以说布尔类型是数字类型的一种
print(bool(1)) # True 非零数字转布尔类型都是True
print(bool("asd")) # True 非空值也为True
# 假用"Flase"表示
bool_false = False #注意 不能用 false表示 不然编译器会报错
print(type(bool_false)) # <class 'bool'>
print(bool_false) # False
print(int(bool_false)) # 0 False是int类型数据0 所以说布尔类型是数字类型的一种
print(bool(0)) # False 0转布尔类型是False
print(bool("")) # False 空值为False
二、字符串类型
2.1、字符串
# str 字符串 可以用 单引号 双引号 三引号表示
str1 = "我是双引号字符串"
print(str1)
str2 = '我是单引号字符串'
print(str2)
# 多行字符串可以直接换行书写
str3 = """我是多行字符串
啦啦啦啦"""
print(str3)
# 如果单引号和双引号的字符串想换行书写呢?
# 单双引号换行需要在末尾加上\
str4 = "我要\
换行"
print(str4)
str5 = '我要\
换行'
print(str5)
2.2、字符串运算
# 1.拼接字符串 使用"+"
print("hello"+"world") #helloworld
# 2.字符串重复 使用"*" *后面跟整数,跟着几就重复字符串几遍
print("hello"*2) #hellohello
# 3.下标获取字符串中的单个字符
# 从下面的三个我们可以得到一个规律 我们的下标是从0开始的 和其他语言的数组从下标0开始一样 不同的是我们可以传入负整数
# 规律:下标从0开始 -0也是0 所以还是取的第一个字符 -1代表从最后一个字符数1个取到的字符,-号代表反向
print("hello world"[0]) # h
print("hello world"[-0]) # h
print("hello world"[-1]) # o
# 4.下标获取字符串中的一截字符串
# 从下面的两个 我们可以得到结论是 字符串用[x:x]的形式取一截字符串 第二个是下标的元素是不被包含进来的 所以我们要多取一个
# 我们来获取下 hello这一截字符串
print("hello world"[0:4]) # hell
print("hello world"[0:5]) # hello
# 5.如果截取某个下标后面的全部字符串
# 我们截取"hello "后面的全部字符串 [x:]
print("hello c# python java rust"[6:]) # c# python java rust
# 同理 假如想截取rust前面的全部字符串
print("hello c# python java rust"[:-4]) # hello c# python java
2.3、转义字符
# 1.无法用肉眼直接看出的字符
# example 1
print("我是\nexample 1") #该结果会换行输出 换行符就不是我们肉眼能直接看到的字符
# 2.常见的转移字符
# \n换行 \r回车 \t横向制表符
# 3.如果想原样输出example1的\n,怎么做呢?
# 我们可以使用 \\n原样输出\n的字符
print("我是\\nexample 1")
# 4.如果转义字符很多,难道我们都要加\吗?
# 我们可以使用原生字符串 就是我们传入什么输出的就是什么 像\n这种转义字符不会给识别出来,就当成普通字符
print(r"\ndsfsdaf\nsdfdsaf\t") # \ndsfsdaf\nsdfdsaf\t
print(R"\ndsfsdaf\nsdfdsaf\t") # \ndsfsdaf\nsdfdsaf\t
常见的转义字符
转义字符 | 描述 |
---|---|
\(在行尾时) | 续行符 |
\\ | 反斜杠符号 |
\’ | 单引号 |
\000 | 空格 |
\n | 换行 |
\t | 横向制表符 |
\r | 回车 |