day2-运算符和变量作业

01数学运算符

python中常用的运算符:数学运算符、比较运算符、逻辑运算符、赋值运算符

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

    1. ±*/ - 和数学中的加减乘除一样 (特别是除法运算与C、Java不同)
    1. % 取余 - 求余数
    • x%y - x除以y的余数

      print(5 % 2)  # 1
      
    • 应用一:判断一个数是否能够被另一个数整除

    • 应用二:取一个数的低位数

      num = 232
      print(num % 10)   # 2
      print(num % 100)  # 32
      
    1. //整除 -求商 商取整(向小取整)
    print(5 / 2)    # 2.5
    print(5 // 2)   # 2
    print(5.0 // 2)   # 2.0
    print(-5 // 2)    # -3  (向小取整)
    
    • 应用: 去掉低位数,保留高位数

      num = 23448
      print(num // 10)   # 去掉个位数  2344
      print(num // 100)  # 234
      
    1. ** 幂运算
    • x**y 求x的y次方

      print(2 ** 3)   # 8
      print(81 ** 0.5)  # 9.0  # 开方操作
      print(8 ** (1/3))  # 2.0
      

02比较运算

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

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

  • 注:python中的比较运算符支持表示范围的连写方式 C:x>=0 && x<=1

    x = 0.7
    print(0 <= x <= 1)  # True
    

03逻辑运算符

逻辑运算符 and与 or或 not非

    1. and 从逻辑与
    • 1)应用场景:要求多个条件同时满足,用and连接,等价于并且

    • 2)运算规则:两个都是True,结果为真

    • 3)练习:判断一个数同时能被3和7整除

       num = int(input('请输入数字:'))
       if (num % 3 == 0) and (num % 7 == 0):
           print('该数字能同时被3和7整除')
       else:
           print('该数字不能同时被3和7整除')
      
    1. or 逻辑或
    • 1)应用场景:多个条件中只要有一个条件满足的时候就使用or连接,等价于或者

    • 2)运算规则:两个都是False结果才是False

    • 3)练习 判断一个数能不被3或者7整除

       num = int(input('请输入数字:'))
       if num % 3 == 0 or num % 7 == 0:
           print('该数字能被3或者7整除')
       else:
           print('该数字不能被3或者7整除')
      
    1. not - 非
    • 1)应用场景:对某一个条件进行否定

    • 2)运行规则:not True -> False not False ->True

       age = 27
       print(not age > 18)
       print(age <= 18)
      
练习
  • 练习1:判断一个数是否不能同时被3和7整除

     num = int(input('请输入数字:'))
     if not((num % 3 == 0) and (num % 7 == 0)):
         print('该数字不能同时被3和7整除')
     else:
         print('该数字能同时被3和7整除')
    
  • 练习2:判断一个数是否是偶数

    num = int(input('请输入数字:'))
    print('是否是偶数',num % 2 == 0)
    
  • 练习3:判断一个数是否是偶数

    num = int(input('请输入数字:'))
    print('能被3整除,并且个位数是1',num % 3 == 0 and num % 10 == 1)
    
  • 练习4:判断一个数的个位数加上十位数是否是偶数

    num = int(input('请输入数字:'))
    print('个位数加上十位数是否是偶数',(num % 10 + num // 10 % 10) % 2 == 0)
    

04 逻辑运算符扩展

    1. 短路操作

    逻辑与的短路操作:表达式1 and 表达式2 若表达式1False,不执行表达式2

    逻辑或的短路操作:表达式1 or 表达式2 若表达式1 True,不执行表达式2

     def func1():
         print('执行函数体')
    
     func1()           # 执行函数体
     True and func1()    # 执行函数体
     False and func1()     # 短路
    
     False or func1()  # 执行函数体
     True or func1()   # 短路
    
    1. 运算对象不是布尔值
      1. 与运算:表达式1 and 表达式2
      • 表达式1的布尔值是True,整个与运算的结果是表达式2
      • 表达式1的布尔值是False,整个与运算的结果是表达式1
      1. 或运算:表达式1 or 表达式2
      • 表达式1的布尔值是False,整个与运算的结果是表达式2
      • 表达式1的布尔值是True,整个与运算的结果是表达式1
      1. not 表达式 – 非运算
      print(7 and 8)     # 8
      print(7 or 8)      # 7
      print(0 and 9)     # 0
      print(not None)    # True
      
    1. 补充:数据的布尔值(重要)

    python中所有的数据都有布尔值,所有的零值、空值对应的布尔值是False,其他都是False

    零值和空值: 0 0.0 0.00 ‘’ “” (引号里有空格也为True) None

05赋值运算符

    1. 重要结论:
      1)所有的赋值运算符都是用来给变量赋值,没有计算结果(所有的赋值运算都没有结果)
      2)所有赋值运算符的左边必须是变量
      1. =
      • 变量 = 数据 - 将数据保存在变量中

        a = 10
        # print(a = 10)  # 出错,应打印数据
        print(a)
        
      1. += -= /= *= %= //= **=
      • 变量 += 数据 - 先将变量中保存的数据取出来,和右边的数进行加法运算,将计算结果重新赋值给变量

      • 即:变量 = 变量 + 数据

        b = 10
        b += 3  # 13
        b *= 2  # 26
        b %= 2  # 0
        
  • 运算符优先级

    数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)

    ** > * / % // > + -

    有括号先算括号里面的

    a = 10 + 20 * 3 > 5 and 7 - 8 > 9   # False
    

