day3运算符和分支作业

本文详细介绍了Python中的变量,包括重新赋值、同时定义多个变量及其底层逻辑,以及内存单位。接着讲解了数字运算符、比较运算符、逻辑运算符、赋值运算符及其优先级。此外,还阐述了程序的顺序执行和分支结构,如if单分支、双分支和多分支结构。文章最后提供了数据类型和运算符相关的作业,涵盖选择题、填空题、编程题和简答题,以巩固所学知识。
摘要由CSDN通过智能技术生成

【笔记】运算符

变量

1、重新赋值
a = 10  # 创建变量a,并赋值为10
print(a)

a = 100  # 重新给a赋值为100
print(a)

a = 'abc'  # 重新赋值一个其他类型的数据
print(a)
2、同时定义多个变量

2.1 变量名1 = 变量名2 = 变更名3 = …… = 数据

x = y = z = 10
print(x, y, z)
# 10 10 10

2.2 同时定义多个变量赋不同的值:

变量名1,变量名2,变更名3,…… = 数据,数据,数据

注意:= 后面的数据的个数必须和前面变量的个数保存一致

3、变量保存数据的底层逻辑

定义变量的时候会自动在内存中申请空间保存数据

原理: 定义变量的的会自动申请内存,内存的大小有数据的大小决定;

重新给变量赋值,会重新根据新的数据申请新的内存

补充:内存单位

位(bit)
1 字节(byte)= 8位
1kb = 1024字节
1Mb = 1024Mb
1Gb = 1024Mb
1Tb = 1024GB

运算符

数字运算符

数学运算符:+ 、- 、 、/ 、//(整除)、%(取余,取模)、* * ( 幂运算)

1、+ -、* 、/

Python中的+、-、*、/和数学中的+、-、×、÷的功能一样

2、//(整除)

x // y :求x除以y的商,商向小取整(找和小数相邻的两个整数中较小的一个)

