day-3 Python中的变量和运算符及if分支结构

2021/10/13 20:14:28

本文主要是介绍day-3 Python中的变量和运算符及if分支结构,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Python中的变量和运算符及if分支结构

1.变量

1)同时定义多个变量

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

```python
x = y = z = 0
print(x, y, z)
```

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

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

name, age, gender = '小明', 18, '男'
print(name, age, gender)
x, y, z = 4, 6, 8
print(x, y, z)

2.变量重新赋值

重新给变脸赋值以后,使用变量时是变量中最新的值

score = 100
print(score)
score = 95
print(score)
score = '万璐'
print(score)
### 3.Python定义变量和重新给变量赋值的原理

Python在定义变量的时候会申请内存保存数据,内存申请多大看被保存的数据需 要多大。

重新给变量赋值的时候,会申请新的内存,新的内存的大小由新的数据大小决定,然后变量会和新的内存联系,原来的内存会自动销毁

内存单位:bit(位) 1byte(字节)=8位 1kb=1024字节 1MB=1024kb 1G=1024MB

1TB=1024G

id(变量) - 获取变量对应的内存地址

num = 100
print(id(num))
num = 2000
print(id(num))

2.数字运算符:+,-,*,/, %, //, **

1.+, -, *, /和数学中的+, -, x, ÷的功能一模一样

注意:除法运算的运算结果是浮点型

print(10+20)
print(2-5)
print(2*5)
print(5/2)
print(4/2)

2.% - 取余(取模)

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

被除数÷除数 = 商…余数

被除数 = 除数 x 商 + 余数

print(10 % 3)
print(15 % 3)

应用一:判断两个数是否存在整除关系 - 判断两个数的余数是否为0

print(10 % 2)
print(25 % 5)

应用二:取整数的低位数

一个整数对10取余,能够获这个数的个位数

一个整数对100取余,能够获取这个数的后两位数

一个数对1000取余,能够获取这个数的后三位数

。。。。

num = 2346
print(num % 10)
print(num % 100)
print(num % 1000)

3.// - 整除(商向小取整)

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

应用场景:去掉低位数