06if分支结构

  • 1.流程控制

    • 1)顺序结构(默认) - 代码从上往下一条一条执行,每条代码执行一次

      print('代码1')
      print('代码2')
      print('代码3')
      
      """
      代码1
      代码2
      代码3
      """
      
    • 2)分支结构 - 根据条件去执行或者不执行某些代码

    • 3)循环结构 - 让代码重复执行

  • 2.分支结构 - if 语句

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

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

      • 说明:
        if - 关键字,固定写法
        条件语句 - 任何有结果的表达式都可以:数据或已经赋值过的变量,运算表达式,函数调用表达式 (只有赋值语句没有结果)
        : - 固定写法,英文冒号
        代码段 - 与if保持一个缩进的一条或者多条语句(满足条件才执行的代码)

      • 执行过程:
        先判断条件语句的结果是否为True,如果为True,就执行代码段,否则不执行

        a = 10
        if a:
            # pass   # 先占位
            print('代码段1')
            print('代码段2')
            print('分支执行结束')
        print('代码段3')
        
        #  练习1:如果成年,打印可以进网吧
        age = 19
        if age >= 18:
            print('可以进网吧')
        
        
        # 练习2:给定年份判断闰年
        year = 2020
        if (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0):
            print('闰年')
        
    • 2)if双分支结构 - 满足条件执行某个操作,条件不满足的时候执行另外的操作

    • 语法:
      if 条件语句:
      代码段1 (满足条件则执行)
      else:
      代码段2 (不满足条件执行)

      # 练习 如果指定的数是奇数就打印奇数,否则打印偶数
      num = 10
      if num % 2 != 0:
          print('奇数')
      else:
          print('偶数')
      
      # 方法二
      if num % 2:
          print('奇数')
      else:
          print('偶数')
      
    • 3)if多分支结构 - 根据不同的条件执行不同的操作(条件之间满足:其中一个满足,另外的条件绝对不满足)

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

        else:
        代码段N

        # 练习:根据年龄值得范围打印人生阶段
        age = 67
        if 0 <= age <= 3:
            print('儿童')
        elif 4 <= age <= 17:
            print('少年')
        elif 18 <= age <= 28:
            print('青年')
        elif 29 <= age <= 39:
            print('壮年')
        elif 40 <= age <= 59:
            print('中年')
        else:
            print('老年')
        
        # 方法2
        age = 67
        if age <= 3:
            print('儿童')
        elif age <= 17:
            print('少年')
        elif age <= 28:
            print('青年')
        elif age <= 39:
            print('壮年')
        elif age <= 59:
            print('中年')
        else:
            print('老年')
        
        
        height = 180
        weight = 160
        if height > 175:
            print('跳远')
        if weight > 170:
            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
    (A :所有均可用于布尔测试)

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

编程题

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

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

    的结果。

    num = 10
    if not(num % 2 == 0 and num %5 == 0):
        print('该数不能同时被2和5整除')
    else:
        print('该数能被2或者5整除')
    
    # 方法一
    if (num %2 ==0 and num%5!=0or(num%2!=0 and num%5==0):
    		print('该数能被2或者5整除,但是不能同时被2和5整除')
    #方式二
    if(num%2==0 or num%5==0) and num %10!=0:
    		print('该数能被2或者5整除,但是不能同时被2和5整除')
    
  3. 假设今天的上课时间为15678秒,编程计算今天上课时间是多少⼩时,多少分钟,多少秒;以‘XX

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

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

    time = 15678
    hour = time // 3600
    time -= hour * 3600
    min = time // 60
    time -= min * 60
    sec = time
    
    #方法二
    time=15678
    h=time//3600
    m=time%3600 //60
    s=time%60
    
    print(hour,'时',min,'分',sec,'秒,sep='')
    
    
  4. 定义两个变量保存⼀个⼈的身⾼和体重,编程实现判断这个⼈的身材是否正常!

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

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

    height = 80
    weight = 1.6
    
      print(18.5 <= (weight/(height**2)) <= 24.9)
    
    
  5. 根据输入的成绩的范围打印及格 或者不及格

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

age = int(input('请输入年龄:'))
if 0 <= age <= 150:
	if age <18:
    	print('未成年')
	else:
    	print('成年')
else:
    print('这不是人')
    
  1. 输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息a-b的结果不是奇数
a = int(input('请输入整数a:'))
b = int(input('请输入整数b:'))
c = a -b
if c % 2:
    print(c)
else:
    print('a-b的结果不是奇数')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值