从入门到入狱-----运算符和分支结构(一)

入门 two day

  • python中支持的运算符:

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

      三目运算符:
      C语言中的三目运算符:表达式1?表达式2:表达式3
      判断表达式1的值是否为True,如果是整个运算结果是表达式2的结果否则运算结果是表达式3的结果

      python中的三目运算符
      表达式2 if 表达式1 else 表达式3
      判断表达式1的值是否为True,如果是整个运算结果是表达式2的结果,否则是表达式3的结果

      age = 3
      result = "成年人" if age >= 18 else "未成年人"
      print(result)
      
      
      
      ```Python
      print(6 % 4)  # 6%4=2     取余数,判断一个数是否能够被另一个数整除
      print(6 // 4)  # 6//4=1    取整 X%10 获取X的个位数,X%100获取X的后两位数...
      
      # // 商取整 (向小取整)
      num1 = 1.9 // 1
      num2 = -1.9 // 1
      print(num1,num2) # num1 = 1.0   num2 = -2.0
      
      # 练习:获取任意大于100的数的百位数
      num = int(input("请输入大于100的数字: "))
      num1 = num % 1000 // 100
      print("得到的百位数是: ",num1)   
      
      # ** 幂运算
      print(2**3)  # 计算2的3次方 结果为8 
      print(4**(1/2))  #计算4的二分之一次方(0.5)结果为2.0 ,次方数为1/N - 表示开N次方
      
       
      
  • 比较运算符:>,<,==(等于),!=(不等于),<=,>=

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

    print(10 > 20)  # False
    print(10 < 20)  # True  
    print(10 <= 10)  # True  
    print(10 >= 10)  # True  
    print(10 == 10)  # True  
    print(10 != 10.0)  # False
    
    # python 中支持连写的方式,表示取值范围
    age = 50
    print(15 <= age <= 100)  # True  
    
  • 逻辑运算符:

    and(逻辑与)

    相当于生活中的“并且”,当需要多个条件同时满足的时候使用

    运算规则:条件都为True 的时候,结果就是True ,只要有一个条件是False,结果就为False

    Ture and Ture --> True  
    Ture and False --> False
    False and Ture --> False
    False and False --> False
    

    or(逻辑或)

    相当于生活中的“或者”,大概需要多个条件中只要有一个条件满足的时候使用

    运算规则:都是False 结果是False,只要有一个条件为True ,结果就为True

    True     or True   --> True  
    True   or False --> True  
    False orTrue   --> True  
    False or False --> False
    
  • not(逻辑非)

    对一个条件进行否定,如果一个条件正向写非常麻烦,但是反向写很简单,就反向写加not

    运算规则:True 变 False , False 变 True

    not True   -> False
    not False -> True  
    
    # 练习:写出一个数是否同时能被3和7整除的条件
    num = int(input("请输入一个数字: "))
    print('是否同时被3和7整除:', num % 3 == 0 and num % 7 == 0)  # 方法一
    print('是否能被3和7整除相当于能否被21整除:', num % 21 == 0)  # 方法二
    

    判断闰年的条件 能被4整除但是不能被100整除 或者能被400整除

    year = int(input("请输入一个年份: "))
    # 方法一
    print((year % 4 == 0 and year % 100 != 0) or year % 400 == 0) 
    
    

    not 应用场景

    # 练习: 写出不能同时被3和7整除的条件
    num = int(input('请输入一个数字: '))
    # 方法一
    print((num % 3 != 0 and num % 7 != 0) 
          or (num % 3 == 0 and num % 7 != 0)
          or (num % 3 != 0 and num % 7 == 0))
    # 方法二
    print(not num % 21 == 0)
    
    • 短路操作

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

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

​ 实际开发的时候逻辑运算符的运算对象和结果一般都是布尔值

​ 当运算对象不是布尔值的时候

​ 如果表达式的值不是布尔值,就会转化成布尔值再判断

​ python中任何类型的数据都可以转换成布尔值,所有为0为空的值会转换成False,其他值都是True

​ 例:

print(5 and 3)  # 3
print(5 or 3)  # 3
  • 布尔值转换:
print(bool(0))  # False
print(bool(''))  # False 引号里面没有值为False
print(bool(' '))  # True   引号里面有值就算是空格也会返回True  
print(bool(1000))  # True  
  • 赋值运算符 : = 、+=、-=、/=、*=、%=、//=、**=

    所有的赋值运算符都是用来给变量赋值,赋值运算符左边必须是变量

    复合的赋值运算符必须是已经赋值过的变量

    复合赋值运算符:

    a = 10
    a += 3  # a = a+3
    print(a)  # 13
    a *= 2  # a = a*2
    print(a)  # 26
    a %= 3  # a = a%3
    print(a)  # 2
    

    运算符的优先级:

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

    数学运算符: ** > *、/、%、// > +、-

    位运算 : &(按位与)、|(按位或)、^(按位异或)、-(按位取反)、>>(右移)、<<(左移)

    应用1:判断整数的奇偶性 - 数字对1进行按位与运算,如果结果是1就是奇数,结果是0就是偶数

    应用2:<< 快速乘2; >> 快速整除2

    print(28 & 1, 25 & 1, 30 & 1)  # 0 1 0
    print(4 << 1, 5 << 2, 5 << 1)  # 8 20 10
    print(4 >> 1, 5 >> 1, -5 >> 1) # 2 2 -3
    
  • 流程控制

    a.顺序结构 - 从上往下依次执行没一条语句(默认情况)

    b.分支结构 - 根据条件选择性地执行代码 (if 语句)

    c.循环结构 - 让代码重复执行 (for循环,while循环)

  • 分支结构

    if - 单分支结构

    if +条件语句(任何有结果的表达式-任何类型的数据、除了赋值以外的运算符表达式),满足条件执行某个操作,不满足就不执行

    冒号: - 固定写法,python中冒号后面一半都需要换行后产生缩进来表示代码块

    代码段 - 和if保持一个缩进(按TAB)的一条或者多条语句

    ​ 在满足条件语句的时候会执行的代码

    执行过程:

    先判断条件语句是否为True (如果不是布尔值就转换成布尔值再判断)

    如果是True 就执行代码段,否则就不执行

    If语句中至少要有一条语句,在不确定的时候可以先用pass占位

    例:

    if 1 !=0 :
        print(1)
    if 100:
        pass
    # if后面不能跟赋值语句
    if a = 10:
        pass   # 程序会报错
    
    
    # 练习  输入一个整数如果是偶数就打印“这个数能被2整除”
    num = int(input("请输入一个整数: "))
    if num % 2 == 0:
        print(num, '是偶数,能被2整除')
    else:
        print(num, "不是偶数,不能被2整除!")
    
    if num & 1:
        print(num, '这个数是奇数')
        
        
    

    if 双分支结构 - 满足条件执行某个操作,条件不满足执行另一个操作
    语法:
    if 条件语句:
    代码块1(满足条件要执行的代码)
    else:
    代码块2(不满足条件要执行的代码)
    执行过程:
    先判断条件语句是否为True ,如果是就执行代码块1,否则执行代码块2

    # 练习:如果输入的数字是偶数就打印’偶数‘,否则打印’奇数‘
    num = int(input('请输入一个整数: '))
    if num & 1 == 0:
        print('这是一个偶数')
    else:
        print("这是一个奇数")
    
    # 练习:根据输入的年龄值打印“成年”或者“未成年”
    
    age = int(input("请输入你的年龄:"))
    if age >= 18:
        print("你已经是个成年的大宝宝了!")
    else:
        print("你还是一个未成年的宝宝啊!")
    
    # 练习:根据输入年份的值打印’闰年‘或者’非闰年‘
    
    year = int(input('请输入年份: '))
    
    if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
        print('你可真厉害,你输入的是闰年!')
    else:
        print('爪巴爪巴,根本不是闰年')
    

    if 多分支结构 - 根据不同的条件执行不同的操作
    语法:
    if 条件语句1:
    代码块1
    elif 条件语句2:
    代码块2
    elif 条件语句3:
    代码块3

    else:
    代码块n

    先判断条件语句1是否为True ,如果是直接执行代码块1,然后整个if结构结束
    如果不为True ,就判断条件语句2是否为True ,是就执行,然后结束。
    如果不为True … … 以此类推。如果前面的语句都不满足就执行else后的代码块

    # 输入学生绩点,判断该学生能获得奖学金的等级
    # 一等:绩点>4; 二等:3.5<=绩点<=4; 三等:3<=绩点<3.5; 四等:2.5<=绩点<3;没有:绩点<2.5
    
    num = int(input('请输入学生绩点: '))
    if num > 4:
        print('一等')
    elif num >= 3.5:
        print('二等')
    elif num >= 3:
        print("三等")
    elif num >= 2.5:
        print('四等')
    else:
        print('没有')
    

选择题

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

    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

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

    A. char

    B. int

    C. float

    D. list

  4. (多选)n = 6784,以下能够获取到7 的⽅法有(C.D)。千锋Python人工智能学院

    A. n / 1000 % 100

    B. n % 1000 / 100

    C. n // 100 % 10

    D. n // 10 % 100 // 10

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

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

    A. <class 'str'>

    B. <class 'int'>

    C. 出错

    D. <class 'dict'>

  6. 下列表达式的运算结果是( 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 = int(input("请输入一个数字: "))
    if num % 10 :
        print(num,'不能同时被2和5整除')
    else:
        print(num,"能同时被2和5整除")
    
    
  2. 写出判断⼀个数是否能够被2或者5整除,但是不能同时被2或者5整除的条件语句, 并且打印对应

    的结果。

    num = int(input("请输入一个数字: "))
    if num % 10 != 0 :
        if num % 2 == 0:
            print(num,'能被2整除')
        elif num % 5 == 0:
            print(num,"能被5整除")
        else:
            print(num,'这个数不满足条件')
    else:
        print(num,'这个数不满足条件')
    
    
  3. 假设今天的上课时间为15678秒,编程计算今天上课时间是多少⼩时,多少分钟,多少秒;以‘XX

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

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

    # 这是比较傻的写法
    time = 15678
    time1 = time // 3600
    time2 = (time - time1 * 3600) // 60
    time3 = (time - time1 * 3600) % 60
    
    print(time1, '时', time2, '分', time3, '秒')
    
    # 这是常规写法
    time = 15678
    time1 = time // 3600
    time2 =time % 3600 // 60
    time3 = time % 60
    
    print(time1, '时', time2, '分', time3, '秒')
    
    
    
  4. 定义两个变量保存 ⼈的身⾼和体重,编程实现判断这个⼈的身材是否正常!

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

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

    height = 1.83
    weight = 73
    stature = 73 / (1.83**2)
    if 18.5<= stature <= 24.9:
        print("是否正常", True)
    else:
        print("是否正常", False)
    
    
    
    
    
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值