num = 2342
print(num // 10)
print(num // 100)

练习:获取任意一个正整数的十位数

num = 5678
print(num % 100 // 10)
print(num // 10 % 10)
print(num % 1000 // 100)
print(num // 100 % 10)
num = 28293
print(num % 1000 // 100)
print(num // 100 % 10)
num = 38695
print(num // 100 % 10)
print(num % 1000 // 100)
num = 51698
print(num // 1000 % 10)
print(num % 10000 // 1000)

4.** - 幂运算

x ** y - 求x的y次方

print(8 ** 3)
print(1.3 ** 4)
print(9 ** 0.5)
print(2 ** 3)
print(8 ** (1/3))

5.比较运算符:>, <, ==, !=,(不等于),>=, <=

所有的比较运算符的运算结果都是布尔值

print(10 > 20)
print(10 < 20)
print(10 == 20)
# print(10 = 10)  # 错误
print(10 != 20)
print(10 >= 10)

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

x = 0.5
print(0 <= x <= 1)

6.逻辑运算符:and(逻辑与),or(逻辑或),not(逻辑非)

1.and

1)应用场景:用于需要多个条件同时满足的时候,相当于生活中的并且

2)运算规则:条件1 and 条件2 - 两个都是True结果才是True,只要有一个是False结果

就是False

True and True -> True

False and True -> False

True and False -> False

False and False -> False

练习:写出判断一个是否能同时被3和7整除的条件

num = 22
print(num % 3 == 0 and num % 7 == 0)
print(num % 21 == 0)

练习:判断指定数是否是能被3整除的偶数

num = 9
print(num % 3 == 0 and num % 2 == 0)
print(num % 6 == 0)

2.or

1)应用场景:用于需要多个条件只要有一个条件满足就行的时候,相当于生活中的

或者

2)运算规则:条件1 or 条件2 - 两个条件中只要有一个条件是True,结果就是True,两

个都是False的时候结果才False

条件1 or 条件2 or 条件3 …

练习1:判断指定数是否能被5或者7整除

nume = 35
print(num % 5 == 0 or num % 7 == 0)

练习2:判断指定的年是否是闰年

普通闰年 - 能被4整除但是不能被100整除的年:(yesr % 4 == 0 and year %400 != 0)

世纪闰年 - 能被400整除的年:(year % 400 == 0)

year = 2009
print('是否是闰年:', (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0))

3.not

1)应用场景:(对某一个条件进行否定)如果正向写条件情况很多很复杂,反向却很

简单的时候,条件就反向写再加not

2)规则: not 条件

not True - >False

not False - > True

num = 21
print(not num > 10)
print(num <= 10)

练习:写出判断一个数不能同时被3和7整除的条件

条件反写:

1.能被3整除但是不能被7整除:num % 3 == 0 and num % 7 !=0

2.能被7整除但是不能被3整除:num % 7 == 0 and num % 3 !=0

3.既不能被3整除也不能被7整除:num % 3 != 0 and num % 7 != 0

print((num % 3 == 0 and num % 7 !=0) or (num % 7 == 0 and num % 3 !=0) or (num % 3 !=0 and num % 7 != 0))
print(not num % 21 == 0)

7.逻辑运算符扩展

1.短路操作:

条件1 and 条件2

and的短路:如果条件1是False,那么条件2对应的代码不会执行

条件1 or 条件2

or的短路:如果条件1是True,那么条件2对应的代码不会执行

print(True and 100)    #100
print(False and 100)   #False

print(True or 100)     #True
print(False or 100)    #100

print(7 and 8)
print(7 or 8)

print(not 7)   #False
print(not 8)   #False
print(not 0)   #True

(记住!!!)重要结论;Python中任何类型的数据都可以转换成布尔(都要布尔值),其

中零值和空值是False,其他的都是True

print(bool(0), bool(0.0), bool(''), bool(None))
print(bool(8), bool(-2), bool(0.34), bool(-2.34), bool('abc'), bool(' '))

name = input('请输入姓名:')
if not name:
    pass

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

1)赋值运算符的作用不是计算出一个结果,而是将数据保存到变量中

2)所有赋值运算符的左边必须是变量

2.=

变量 = 数据

a = 10
a = 100
a += 10
print(a)
a -= 20
print(a)
a %= 4
print(a)

3.+=, -=, *=, /=, %=, //=, **=

变量 += 数据 - 将变量中保存的数据和+=后面的数据进行加法运算,将运算结果重新

赋值给前面的变量

注意:复合的赋值运算符前面的变量必须是已经赋值过的变量

强调:所有的赋值运算是没有结果的

print(10 + 20)
# print(a += 10)     # 报错

9.运算符的优先级

1.运算符优先级:数学运算符>比较运算符>逻辑运算符>赋值运算符(最低)

2.数学运算符中:** > *, /, //, %,> +, -

3.有括号先算括号里面的 - ()

result = 100 + 2 * 3 ** 2 > 20 * 10 - 3
print(result)

如果布尔数据参与数学运算,那么False就是0,True就是1

result = 100 + (10 > 20)
print(result)
result = 100 + True
print(result)
a = 100
b = False
                                   #                  

10.if分支结构

1.流程控制 - 程序执行方式

顺序结构(默认) - 代码从上往下一条一条的执行,每条语句执行一遍

分支结构

循环结构

2.if分支结构

1)if单分支结构 - 满足条件执行某个操作,条件不满足的时候就不执行

'''
语法:
if 条件语句:
	代码段
	
说明:
if - 关键字:固定写法
条件语句 - 任何有结果的表达式,包括:具体的数据,已经赋值过的变量,运算表达式(除了赋值语句)
:- 固定写法
代码段 - 从结构上是和if保持一个缩进(一般是一个制表符/tab)的一条或者         多条语句(至少一条)
        从逻辑上就是在满足条件才会执行的代码
      
执行过程:先判断条件语句是否成立,如果成立就执行代码,条件不成立代码
         段就不执行。
         注:如果条件语句的结果不是布尔,就将数据转换成布尔看结果是
         True还是False(所有的零值和空值都是False,其他的都是True)。
         
 '''
age = 18
if age >= 18:
    print('成年')
    print('可以进网吧!')
    
  

# 练习:根据指定的分数值,打印 '及格'
score = 83
if score >= 60:
    print('及格')

# 补充:布尔转换
print(bool(0), bool(0.0), bool(''), bool(None))     #  False False False False
print(bool(12), bool(-100), bool('a'), bool('False'))    #  True True True True

'''
语法:
if 条件语句:
    代码段1(满足条件执行的代码)
else:
    代码段2(不满足条件的时候执行的代码)
'''
# 练习:根据num的值打印'奇数'或者'偶数'
num = 23
if num % 2 == 0:
    print('偶数')
else:
    print('奇数')

# 方法二:
if num % 2:
    print('奇数')
else:
    print('偶数')

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

课后作业

选择题

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

    A. 1

    B. 97

    C. 25

    D. 0

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

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

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

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

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

  3. 下列表达式的值为True的是(B)。

    A. 3>2>2

    B. 1 and 2 != 1

    C. not(11 and 0 != 2)

    D. 10 < 20 and 10 < 5

  4. Python不⽀持的数据类型有(A)。

    A. char

    B. int

    C. float

    D. list

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

    A. n / 1000 % 100

    B. n % 1000 / 100

    C. n // 100 % 10

    D. n // 10 % 100 // 10

  6. 运⾏以下程序,当从键盘上输⼊12,运⾏结果是(A)。

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

    A. <class 'str'>

    B. <class 'int'>

    C. 出错

    D. <class 'dict'>

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

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

    A. False

    B. 1

    C. 0

    D. True

填空题

  1. 查看变量中数据的类型的函数名是(type)。
  2. 已知 x = 3 == 3 ,执⾏结束后,变量x的值为(True)。
  3. 已知 x = 3 ,那么执⾏语句 x += 6 之后,x的值为(9)。
  4. 表达式 3 ** 2 的值为(9),表达式 3 * 2 的值为(6),表达式 4 ** 0.5 的值为(2.0)。

编程题

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

    num = 25
    print(num % 2 == 0 and num % 5 ==0)
    
    
    
    
  2. 写出判断⼀个数是否能够被2或者5整除,但是不能同时被2或者5整除的条件语句, 并且打印对应

    的结果。

    num = 15
    print((num % 2 == 0 or num % 5 == 0) and not(num % 2 == 0 and num % 5 == 0))
    
    
    
    
  3. 假设今天的上课时间为15678秒,编程计算今天上课时间是多少⼩时,多少分钟,多少秒;以‘XX

    时XX分XX秒’的⽅式表示出来。

    例如:100秒表示成 0时1分40秒

    num = 15678
    a = num // 3600
    b = num % 3600 // 60
    c = num - a * 3600 - b * 60
    print(a, '时', b, '分', c, '秒')
    
    
    
    
  4. 定义两个变量保存⼀个⼈的身⾼和体重,编程实现判断这个⼈的身材是否正常!

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

    输出格式: 是否正常:True/False

    weight = float(input('输入体重'))
    height = float(input('请输入身高'))
    if 18.5 <= weight / height <= 24.9:
        print('正常')
    else:
    	print('不正常')
    
    
    
  5. 根据输入的成绩的范围打印及格 或者不及格

    score = float(input('输入分数'))
    if score < 60:
        print('不及格')
    else:
        print('及格')
    
    
  6. 根据输入的年纪范围打印成年或者未成年,如果年龄不在正常范围内(0~150)打印这不是人!

    age = int(input('输入年龄'))
    if 0 < age < 18:
        print('未成年')
    elif 18 <= age <= 150:
        print('成年')
    else:
        print('这不是人')
    
    
  7. 输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息a-b的结果不是奇数

    a = int(input('输入一个整数'))
    b = int(input('输入一个整数'))
    if (a -b) % 2 != 0:
        print(a - b)
    else:
        print('a-b的结果不是奇数')
    
    
    
  8. 根据输入的成绩的范围打印及格 或者不及格

    score = float(input('输入分数'))
    if score < 60:
        print('不及格')
    else:
        print('及格')
    
    
  9. 根据输入的年纪范围打印成年或者未成年,如果年龄不在正常范围内(0~150)打印这不是人!

    age = int(input('输入年龄'))
    if 0 < age < 18:
        print('未成年')
    elif 18 <= age <= 150:
        print('成年')
    else:
        print('这不是人')
    
    
  10. 输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息a-b的结果不是奇数

    a = int(input('输入一个整数'))
    b = int(input('输入一个整数'))
    if (a -b) % 2 != 0:
        print(a - b)
    else:
        print('a-b的结果不是奇数')
    
    
    


这篇关于day-3 Python中的变量和运算符及if分支结构的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程