Python Day2 运算符的运用【零基础】

Day2 运算符

1. 变量

1.1 重新赋值

a = 10  # 创建变量a,并且赋值为10
print(a)

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

a = 'abc'  # 重新赋值给a其他类型数据
print(a)

10
100
abc

1.2 同时定义多个变量

1)同时定义多个变量赋予相同的值:变量名1 = 变量名2 = 变量名3 = … = 数据

x = y = z = 100
print(x, y, z)

100 100 100

2)同时定义多个变量赋予不同的值:变量名1, 变量名2, 变量名3, … = 数据1 , 数据2, 数据3, …
注意:= 后面数据的个数必须与前面变量的个数保持一致

m, n = 10, 20
print(m, n)

10 20

  • 练习:交换两个变量的值
a = 100
b = 200
# 方法一:
c = a
a = b
b = c
print(a, b)
# 方法二:
a = 100
b = 200
a, b = b, a
print(a, b)

200 100
200 100

1.3 变量保存数据的底层逻辑

定义变量的时候会自动在内存中申请空间保存数据
原理:定义变量的是会自动申请内存,内存的大小由数据的大小决定;重新给变量赋值,会重新根据新的数据申请新的内存。

1.4 补充:内存单位

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

2. 数学运算符

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

2.1 Python中的加减乘除 和 数学中的加减乘除的功能一样

# + - * /
print(5 + 2)
print(5 - 2)
print(5 * 2)
print(5 / 2)

7
3
10
2.5

2.2 //(整除)

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

