目录
1、变量
变量名 = 变量值,=左右都要有空格
python中是可以一行定义多个变量的
# 多个变量的值相同
num1 = num2 = num3 = 7
# 多个变量的值不同,元组赋值
a, b = 1, 2
变量修改时,不仅可以修改为同类型的,也可以修改为不同类型的
money = 10
print(money)
# 从整型修改成了字符串
money = '10元'
print(money)
python中的常量实际上是一个变量,只是会将其变量名大写,以表示这是常量,不要修改
# 圆周率
PI = 3.1415926
# 我的生日
MY_BIRTHDAY = '2022-9-9'
在python中定义变量是不需要指定类型的,我们可以使用type和isinstance来测试和判断数据类型
age = 10
name = 'hello'
print(type(age))
print(type(name))
print(isinstance(age, int))
print(isinstance(age, str))
2、数据类型
2.1 整型(int)
int表示整型
2.2 浮点数(float)
float表示浮点数
浮点数的运算可能会有四舍五入的误差,因为浮点数底层是使用二进制存储的,但误差非常小
n1 = 0.1
n2 = 0.2
print(n1 + n2)
结果是0.30000000000000004
可以使用round函数来获取更精确的值,round函数是用来进行四舍五入的
n1 = 0.1
n2 = 0.2
# round第一个参数是要进行四舍五入的值,第2个参数是要保留的位数
print(round(n1 + n2, 2))
结果是0.3
向上取整函数ceil与向下取整函数floor
这两个函数都在库math中,需要使用import来导入math库
import math
n1 = 15.36
n2 = 7.27
print(math.ceil(n1 + n2))
print(math.floor(n1 + n2))
结果是23 22
2.3 布尔类型(bool)
布尔类型的变量只有True、False
python中,能够解释为假的值有:None、0、0.0、False、所有的空容器(空列表、空元组、空字典、空集合、空字符串)
2.4 字符串(str)
字符串定义与简单操作
定义字符串的方式有
# 单引号定义字符串
str1 = 'hello'
# 定义空字符串
str2 = str()
# 双引号定义字符串
str3 = "world"
# 三引号字符串 多行字符串
str4 = '''hello
world'''
str5 = """hello
2024"""
定义一个有'的字符串
str1 = "It's a hat" # 使用""
str2 = 'It\'s a hat' # 使用转义字符
转义字符就是针对一些有特殊含义的字符,加了转义字符后,让编译器将它看成是普通字符
如果字符串中有”,也可以像上面一样两种方式,若一个字符串中既有"也有'。就只能加转义字符
字符串相加(拼接)
str1 = 'hello'
str2 = "world"
str3 = "2024"
print(str1 + str2 + str3)
结果是helloworld2024
字符串相乘
str1 = 'hello'
print(str1 * 3)
print(3 * str1)
print('@' * 7)
结果是
hellohellohello
hellohellohello
@@@@@@@
注意:字符串不能和整数相加,要先类型转换
字符串索引
字符串下标可以正着数从0开始,也可以倒着数从-1开始
str1 = 'hello'
print(str1[0], str1[-2])
结果是h l
字符串切片:一次获取字符串的多个字符
str1 = 'hello,world'
print(str1[0:4]) # 第一个参数是起始索引,默认是0,可不写
print(str1[0:9:1]) # 第二个参数是结束索引,默认是-1,可不写
print(str1[0:9:2]) # 第三个参数是指隔几个字符取一个。默认是1,可不写
是左闭右开的,结果是
hell
hello,wor
hlowr
字符串反转(利用切片)
str1 = '123456789'
print(str1[-1:-10:-1])
print(str1[::-1])
结果是987654321
利用切片来完成字符串反转不要使用正数的索引,1的下标是-9,结束索引就到-10,都让第二种更简单
3、类型转换
其他类型转换为整型
# 转换为整型
# str -> int,str必须为纯数字才能转,并且str中有小数点也不行
print(int(str("123")))
# 浮点数可以直接转int,bool也一样
print(int(77.7))
print(int(True)) # True转为1,False转为0
int()后面的基数是指将x当作几进制的数
# 将字符串'10'当成1个二进制的数,来转化成十进制,结果是2
print(int('10', 2))
其他类型转换为浮点型
# str -> float,str中必须为纯数字,并且有无小数点均可
print(float("123.456"))
# int可直接转为float,bool也一样
print(float(77))
print(float(True)) # True转为1.0,False转为0.0
其他类型转换为布尔类型
# str -> bool,str不为空就是True
print(bool("asd"))
# int -> bool,int不为0就是True,float与int是类似的
print(bool(1))
print(bool(0.0))
其他类型转换为字符串类型
# int和float直接转
print(str(123))
# bool -> str是'True'、'False'
print(str(True))