P30 数据类型转换 2024/8/6

一、问题引入

image-20240806163513914

n1 = 100
result = "n1的值为:" + n1
print(result)
  • 很明显是不可以的,直接就报错了

image-20240806163843667

二、隐式类型转换

  1. Python变量的类型不是固定,会根据变量当前值在运行时决定的,可以通过内置函数type(变量)来查看其类型,这种方式就是隐式转换,有的书也称为自动转换。

image-20240806164435905

image-20240806164643566

  1. 在运算的时候,数据类型会向高精度自动转换

image-20240806165736363

三、显式类型转换

1、如果需要对变量数据类型进行转换,只需要将数据类型作为函数名即可,这种方式就是显示转换**/强制转换**

2、以下几个内置的函数可以完成数据类型之间的转换。函数会返回一个新的对象/值,就是强制转换后的结果

image-20240806170123184

# 显式类型转换案例

i = 10
j = float(i)
print("j的类型",type(j), "j的值", j)

k = str(i)
print("k的类型",type(k), "k的值", k) # str ,"10"

image-20240806170923517

四、显式类型转换的注意事项

1、不管什么值的int,float都可以转成**str, str(x)**将对象转换为字符串(Python中一切皆为对象)

n1 = 100
n2 = 123.65
print(str(n1)) # 100
print(str(n2)) # 123.65

2、int转成float时,会增加小数部分,比如123->123.0,float转成int时,会去掉小数部分。比如:123.65->123

n1 = 100
n2 = 123.65
print(float(n1)) # 100.0
print(int(n2)) # 123

3、str转int,float使用int(x)float(x)将对象×转换为int/float

n3 = "12.3"
print(float(n3))
print(int(n3)) # 有小数点是无效的
# ValueError: invalid literal for int() with base 10: '12.3'

4、在将str类型转成基本数据类型时,要确保str值能够转成有效的数据,比如我们可以把"123”,转成一个整数,但是不能把"hello”转成一个整数,如果格式不正确,程序会报 ValueError,程序就会终止。

n4 = "hello"
print(float(n4))
# ValueError: could not convert string to float: 'hello'

5、对一个变量进行强制转换,会返回一个数据/值,注意,强制转换后,并不会影响原变量的数据类型(即:不会影响原变量指向的数据/ 值的数据类型)

image-20240807081828430

i = 10
j = float(i)

print("i的值为:",i,"类型为:",type(i))
print("j的值为:",j,"类型为:",type(j))

image-20240807082803088

五、课堂练习

image-20240807082913661

# @Author :zjc
# @File   :13_type_change_exercise.py
# @Time   :2024/8/7 8:29

i = 10
j = float(i)

print(type(i)) # int
print(type(j)) # float

i = j + 1
print(type(i)) # float
print(type(j)) # float

print(i)  # 11.0
print(int(i)) # 11
print(type(i)) # float

P31 本章作业 2024/8/7

image-20240807084811928

image-20240807084838922

image-20240807085643752

# @Author :zjc
# @File   :14_homework_01.py
# @Time   :2024/8/7 8:51

name = "jack"
age = 20
score = 90.2
gender = "男"
hobby = "打篮球"

# 按照规定的格式输出信息
print("姓名\t\t年龄\t\t成绩\t\t性别\t\t爱好\n" + name + "\t"
      + str(age) + "\t\t" + str(score)
      + "\t"+ gender + "\t\t" + hobby)

P32 本章小结 2024/8/7

image-20240807091745907

image-20240807091805856

P33 算术运算符讲解 2024/8/8

一、运算符介绍

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较

  1. 算术运算符
  2. 赋值运算符
  3. 比较运算符
  4. 逻辑运算符
  5. 位运算符[二进制基础]

1、算术运算符是对数值类型的变量进行运算的,在程序中使用的非常多

image-20240808165513466

代码演示

# @Author :zjc
# @File   :01_arithmetic_operator.py
# @Time   :2024/8/8 17:06

# 算术运算符的演示

