python数据类型转换&运算符与if结构

一、Python数据类型转换

1、Python数据类型的转换方法

函数 说明
int(x [,base ]) 将x转换为一个整数
float(x) 将x转换为一个浮点数
complex(real [,imag ]) 创建一个复数,real为实部,imag为虚部
str(x) 将对象 x 转换为字符串
repr(x) 将对象 x 转换为表达式字符串
eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s) 将序列 s 转换为一个元组
list(s) 将序列 s 转换为一个列表
chr(x) 将一个整数转换为一个Unicode字符
ord(x) 将一个字符转换为它的ASCII整数值
hex(x) 将一个整数转换为一个十六进制字符串
oct(x) 将一个整数转换为一个八进制字符串
bin(x) 将一个整数转换为一个二进制字符串

2、总结

数据类型转换方法一共学了4个方法:

int() :转整型

float() :转浮点类型

str() :转字符串类型

eval() :把字符串转换为原数据类型

但是要特别注意:当float浮点类型转换为int整型时,其小数点后面的数据会丢失,一定要记住这个特性。

二、Python运算符

1、算术运算符

所谓的算数运算符就是我们日常生活中的加减乘除等待。

运算符 描述 实例
+ 1 + 1 输出结果为 2
- 1 - 1 输出结果为 0
* 2 * 2 输出结果为 4
/ 10 / 2 输出结果为 5
// 整除 9 // 4 输出结果为 2
% 取余(取模) 9 % 4 输出结果为 1
** 幂指数 2 ** 4 输出结果为 16,即2的4次方,2 * 2 * 2 * 2
() 小括号 小括号用来提高运算优先级,即 (1 + 2) * 3 输出结果为 9

2、赋值运算符

运算符 描述 实例
= 赋值 将=右侧的结果赋值给等号左侧的变量

3、复合赋值运算符

复合赋值运算符的计算顺序 = 先执行算术运算符,执行完毕后,把结果在赋值给左边的变量。

案例:综合案例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
i = 1
# 相加并赋值,先加1,然后把结果赋值给左边的变量
i += 1
print(f'更新后,i的值为:{i}')

num1 = 9
# 取模并赋值,先求余数,然后在把结果赋值给左边的变量
num1 %= 2
print(f'更新后,num1的值为:{num1}')

num2 = 2
# 幂指数并赋值,先求幂指数,然后把结果赋值给左边的变量
num2 **= 3
print(f'更新后,num2的值为:{num2}')

4、比较运算符

特别注意:当我们使用比较运算符对两个变量进行比较时,其返回一个布尔类型的值。

案例:两个数大小的比较

1
2
3
4
5
6
7
8
9
num1 = 10
num2 = 20

print(num1 > num2)  # False
print(num1 < num2)  # True
print(num1 >= num2) # False
print(num1 <= num2) # True
print(num1 == num2) # False
print(num1 != num2) # True

5、逻辑运算符(与或非)

image-20210307144233542

not就是取反,只有一个表达式not 表达式,如果表达式为True,则not以后就返回False。反之,则返回True。 = 1

6、扩展:短路运算

1
2
3
print(3 and 4 and 5)  # 5
print(5 and 6 or 7)   # 6
4 > 3 and print('hello world')  # 输出hello world

在逻辑运算中,不一定逻辑运算符的两边都是纯表达式。也可以是数值类型的数据。

Python把0、空字符串和None看成 False,其他数值和非空字符串都看成 True,所以:

① 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。

1
2
print(3 and 4)  # 4
print(0 and 1)  # 0

② 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。 所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。

1
2
print(6 or 7)  # 6
print(6 and 7 or 8)  # 7

7、运算符的优先级

什么是运算符的优先级?其实我们小学就已经接触过了,就是在一个表达式中,我们先算谁的问题。

先算乘除,后算加减,有括号的先算括号里面的。

image-20210307153001187

建议:

① 不要把一个表达式写得过于复杂,如果一个表达式过于复杂,尝试把它拆分来书写

② 不要过于依赖运算符的优先级来控制表达式的执行顺序,这样可读性太差,应尽量使用( )来控制表达式的执行顺序

三、if选择判断结构

1、if选择判断结构的基本语法

1
2
3
4
if 条件判断:
    则执行某段代码... 
    
print()

2、if选择结构

image-20210307161204181

3、if…else…结构

基本语法:

1
2
3
4
if 条件判断:
    当条件判断为True时则执行这个语句段
else:
    当条件判断为False时则执行这个语句段

if…else…结构原理图:

image-20210307162555060

4、if…elif…else多条件判断结构

如果条件1成立,则执行语句段1

如果条件2成立,则执行语句段2

当所有条件都不成立时,则执行else语句段中的内容

1
2
3
4
5
6
7
8
if 条件判断1:
    如果此条件为True则执行这个语句段
elif 条件判断2:
    如果此条件为True则执行这个语句段
elif ...:
    ...
else:
    如果以上所有条件判断都不满足时则执行这个语句段

简写形式:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 定义一个变量,接收用户输入的年龄
age = int(input('请输入您的年龄:'))
if age < 18:
    print('你还是一个童工,回去好好学习')
elif 18 <= age <= 60:
    print('合法工龄,可以正常工作')
elif age > 60:
    print('您已经达到了退休年龄,回家好好休息')
else:
    print('信息输入有误,请重新输入')

if多重条件判断原理图:

image-20210307165907589

5、if嵌套结构

基本语法:

1
2
3
4
5
6
if 外层条件判断:
    # 如果条件为True,则执行以下语句段
    if 内层条件判断:
        # 如果内层条件为True,则执行以下语句段
else:
    # 如果条件为False,则执行以下语句段

嵌套结构看起来异常复杂,但是我们在编写时要遵循一个原则:先编写外层判断,所有语句编写完成后,在编写内层条件判断结构。

四、三目运算符

1、三目运算符

在Python中三目运算符也叫三元运算符,其主要作用:就是用于简化if…else…语句。

2、基本语法

1
2
3
4
if 条件判断:
    # 语句段1
else:
    # 语句段2

转换为三目运算符:

1
语句段1 if 条件判断 else 语句段2