print(5 // 2)
print(-5 // 2)

2
-3

  1. 应用1:希望能整除的情况下商是整型
print(4 / 2)       # 2.0
print(int(4 / 2))  # 2
print(4 // 2)      # 2
  1. 应用2:去掉(砍掉)一个整数的低位数,保留高位数
num = 2342
print(num // 10)  # 234
print(num // 100) # 23

2.3 %(取余/取模)

x % y - 求x除以y的余数

print(5 % 2)   # 1
print(15 % 4)  # 3
  1. 应用1:判断两个数据之间的整除关系 - 判断余数是否为0
print(78 % 2)
  1. 应用2:去掉高位数,保留低位数
num = 277283
print(num % 10)   # 3
print(num % 100)  # 83
  • 练习:获取任意一个正整数的十位数
# 方法一:
num = 8271
print(num % 100 // 10)
# 方法二:
num = 8271
print(num // 10 % 10)

7
7

3.4 幂运算

# x ** y - 求x的y次方
print(2 ** 3)
print(2 ** 4)
print(2 ** 0.2)
print(2 ** -1)

8
16
1.148698354997035
0.5
注:/的结果一定是浮点数,其他运算符的运算结果的类型和运算对象有关

print(10 + 3.0)
print(2.5 * 2)
print(5 / 1)

4. 比较运算符

4.1 格式

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

print(30 > 50)   # False
print(30 < 50)   # True
print(30 <= 50)  # True
print(30 >= 50)  # False
print(30 == 50)  # False
print(30 != 50)  # True

4.2 注意一:

所有的比较运算符的运算结果都是布尔值(True/False)

age = 12
print('是否成年:', age > 18)
num = 89
print('是否是偶数:', num % 2 == 0)
print('是否是偶数:', num / 2 == 0)

是否成年: False
是否是偶数: False
是否是偶数: False

4.3 注意二:

Python的比较运算符支持连写表示范围

a = 2
print('a是否在0-1之间:', 0 <= a <= 1)

a是否在0-1之间: False

4.4 注意三:

不能像数学那样省掉 *

print(2a == 4)  # 报错!

5. 逻辑运算符

逻辑运算符:and(逻辑与运算)、 or(逻辑或运算)、 not(逻辑非运算)
单一条件:如果下雨;如果温度大于35度
复合条件:并且(要求多个条件同时成立)、或者(要求多个条件中只要有一个条件成立就行)

5.1 and - 逻辑与运算

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

'''
True and True   - True
True and False  - False
False and True  - False
False and False - False
'''
  • 练习:判断num是否是大于10的偶数
num = 34
# 分析条件的类型:是单一条件还是复合条件
# 所有的条件:大于10(num > 10)、偶数(num / 2 == 0)
# 分析连接方式:要求同时成立(and)、成立其一(or)
print('num是否是大于10的偶数', num > 10 and num % 2 == 0)

num是否是大于10的偶数 True
练习:写条件判断num是否能同时被3和7整除

num = 34
# 类型:复合
# 能被3整除:num // 3 == 0;能被7整除:num // 7 == 0
# 链接方式:and
print('num是否能同时被3和7整除:', num // 3 == 0 and num // 7 == 0)
print('num是否能同时被3和7整除:', num // 21 == 0)

num是否能同时被3和7整除: False
num是否能同时被3和7整除: False

5.2 or - 逻辑或

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

'''
True or True   - True
True or False  - True
False or True  - True
False or False - False
'''
  • 练习:判断num是否能被3或者5整除
num = 23
# 能被3整除:num % 3 == 0
# 能被5整除:num % 5 == 0
# 或者:or连接
print('num是否能被3或者5整除:', num % 3 == 0 or num % 5 == 0)

num是否能被3或者5整除: False

  • 练习:判断一年是否是闰年
year = 2022
# 闰年分为世纪闰年,普通闰年两种:
# 世纪闰年:能被400整除的年 - year % 400 == 0
# 普通闰年:能被4整除但不能被100整除的年 - year % 4 == 0 and year % 100 != 0
#         能被4整除:year % 4 == 0
#         不能被100整除:year % 100 != 0
# 连接:or
print('year年是否是闰年:', year % 400 == 0 or year % 4 == 0 and year % 100 != 0)

year年是否是闰年: False

5.3 not - 逻辑非

应用场景:对指定的条件进行否定(如果一个条件正向写很复杂,反向却很简单,那就先写反向,再加not)
运算规则: not 条件

'''
not True  - False
not False - True
'''
age = 19
# 年龄大于18
print(not age > 18)
print(age <= 18)

False
False

# 判断num不是偶数
num= 3745
print('num是否不是偶数:', not num % 2 == 0)
print('num是否不是偶数:', num % 2 != 0)

num是否不是偶数: True
num是否不是偶数: True

  • 练习:判断num是否不能同时被3和7整除
num = 23
print('num是否不能同时被3和7整除:', num % 21 != 0)

num是否不能同时被3和7整除: True

6. 赋值运算符

6.1 格式

赋值运算符:=、 +=、 -=、 *= 、 /=、 %=、 //=、 **=
注意:所有赋值运算符都是用来给变量赋值的

6.2 = - 独立的赋值运算符

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

6.3 复合赋值运算符

变量 += 数据 - 先把变量中的数据取出来和后面的数据进行加法运算,将结果再赋值给变量(变量必须是已经定义过的变量,并且保存的数据可以和后面的数据进行加法运算)
注意:所有赋值运算符都是用来给变量赋值的,赋值运算语句没有结果

a = 20
a += 10
a -= 5
a *= 2
a %= 3
print(a)   # 2

print(10 + 20)   # 30
print(10 > 20)   # False

age = 19
print(age >= 18 and age <= 30)   # True
# print(a = 10)  # 报错!
# a = (b = 1)    # 报错!

7. 运算符的优先级

如果一个表达式中有多种运算符,谁的优先级高就先算谁
1.数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低的)
2.不同的数学运算符的优先级和数学一样。(** > *、/、%、// > +、-)
3.有括号先算括号里面的 - ()

8.分支结构

8.1 程序执行的过程(顺序结构)

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

print(10)
print(20)
print(30)

10
20
30

8.2 分支结构(if)

让程序根据条件执行代码
if单分支结构
if双分支结构
if多分支结构
1 . if单分支结构 - 如果xxx就xxx(满足条件执行某个操作,条件不满足的时候这个操作就不执行)

语法:
if 条件语句:
    代码段

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

执行过程:先判断条件语句是否成立(如果条件语句的结果不是布尔,就转换成布尔看是否是True),如果成立就执行代码段;条件不成立,代码段就不执行。
2 . if双分支结构 - 如果xxx就xxx否则就xxx(条件成立执行某个操作,不成立就执行另外一个操作)

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

已成年

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

是闰年

练习

选择题

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

    A. 1

    B. 97

    C. 25

    D. 0

    解析:答案B,根据优先级计算即可

  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

    解析:答案CD(整除和除以及取余需要多加理解)

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

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

    A. <class 'str'>

    B. <class 'int'>

    C. 出错

    D. class 'dict'

    解析:答案A

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

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

    A. False

    B. 1

    C. 0

    D.True

    解析:答案D,False为0,代入计算即可

填空题

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

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

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

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

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

编程题

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

请输入一个整数:21
True

请输入一个整数:9
False

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

请输入一个整数:14
True

请输入一个整数:4
False

请输入一个整数:21
False

  1. 输入年,写代码判断输入的年是否是闰年,并且打印对应的结果 。(是闰年的条件: 能被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

  1. 假设今天的上课时间为15678秒,编程计算今天上课时间是多少小时,多少分钟,多少秒;以‘XX时XX分XX秒’的方式表示出来。
   例如: 时间 67 秒  —> 017 秒
       
   time = 15678
   hour = time // 3600
   minute = time % 3600 // 60
   second = minute % 60
   print('时间', time, '秒为', hour, '时', minute, '分', second, '秒', sep='')

时间15678秒为4时21分21秒

  1. 定义两个变量保存一个人的身高和体重,编程实现判断这个人的身材是否正常!

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

   例如: 输入体重: 55, 输入身高:1.55, 输出: 正常或者不正常
               
   weight = int(input('请输入您的体重(kg):'))
   height = float(input('请输入您的身高(m):'))
   value = weight / (height ** 2)
   if 18.5 <= value <= 24.9:
       print('体重正常')
   else:
       print('体重不正常')

请输入您的体重(kg):70
请输入您的身高(m):1.78
体重正常

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值