# / , // , % , **

# 1. 对于除数返回的结果是小数
print(10 / 3)  # 3.3333333333333335

# 2. 对于取整数 //,返回商的整数部分(并且是向下取整)
print(10 // 3)  # 3
print(10 // -3)  # -4

# 3. 取模%,当对一个数取模的时候,对于的运算公式是:a % b = a - a // b * b
print(10 % 3)

print(-10 % 3)  # 2
# -10-(-10) // 3 * 3= -10-(-4)*3=-10-(-12)=2
print(10 % -3)  # -2
# 10-10 // (-3) * (-3)=10-(-4)*(-3)=10-12=2
print(-10 % -3)  # -1
# -10-(-10) // (-3) * (-3) = -10+9=-1

# 4. 幂运算
print(2 ** 5) # 32

P34 算术运算符练习 2024/8/12

一、练习

1、假如还有97氏放假,问:合xx个星期零天?

# @Author :zjc
# @File   :02_arithmetic_exercise.py
# @Time   :2024/8/12 11:12

# 1、假如还有97氏放假,问:合xx个星期零天?
'''
    思路分析:
    1. 定义变量
    days:记录总的天数
    week:记录对应的星期
    left_day:记录剩余的天数
'''
days = 97
week = days // 7
left_day = days % 7
print(f"{days}天,还有{week}个星期,剩余{left_day}天")
print("%d个星期%d天" % ((97 / 7), (97 % 7)))

2、定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为:5/9*(华氏温度-100),请求出华氏温度对应的摄氏温度。[234.5]

# 2、定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为:5/9*(华氏温度-100),
# 请求出华氏温度对应的摄氏温度。[234.5]
"""
    1.直接套用公式即可,定义变量hua_shi,she_shi
"""
hua_shi = 234.5
she_shi = 5 / 9 * (hua_shi - 100)
print(f"华氏温度{hua_shi},摄氏温度{she_shi}")
print("华氏温度%.2f,摄氏温度%.2f" % (hua_shi, she_shi))

P35 比较运算符 2024/8/13

一、基本介绍

比较运算符的结果要么是True,要么是False
比较表达式经常用在if结构的条件,为True就执行相应的语句,为False就不执行

image-20240813112557710

案例演示

# @Author :zjc
# @File   :03_compare_operator.py
# @Time   :2024/8/13 11:30

a = 9
b = 8

print(a > b) # true
print(a <= b) # F
print(a != b) # T
# 表示将a > b的结果,赋给flag
flag = (a > b)
print(a is b) # F
print(a is not b)  # T
  • 会出现这么一种情况:a==b为True,但是a is b为False

image-20240813114348990

二、使用细节

1、比较运算符的结果要么是True,要么是False

2、比较运算符组成的表达式,我们称为比较表达式,比如: a >b

3、比较运算符**==不能误写成=**

P36 逻辑运算符 2024/8/13

一、基本介绍

-逻辑运算也被称为布尔运算

-逻辑运算符一览表

image-20240813151433178

代码演示:

# @Author :zjc
# @File   :04_bool_operator.py
# @Time   :2024/8/13 15:25

a = 10
b = 20

print(a and b)  # 20
print(a or b)  # 10
print(not (a and b))  # False

二、案例演示

  1. and 案例
# @Author :zjc
# @File   :05_and_operator.py
# @Time   :2024/8/13 15:34

# 案例
# and运算符的使用
# #定义一个成绩变量
score = 70

# 判断成绩是否在60-80之间
if (score >= 60 and score <= 80):
    print("成绩还不错~")

注意事项

  1. and是种"短路运算符",只有当第一个为True时才去验证第二个
  2. 在Python中,非0被视为真值,0值被视为假值
  1. or运算符
# @Author :zjc
# @File   :06_or_operator.py
# @Time   :2024/8/13 17:50

# or运算符的使用
# 定义一个成绩变量
score = 60
# 判断成绩是否<=60或者>= 80
if score <= 60 or score >= 80:
    print("hi~")

注意事项

1、or是一种"短路运算符",只有当第一个为False时才去验证第二个(换言之,如果第一个为True,就直接返回第一个的值)

2、再次提醒:在Python中,非0被视为真值,0值被视为假值

3、not运算符

# @Author :zjc
# @File   :07_not_operator.py
# @Time   :2024/8/14 8:46

# 代码
a = 3
b = not (a > 3)  # True
print(b)  # True
print(not False)  # True
print(not True)  # False
print(not 0)  # T
print(not "jack")  # F
print(not 1.88)  # F
print(not a)  # F

P37 赋值运算符 2024/8/14

一、基本介绍

-赋值运算符就是将某个运算后的值,赋给指定的变量

-赋值运算符一览

image-20240814085835183

代码演示

# @Author :zjc
# @File   :08_assign_operator.py
# @Time   :2024/8/14 9:00

# 1.赋值运算符案例

num1 = 10
i = 100
i += 100  # i = i+100
print("i=", i)
i -= 100
print("i=", i)
i *= 2
print("i=", i)

# 2. 有两个变量,a和b,要求将其交换,最终打印结果
a = 30
b = 40
print(f"没有交换前a={a},b={b}")
"""
    分析:
    1. 先定义一个中间变量temp
    2. temp = a 先把a的值保存到temp
    3. a = b 把b的值赋值给a
    4. b = temp 把temp的值赋给b
"""
t = a
a = b
b = t
print(f"交换后a={a},b={b}")

  • Python中支持一个简单的方式实现变量交换
"""
    在python中支持一个简单的方式实现变量交换
    x,y = y,x
"""

print(f"没有交换前a={a},b={b}")
a, b = b, a
print(f"交换后a={a},b={b}")

image-20240814092610375

思考题

  • 有两个变量, a和b,要求将其进行交换,动动脑筋。要求不使用前面老师讲过两种方式完成。
# @Author :zjc
# @File   :09_assign_class_operator.py
# @Time   :2024/8/14 9:38

a = 25
b = 80
print(f"交换前a={a},b={b}")
a = a + b # 105
b = a - b # 25
a = b - a # 80
print(f"交换后a{a},b={b}")

二、赋值运算符特点

1、运算顺序从右往左num = a +b +c

2、赋值运算符的左边是变量,右边可以是变量、表达式、字面量,比如

num1 = 20
num2 = 78 * 34 - 10
num3 = a
num4 = a * b

P38 三元运算符 2024/8/14

一、基本语法

  • Python是一种极简主义的编程语言,它没有引入?:这个运算符,而是使用if else关键字来实现相同的功能
  • -语法是:max = a if a>b else b
  1. 如果a>b成立,就把a 作为整个表达式的值,并赋给变量max

  2. 如果a>b不成立,就把b作为整个表达式的值,并赋给变量max

代码演示

  • 1、使用前面的方式,得到2个数的最大值
# @Author :zjc
# @File   :010_ternary_operator.py
# @Time   :2024/8/14 10:01

# 请使用前面的方式,得到两个数的最大值

a = 10
b = 80
max = a if a > b else b
print(max)
  • 2、请使用前面讲的if-else方式,得到3个数的最大值
# @Author :zjc
# @File   :011_ternary_operator_exercise.py
# @Time   :2024/8/14 22:44

a = 50
b = 100
c = 70
"""
    思路分析:
    1. a,b,c三个数
    2. 先求出a,b的最大值 max1
    3. 在求出 max1 和 c的最大值
"""
max1 = a if a > b else b
max2 = max1 if max1 > 1 else c
# 也可以使用一条语句成功,但是可读性较差(不推荐)
# max = c if (a if a > b else b) < c else (a if a > b else b)
print("max2=",max2)

P39 运算符优先级 2024/8/15

-运算符有不同的优先级,所谓优先级就是表达式的运算顺序

-如图(后面),上一行运算符优先于下一行

一、优先级示意图

image-20240815085258179

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部