print(5 // 2)   # 2
print(-5 // 2)   # -3

# 应用1:希望能整除的情况下商的整型
print(4 / 2)  # 2.0
print(int(4 / 2))  # 2
print(4 // 2)   # 2

# 应用2:去掉一个整数的地位数,保留高位数
num = 12345
print(num // 10)   # 1234
print(num // 100)  # 123

3、% 取余、取模

应用:去掉高位数,保留地位数
num = 12345
print(num % 10)   # 5
print(num % 100)  # 45

4、** —— 幂运算

x ** y ——求x的y次方
print(2 ** 3)   
# 8
print(5 ** 4)   
# 625
print(int(16 ** 0.5))   
# 4
print(2 ** -32)  
# 2.3283064365386963e-10

比较运算符:

比较运算符: >、<、==(等于)、!=(不等于)、>=、<=

注意1:所有的比较运算符的运算结果都是布尔值

print(10 > 30)   # False
print(10 < 30)   # True
print(10 == 30)   # False
print(10 == 10)   # True
print(10 != 10)    # False
print(10 >= 10)    # True
逻辑运算符

逻辑运算符: and(逻辑与运算)、or(逻辑或运算)、not(逻辑非运算)

单一条件: 如果下雨;如果温度高于35度

复合条件: 并且(要求多个条件同时成立)、或者(要求多个条件中只要有一个条件成立就行)

1、and -逻辑运算符

应用场景︰如果需要多个条件同时满足,就用and连接。相当于生活中的"并且"运算规则:条件1 and条件2
如果两个条件都成立结果是True,只要有一个不成立结果就是False
True and True —— True
False and True —— False
True and False —— False
False and False —— False

#练习:写条件判断num是否是大于10的偶数
num = 21
# 分析单一条件还是复合条件
# 所有的条件:大于10(num > 10);是偶数(num % 2 == 0)
# 分析连接方式:num > 10 and num % 2 == 0
print('num是否大于10的偶数:', num > 10 and num % 2 == 0)

# 条件判断是否能被3和7整除
num = 20
# 类型:复合
# 能被3整除(num % 3 == 0);能被7整除(num % 7 == 0)
print('num是否能被3和7整除:', num % 3 == 0 and num % 7 == 0)

2、or - 逻辑或

应用场景:如果要求多个条件中有一个条件成立就行,就用or连接;相当于 生活中的或者
运算规则:条件1 or 条件2 - 如果两个条件都不成立结果就是False,只要 有一个条件成立结果就是True

True or True    -    True
False or True   -    True
True or False   -    True
False or False  -    False
# 练习:判断year是否是闰年
"""
闰年分为世纪闰年和普通闰年两种:
世纪闰年:能被400整除的年 (year % 400 == 0)

普通闰年:能被4整除但是不能被100整除 ( year % 4 == 0 and year % 100 != 0)
        能被4整除: year % 4 == 0
        不能被100整除: year % 100 != 0
"""
year = 2000
print('year是否是闰年:', (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0))

3,not - 逻辑非

应用场景:对指定的条件进行否定(如果一个条件正向写情况很多很复杂,反向却非常简单,就可以将条件反向写再加not)
运算规则:not 条件

not True   -   False
not False  -   True

# 练习:判断num是否不能同时被3和7整除
num = 21
print('num是否不能同时被3和7整除:', not num % 21 == 0)
print('num是否不能同时被3和7整除:', num % 21 != 0)
赋值运算符

赋值运算符:=,+=,-=,*=,/=,%=,//=,**=

注意:所有赋值运算符都是用来给变量赋值的,所以赋值运算表达式没有

1.=

变量 = 数据 :将数据保存到变量中,变量既可以是已经定义的变量,也可以是没有定义过的变量

2.复合赋值运算符

变量 += 数据

先将变量取出来,然后和后面的数据进行加法运算,然后将计算结果再赋值给变量.

(变量必须是已经定义过的变量,并且里面保存的数据,可以和后面的数据进行加法运算)

a -= 5   # a = a - 5     a = 30 - 5 = 25
a *= 2   # a *= 2   25 * 2   a = 50
a %= 3   # 求余  a = a % 3   a = 50 % 3 = 2
print(a)
# 2

age = 19
print(age >= 18 and age <= 28)   # True

# 所有的赋值数据都是没有结果的,无法提供数据
# print(a = 10)   报错!
# print(age += 20) 报错!

运算符优先级

age = 19
print(age >= 18 and age <= 28)   # True

# 所有的赋值数据都是没有结果的,无法提供数据
# print(a = 10)   报错!
# print(age += 20) 报错!

分支结构

程序执行过程(顺序结构):

默认情况下,程序从上往下按顺序一条一条的执行,每一条语句都会执行并且只会执行一次。

print(10)
print(20)
print(30)
分支结构(if) - 让程序根据条件执行代码

1.if单分支结构
2.if双分支结构
3.if多分支结构

if单分支结构 : 如果xxx就xxx

(满足条件执行某个操作,条件不满足的时候这个操作就不执行)

语法:
if 条件语句:
    代码段
    
说明:
1 if  -  关键字;固定写法
2 条件语句  - 可以是任何有结果的表达式(比如:具体的数据、运算表达式、已经定义过的变量等,只有赋值语句不行);
                    一般将结果是布尔的表达式作为条件
3 : 固定写法(注意输入法问题)
4 代码段: 结构上,就是和if保持一个缩进的一条或者多条语句(至少一条!!!!!);
逻辑上,就是满足条件才会执行代码。
                    
执行过程:先判断条件语句是否成立(如果条件语句的结果不是布尔,就转换成布尔看是否是True),如果成立就执行代码段;条件不成立,代码段就不执行。

if双分支结构 - 如果xxx就xxx否则就xxx

(条件成立执行某个操作,不成立就执行另外一个操作)

"""
语法:
if 条件语句:
    代码段1(满足条件执行的代码)
else:
    代码段2(不满足条件执行的代码)
"""
# 练习:根据age的值打印成年或者未成年
age = 29
if age < 18:
    print('未成年')
else:
    print('成年')

# 练习:根据year的值打印'闰年'或者'平年'
year = 2004
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print('闰年')
else:
    print('平年')

【作业】

day3 数据类型和运算符作业

选择题

  1. print(100 - 25 * 3 % 4) 应该输出什么? ()

    A. 1

    B. 97

    C. 25

    D. 0

    答案:B

    理由 :25×3=75

    ​ 75÷4=18…3

    ​ 100-3=97

  2. 下列哪种说法是错误的()。

    A. 除字典类型外,所有标准对象均可以用于布尔测试

    B. 空字符串的布尔值是False

    C. 空列表对象的布尔值是False

    D. 值为0的任何数字对象的布尔值是False

    答案:A

  3. Python不支持的数据类型有()。

    A. char

    B. int

    C. float

    D. list

    答案:A

  4. (多选)n = 6784,以下能够获取到7 的方法有()。

    A. n / 1000 % 100

    B. n % 1000 / 100

    C. n // 100 % 10

    D. n // 10 % 100 // 10

    答案:C、D

    理由:选项A. 6784÷1000=6.784;6.784÷100=0…6.784

    ​ 选项 B. 6784÷1000=6…784;784÷100=7.84

    ​ 选项 C. 6784÷100=67.84,向小取整67;67÷10=6…7

    ​ 选项 D. 6784÷10=678.4,向小取整678;678÷100=6…78;
    78÷10=7.8,向小取整7

  5. 运行以下程序,当从键盘上输入12,运行结果是()。

    x = (input())
    print(type(x))
    
    

   A. `<class 'str'>`<br>

   B. `<class 'int'>`<br>

   C. `出错`<br>

   D. `class 'dict'`<br>

   答案:A

   理由:输入任何数据的类型都是字符串str

   

6. 下列表达式的运算结果是(  ) 。

   ```python
   a = 100
   b = False
   print(a * b > -1)

A. False

B. 1

C. 0

D.True

答案:D

理由:转化规则:False转化成0,True转化成1。

​ 所以这个程序是在判断100×0大于-1,0大于-1,结果为True

填空题

  1. 在Python中表示空类型的是(None)。

  2. 查看变量中数据的类型的函数名是(type())。

  3. 已知x = 3 == 3,执行结束后,变量x的值为(True)。

    理由:要先进行比较运算“3 == 3”,结果为True,再把True赋值给X

  4. 已知 x = 3,那么执行语句 x += 6 之后,x的值为(9)。

  5. 表达式 3 ** 2 的值为(9),表达式 3 * 2的值为(6),表达式 4 ** 0.5 的值为(2.0)。

编程题

  1. 写出判断一个数是否能同时被3和7整除的条件语句, 并且打印对应的结果。

    例如:输入 21 打印 True, 输入 9 打印 False。
    num = int(input('请输入一个数:'))
    print(num % 3 == 0 and num % 7 == 0)
    # 请输入一个数:21
    # True
    
    # 请输入一个数:9
    # False
    
  2. 写出判断一个数是否能够被3或者7整除,但是不能同时被3或者7整除的条件语句, 并且打印对应的结果。

    例如:输入 14 打印 True, 输入 4 打印 False, 输入 21 打印 False。
    
    num = int(input('请输入一个数:'))
    print((num % 3 == 0 or num % 7 == 0) and (not(num % 3 == 0 and num % 7 == 0)))
    
    # 请输入一个数:14
    # True
    # 请输入一个数:4
    # False
    # 请输入一个数:21
    # False
    
  3. 输入年,写代码判断输入的年是否是闰年,并且打印对应的结果 。(是闰年的条件: 能被4整除但是不能被100整除或者能够被400整除的年)

    例如:输入 2020 打印 True, 输入 2011 打印 False
    
    year = int(input('请输入年份:'))
    print((year % 4 == 0 and year % 100 != 0) or (year % 400 == 0))
    
    # 请输入年份:2020
    # True
    # 请输入年份:2011
    # False
    
  4. 假设今天的上课时间为15678秒,编程计算今天上课时间是多少小时,多少分钟,多少秒;以‘XX时XX分XX秒’的方式表示出来。

    例如: 时间 67 秒  —> 017 秒
    
    time = int(input('请输入时间:'))
    hour = time // 3600
    minute = time % 3600 // 60
    second = time % 3600 % 60
    print(hour,'时',minute,'分',second,'秒',sep = '')
    
    # 请输入时间:15678
    # 4时21分18秒
    
  5. 定义两个变量保存一个人的身高和体重,编程实现判断这个人的身材是否正常!

    公式: 体重(kg)/身高(m)的平方值 在18.5 ~ 24.9之间属于正常。

    例如: 输入体重: 55, 输入身高:1.55, 输出: 正常或者不正常
    height = float(input('请输入身高:'))
    weight = int(input('请输入体重:'))
    index = weight / (height ** 2)
    print( 18.5 <= index <= 24.9)
    
    # 请输入身高:180
    # 请输入体重:100
    # False
    

简答题

  1. 写出你对今⽇日授课内容中有疑问的地⽅方(或者觉得有困难的知识点)。

​ 无

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值