Python教程

python中的运算符和变量

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

运算符与分支结构

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

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

    代码如下:


    print(600 + 55)	#655
    print(600 - 55) #545
    print(600 * 2)  #1200
    print(600/ 2)   #300.0
    
  • % - 求余数、取模,x % y - 求x除以y的余数

    代码如下:


    print(100 % 2) #0
    print(881 % 2) #1
    
    • 取低位数(对10或者10的幂次方取余)
    num = 2398
    print(num % 10)    # 8
    print(num % 100)   # 98
    
  • // - 整除,x // y - x除以y的商向小取整

    代码如下:


    print(5 // 2)    # 2;   2  2.5  3
    print(1.8 // 2)     # 0.0;  0  0.9  1
    print(-5 // 2)     # -3;  -3  -2.5  -2
    
  • 正整数去低位

    代码如下:


    num = 23489
    print(num // 10)    # 2348
    print(num // 100)
    
  • 练习:获取指定正整数的十位数, 获取指定正整数的百位数, 幂运算

    代码如下:


    #获取指定正整数的十位数
    num = 3945
    print(num // 10 % 10)    # 4
    print(num % 100 // 10)   # 4
    
    # 获取指定正整数的百位数
    num = 3945
    print(num // 100 % 10)
    print(num % 1000 // 100)
    
    # . ** - 幂运算
    # x ** y  -  求x的y次方
    print(2 ** 3)
    print(5 ** 3)
    print(16 ** 0.5)    # 4.0
    print(27 ** (1/3))  # 3.0
    print(2.2 ** 2)    # 2.2 * 2.2 = 4.84
    print(2.0 ** 2)
    # 10 -> 2**3 + 2**1
    # 45  ->  2 ** 5 + 2**3 + 2**2  + 2**0
    # 1/2**x1 + 1/2**x2 + ....
    # 0.2  -  1/8 + 1/16
    # 0.2 = 0.125 + 0.0625 + 1/32
    
    

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

​ 重要结论:所有比较运算的运算结果都是布尔。注意:python中的比较运算符可以像数据 一样通过连写来表示范围

代码如下:


print(10 > 50)      # False
print(10 < 50)      # True
print(100 >= 100)     # True
print(200 == 100)     # False
print(200 != 100)     # True
age = 23
print(18 <= age <= 38)

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

  • and - 逻辑与运算符

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

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

  • 练习:写出一个数能同时被3和7整除的条件
    ​ 条件1:能被3整除 - num % 3 == 0
    ​ 条件2: 能被7整除 - num % 7 == 0

代码如下:


num = 21
print('是否同时能被3和7整除:', num % 3 == 0 and num % 7 == 0)
print('是否同时能被3和7整除:', num % 21 == 0)
  • or - 逻辑或运算
    1. 应用场景:相当于生活中的或者,用于需要多个条件中满足一个条件就行的情况
    2. 运算规则:只要有一个是True结果就是True,两个都为False结果才是False
      True or True - True
      True or False - True
      False or True - True
      False or False - False
      拿奖学金的条件:绩点高于4或者操评分不低于95
      ​ 绩点高于4: gpa > 4
      ​ 操评分不低于95: score >= 95
      ​ 判断指定的年是否是闰年
      ​ 普通闰年:能被4整除但是不能被100整除: year % 4 == 0 and year % 100 != 0
      ​ 世纪闰年:能被400整除: year % 400 == 0
      ​ 能被4整除: year % 4 == 0
      ​ 不能被100整除: year % 100 != 0
      ​ 能被400整除: year % 400 == 0

代码如下:


gpa = 4.0
score = 95
print('是否可以拿奖学金:', gpa > 4 or score >= 95)

year = 2000
print('是否是闰年:', (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0))
  • not - 逻辑非 - not 条件 - 否定条件

​ 1)应用场景: 对指定条件进行否定(取反)。一般用于正向条件情况很多很复杂,反向条件却很简单的时候,条件就反向写然后加not
​ 2)运算规则: True变False, False变True
​ not True - False
​ not False - True

代码如下:


#年龄大于18: age > 18
# 年龄不大于18: age <= 18、 not age > 18
num = 18
print(num == 18)
print(not num == 18, num != 18)

# 写出一个不能同时被3和7整除的条件
# 能被3整除不能被7整除
# 能被7整除不能被3整除
# 既不能被3整除也不能被7整除
print(not num % 21 == 0)
  • 逻辑运算符的扩展 - 运算对象不是布尔值

​ 数据1 and 数据2 - 如果数据1的布尔值是True,结果就是数据2,否则结果是数据1
​ 数据1 or 数据2 - 如果数据1的布尔值是True,

代码如下:


print(8 and 7)     # 7
print(10 and 7)     # 7
print(0 and 7)      # 0
print(False and 7)  # False

print(8 or 7)       # 8
print(0 or 7)       # 7

  • 数据的布尔值 - 数据转成布尔的结果(特别重要)
    python中所有类型的数据都有布尔值。
    所有的零值和空值对应的布尔值是False, 其他数据的布尔值都是True
    常见的零值和空值: 0、0.0、0.00、’’、""、[]、()、{}、None
  > 代码如下:
  print(bool(0), bool(0.0), bool(''))   # False False False
  print(bool(12), bool(-9.454), bool('ban'))    # True True True
  • 短路操作
    条件1 and 条件2 - 如果条件1是False,那么条件2不会执行
    条件1 or 条件2 - 如果条件1是True, 那么条件2不会执行

    代码如下:


    False and print('与运算的条件2')
    True or print('或运算的条件2'
    
    

4.赋值运算符:=、+=、-=、*=、/=、%=、//=、**=

​ 重要结论:所有的赋值运算的功能都是给变量赋值,不会产生一个结果.(赋值运算的表达式没有结果)所有的赋值运算符的左边必须是变量。
​ = :定义变量或者重新给变量赋值的时候使用
​ +=、-=、*=、/=、%=、//=、**=
​ 要求:赋值符号前面的变量必须是已经定义过变量
​ 变量 += 数据 -> 变量 = 变量 + 数据
​ 运算符的优先级: 数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
​ ** > *、/、%、// > +、(有括号先算括号里面的)

代码如下:


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

name = 20
num = 10 * 20

b = 10
b += 2
print(b)    # 12

b -= 3
print(b)   # 9

b **= 2
print(b)    # 81

b %= 2
print(b)   # 1

b = 10 + 30
c = 10 < 5 * 3    #  c = 10 < 15  -> c = True
print(c)

5.流程控制

1)顺序结构(默认) - 代码从上往下依次执行,每条语句执行一次
2)分支结构 - 代码的执行看条件是否成立(if语句)
3)循环结构 - 让代码重复(for、while)


代码如下:

print('1')
print('2')
print('3')

if分支结构
1)if单分支结构 - 满足条件执行某个操作,这个条件不满足的时候操作就不执行
如果 xxx 就 xxx
a.语法:
if 条件语句:
代码段

b.说明
if - 关键字,固定写法
条件语句 - 任何有结果的表达式,例如:数据、运算表达式(赋值运算除外)、函数调用表达式等
: - 固定写法
代码段 - 就是和if保持一个缩进的一条或者多条语句(至少一条);就是需要满足条件才执行代码


代码如下:

a = -100
if a > 10:
    print('代码1')
    print('代码2')
    print('代码3')
print('代码4')

# 练习:如果指定的数是偶数就打印'偶数'
num = 21
if num % 2 == 0:
    print('偶数')

# (了解)
if not num % 2:
    print('偶数')

# 如果指定的数是奇数打印'奇数'
# 方法1
if num % 2 != 0:
    print('奇数')

# 方法2(了解)
if num % 2:
    print('奇数')

# 练习2:判断指定的数据是否是水仙花数
#方法1 
num = 153
# 5 ** 3  + 4 ** 3 + 3 ** 3  = 216 != 345  (不是水仙花数)
# 153: 1** 3 + 5 ** 3 + 3 ** 3 = 153 == 153 (是水仙花数)
ge = num % 10
shi = num // 10 % 10
bai = num // 100
if ge ** 3 + shi ** 3 + bai ** 3 == num:
    print('是水仙花数')
    
#方法2
num = int(input('请输入一个1000-100的整数:'))
print(num //100)
print(num %100//10)
print(num %10)
if (num //100)**3+(num %100//10)**3+(num %10)**3 == num:
    print(num,'是水仙花数')

c.执行过程
先判断条件语句是否为True(如果条件语句的结果不是布尔,就转换成布尔再看),如果为True就执行代码段,否则代码段不执行
if双分支结构 - 满足条件执行某个操作,这个条件不满足的时候执行另外一个操作
如果 xxx 就 xxx 否则 xxx

语法:
if 条件语句:
代码段1(满足条件才执行的代码)
else:
代码段2(条件不满足的时候才执行的代码)
代码段3(不管条件满不满足都要执行的代码)


代码如下:

age = 28
if age >= 18:
    print('成年')
else:
    print('未成年')
# 输入结果:成年

if多分支结构 - 根据不同条件做不一样的事情
if-elif-elif-…-else

语法:
if 条件语句1:
代码段1
elif 条件语句2:
代码段2
elif 条件语句3:
代码段3

else:
代码段N

前提:多个条件中如果其中一个条件满足,其他的条件绝对不会满足

多个条件之间不存在约束关系:
if 条件1:
代码段1
if 条件2:
代码段2


代码如下:

# 练习:将指定百分制的分数分成A(90以上)、B[80, 90]、C[60,80)、D(60以下)四个等级
score = 99
if score > 90 :
    print('A')
elif score >= 80:
    print('B')
elif score >= 60:
    print('C')
else:
    print('D')
# 输入结果:A

选择题

  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 的⽅法有(C,D)。

    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)。

编程题

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

    代码如下:

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

    的结果。

    代码如下:

    num = 10
    print('是否能同时被2和5整除:',num % 10 == 0)
    print(not num % 10 == 0)
    
  3. 假设今天的上课时间为15678秒,编程计算今天上课时间是多少⼩时,多少分钟,多少秒;以‘XX

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

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

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

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

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

    height = 1.67
    weight = 63
    bim = weight / height ** 2
    print('是否正常:', 18.5 <= bim <= 24.9 )
    
    # 输出结果:是否正常: True
    
    
  5. 根据输入的成绩的范围打印及格 或者不及格

    代码如下:

    grade = 60
    if grade >= 60:
    	print('及格')
    elif grade < 60:
    	print('不及格')
    #输出结果:及格
    
    grade = 59
    if grade >= 60:
    	print('及格')
    elif grade < 60:
    	print('不及格')
    #输出结果:不及格
    
  6. 根据输入的年纪范围打印成年或者未成年,如果年龄不在正常范围内(0~150)打印这不是人!

    代码如下:

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

    代码如下:

    a = 31
    b = 30
    if (a-b) % 2 != 0:
        print('奇数')
    else:
        print('a-b的结果不是奇数')
    # 输出结果:奇数
    
    a = 34
    b = 30
    if (a-b) % 2 != 0:
        print('奇数')
    else:
        print('a-b的结果不是奇数')
    # 输出结果:a-b的结果不是奇数
    
这篇关于python中的运算符和变量的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!