类型转换
- 所谓的类型转换,将一个类型的对象转换为其他对象。
- 类型转换不是改变对象本身的类型,而是将对象的值转换为一个新的对象。根据当前对象的值创建一个新对象。
- 类型转换的四个函数
- int()
- int() 可以用来将其他的对象转换为整型
- int()函数不会对原来的变量产生影响,它是将其对象转换为指定的类型并将其作为返回值返回。
- 如果希望修改原来的变量,则需要对变量进行重新赋值。
- 规则:
- 布尔值:True——1,False——0
- 浮点数:直接取整,省略小数点后的内容
- 字符串:合法的整数字符串,直接转化为对应的数字。如果不是一个合法的字符串,则会报错ValueError。
- 如果对于其他不可转换为整型的对象,直接抛出异常ValueError。
- float()
- float()和int()基本一致,不同的是它会将对象转换为浮点数。
- str()
- 可以将我们的对象转换为字符串
- bool()
- 可以将我们的对象转换为布尔值
- 任何对象都可以转换为布尔值
- 规则:
- 对于所有表示空性的对象都会转换为False,其余的转换为True
- 哪些表示空性?
- 0、None、’ '…(不可变对象)
- int()
运算符(操作符)
- 运算符可以对一个值或多个值进行运算或各种操作。
- 比如:+、-、= 都属于运算符
- 运算符的分类:
- 算数运算符
- 加法运算符 + (如果是两个字符串之间进行加法运算,则会进行拼串操作)
- 减法运算符 - (不支持字符串,出现TypeError错误)
- 乘法运算符 * (如果将字符串和数字相乘,则会对字符串进行复制操作,将字符串重复指定次数)
- 除法运算符 / (运算结果总会返回一个浮点数类型,除数不能为0)
- 整除 // (只会保留计算后的整数位,总会返回一个整型)
- 幂运算 ** (求一个值的几次幂 a=2 ** 2 a = 4,b = 2 ** 3 b = 8,c = 4 ** 0.5 c = 2)
- 求模运算 % (求余数,取模,求两个数相除的余数)
- 赋值运算符
- = 可以将等号右侧的值赋值给等号左侧的变量
- += (a += 5 相当于 a = a + 5)
- -= (a -= 5 相当于 a = a - 5)
- *= (a *= 5 相当于 a = a * 5)
- **=(a **= 5 相当于 a = a ** 5)
- /=(a /= 5 相当于 a = a / 5)
- //=(a //= 5 相当于 a = a // 5)
- %=(a %= 5 相当于 a = a % 5)
- 在对浮点数做算数运算时,结果也会返回一个浮点数。
- 比较运算符(关系运算符)
- 关系运算符用来比较两个值之间的关系,总会返回一个布尔值。
- 如果关系成立,返回True,否则返回False.
- < 、> (比较两侧的值的大小)
- <=、>= (比较两侧的值的大小)
- == (比较两个对象的值是否相等)
- != (比较两个对象的值是否不相等)
- 相等和不相等比较的是对象的值,而不是id,如果要比较id,使用 is 或 is not。
- 在Python中可以对两个字符串进行大于(等于)或小于(等于)的运算。
- 当对字符串进行比较时,实际上比较的是字符串的Unicode编码。
- 比较两个字符串的Unicode编码时,是逐位比较的。
- 利用该特性可以对字符串按照字母顺序进行排序,但是对于我们中文来说意义并不是太大。
- 注意:如果不希望比较两个字符串的Unicode编码,则需要将其转换为数字然后再比较。
- 逻辑运算符
- 逻辑运算符主要用来做一些逻辑判断。
- 逻辑运算符一般有三个:
- not 逻辑非
- not可以对符号右侧的值进行非运算。
- 对于布尔值,非运算会对其进行取反操作,True变False,False变True。
- 对于非布尔值,非运算会先将其转换为布尔值,然后再取反。
- and 逻辑与
- and可以对符号两侧的值进行与运算。
- 只有在符号两侧的值都为True时,才会返回True,只要有一个False就都返回False。(相当于爱情)
- 与运算是找False的。
- Python中的与运算是短路的与,如果第一个值为False,则不再看第二个值。
- or 逻辑或
- or可以对符号两侧的值进行或运算。
- 或运算与与运算正好相反。
- 非布尔值的逻辑运算符(与或运算)
- 当我们对非布尔值进行与或运算时,Python会将其当做布尔值进行运算,最终会返回原值。
- not 逻辑非
- 条件运算符(三元运算符)
- 条件运算符的语法:语句1 if 条件表达式 else 语句2
- 执行流程:条件运算符在执行时,回先对条件表达式进行求值判断。
- 如果判断结果为True,则执行语句1,并返回执行结果。
- 如果判断结果为False,则执行语句2,并返回执行结果。
- 例:a = 40 b = 20 c = 30,通过条件运算符获取三个值中的最大值。
- #max = a if a > b else b
- #max = max if max > c else c
- max = a if a > b and a > c else b if b > c else c
- print(max)
- 算数运算符
运算符的优先级
- 和数学运算一样,先乘除后加减。
- 优先级一样高 and高 or高 ,与运算的优先级比或的优先级高。
- 表格越往下优先级越高
- 关于优先级的表格,不需要记忆。如果遇到优先级不清楚的,则可以运用小括号。
- 逻辑运算符(补充)
- 逻辑运算符可以连着使用