其他分享
首页 > 其他分享> > 在千峰的第二天

在千峰的第二天

作者:互联网

在千峰的第二天

今天被蚊子咬醒了,醒来看时间03:32。然后花了很长时间去睡。中午吃完饭回去休息又被新来的室友吵到了。所以导致今天有点没精神。话不多说,对今天的内容(运算符、if分支)做个小结。

运算符

运算符主要分为:数学运算符、比较运算符、逻辑运算符、赋值运算符。

1.数学运算符

加(+)、减(-)、乘(*)、除(/)、取余(取模)(%)、整除(//)、幂运算(**)。

加减乘除同数学运算一样,不再赘述。特别的,python中“/”运算答案跟数学中运算答案一致。例:5/2=2.5

2.比较运算符

大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)、不等于(!=);所有比较运算结果均为布尔类型。

print(999 > 99)				#True
print(999 < 99)				#False
print(999 >= 999)			#True
print(999 <= 999)			#True
print(999 == 123)			#False
print(999 != 123)			#True

特别的,python支持比较运算符连写

print(1 < 2 < 3)

3.逻辑运算符

逻辑与运算(and)、逻辑或运算(or)、逻辑非运算(not)。

  1. 逻辑与运算(and) 相当于且 用于满足条件簇中每一个条件 双目
# 是否能被3和7整除
number = 49
print('是否能被3和7整除:'+str((number % 3) == 0 and (number % 7) == 0))
  1. 逻辑或运算(or) 相当于或者 用于满足条件簇中任意一个条件 双目

    
    # 是否是闰年
    year = 2000
    print('是否是闰年:'+str((year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)))
    # 普通闰年:能被4整除但不能被100整除
    # 世纪闰年:能被400整除
    
    # 是否能得奖学金
    gpa = 4.0
    score = 95
    print('是否能得奖学金:'+str(gpa > 4.0 or score >= 95))
    
  2. 逻辑非运算(not) 相当于否定 否定某个给定的条件 单目

    一般用于正向条件情况很多很复杂,反向条件却很简单的时候,条件就反向写然后加not

# True  -->  False
# False -->  True

# 是否不能被3和7整除

print((not (number % 21 == 0)))
  1. 短路操作

    条件1 and 条件2 — 如果条件1是False,那么条件2不会执行;

    条件1 or 条件2 — 如果条件1是True,那么条件2不会执行;

0 and print('与远算条件2')    #
1 and print('与远算条件2')    #与远算条件2

0 and print('或远算条件2')    #或远算条件2
1 and print('或远算条件2')    #
  1. 逻辑运算符的扩展 - 运算对象为非布尔值

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

    个人认为这是今天最大的收获。也只之前没有接触过的。分享给大家。

print(9 and 2)              #2
print([] and 9)             #[]

print(8 or 7)               #8
print([] or 9)              #9
  1. 数据的布尔值 — 数据转成布尔的结果

    python所有类型的数据都有布尔值,除零值与空值对应的布尔值为False外其余全为True
    常见的零值、空值:0、0.0、0.00、’’、""、[]、()、{}、None

4.赋值运算符

赋值运算符:=、+=、-=、*=、/=、%=、//=、**=;所有赋值运算符的功能都是给变量赋值,不会产生结果即赋值运算表达式没有结果。

  1. “=” — 定义变量或者中心给变量赋值时使用

    number = 999
    number = 99*9
    
  2. +=、-=、*=、/=、%=、//=、**= 变量 ()= 数据

    number = 999
    
    number +=10     #1009
    print(number)
    number -=10     #999
    print(number)
    number *=10     #9990
    print(number)
    number /=10     #999.0
    print(number)
    number %=100     #99.0
    print(number)
    number //=10     #9.0
    print(number)
    number **=10     #3486784401.0
    print(number)
    
  3. 运算符的优先级

    数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符

    数学运算符等级:** > *、/、%、// > +、-;有括号先算括号

结构

流程控制
  1. 顺序结构 — 代码从上往下依次执行,每条语句执行一次

  2. 分支结构 — 代码的执行看条件是否成立(if语句)

  3. 循环语句 — 让代码重复(for,while)

    本文只介绍if分支结构。循环结构将在下片文章介绍(不出意外是明天)。

    if分支结构

    if单分支结构

    满足条件则执行某个操作,条件不满足的时则不执行;

    语法

    if(条件语句):

    代码段

    说明

    if — 关键字;
    条件语句 — 任何有结果的表达式;例:数据、运算表达式(赋值运算除外);
    : — 固定写法;
    代码段 === 与if保持缩进的一条或多条语句(至少一条),就是满足条件时进行的操作。

    执行过程

    判断条件是否为True(若结果为非布尔值则需转换为布尔值);若为True则执行代码段,否则不执行。

    #判断number是奇数还是偶数
    
    # if(number % 2 == 0):
    #     print('偶数')
    if not number % 2:
        print('偶数')
    # if(number % 2 != 0):
    #     print('奇数')
    if number % 2:
        print('奇数')
    

    注释掉的写法也能完成任务,但效率不如后者,所以建议使用后者。

    '''
    	判断100-1000范围内的水仙花数(自恋数)
    '''
    for i in range(100,1001):
        item = i
        if(((i %10)**3)+(((i//10)%10)**3)+((i//100)%10)**3 == item):
            print(item,end="  ")
    

    本来只判断给定某个数是否为水仙花数,但给的时间相当充裕所以我自己拓展成这样了。其中循环语句会在下篇文章中做详细讲解。

    if双分支结构

    满足条件执行某操作,不满足时执行另外一个操作。

    语法

    if(条件语句):

    代码段1

    else:

    代码段2

    # 根据年龄判断成年与否
    age = int(input('请输入您的年龄:'))
    if(age >= 18):
        print('您已经成年啦!')
    else:
        print('您还没成年哦!')
    

    上篇文章中讲到input()传入的数据全为str类型。所以做了int()强制类型转换。有兴趣的可以参考上篇文章。

    if多分支结构

    根据不同条件做不同操作。

    语法

    if(条件语句):

    代码段1(满足条件1时执行)

    elif(条件语句):

    代码段2(满足条件2时执行)

    elif(条件语句):

    代码段3(满足条件3时执行)

    else:

    代码段n(不满足条件时执行)

    前提:若其中某个条件满足,则其他条件不会满足。

    #根据分数划分等级
    score = int(input('请输入您的成绩以查询等级:'))
    if(score > 90):
        print('A')
    elif(score >= 80):
        print('B')
    elif(score >= 60):
        print('C')
    else:
        print('D')
    

    小结

    以上是今天全部学习内容,除了逻辑运算符扩展中的一点没接触过的之外没什么新鲜的。很少,但有收获,还是很满足的。

小练习

选择题

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

编程题

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

    number = int(input('输入一个整数:'))
    if(number % 10 == 0):
        print(str(number)+'可以同时被2和5 整除!')
    else:
        print(str(number)+'不可以同时被2和5 整除!')
    
  2. 写出判断⼀个数是否能够被2或者5整除,但是不能同时被2或者5整除的条件语句, 并且打印对应

    的结果。

    number = int(input('输入一个整数:'))
    while(1):
        if(number % 10 != 0 and number % 2 == 0):
            print(str(number)+'不可以同时被2和5 整除,但可以被2整除!')
            break
        elif(number % 5 == 0 and number % 10 != 0):
            print(str(number)+'不可以同时被2和5 整除,但可以被5整除!')
            break
        else:
            print(str(number)+'可以同时被2和5 整除,请重新输入:')
            number = int(input('输入一个整数:'))
    
  3. 假设今天的上课时间为15678秒,编程计算今天上课时间是多少⼩时,多少分钟,多少秒;以‘XX

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

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

    number = 15678
    hour = minute = second = 0
    while(number > 60):
        number -= 60
        minute += 1
        if(minute >= 60):
            hour += 1
            minute = 0
        second = number
    print("今天上课时长:"+str(hour)+"时"+str(minute)+"分"+str(second)+"秒")
    
    
  4. 定义两个变量保存⼀个⼈的身⾼和体重,编程实现判断这个⼈的身材是否正常!

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

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

    weight = float(input('请输入您的体重(单位:kg):'))
    height = float(input('请输入您的身高(单位:m):'))
    if(24.9 > weight / (height ** 2) > 18.5):
        print(True)
    else:
        print(False)
    
  5. 根据输入的成绩的范围打印及格 或者不及格

    score = float(input('请输入您的成绩:'))
    while(1):
        if(score > 100 or score < 0):
            print('您输入的成绩有误请重新输入:')
            score = float(input('请输入您的成绩:'))
        elif(score >= 60):
            print('恭喜你,成绩合格!')
            break
        else:
            print('成绩不合格,继续努力!')
            break
    
  6. 根据输入的年纪范围打印成年或者未成年,如果年龄不在正常范围内(0~150)打印这不是人!

    age = int(input('请输入您的年龄:'))
    if(age > 150 or age < 0):
        print('这不是人!')
    elif(age >= 18):
        print('恭喜你,成年啦!')
    else:
        print('你还没成年哦,快快长大!')
    
  7. 输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息a-b的结果不是奇数

    a = int(input('请输入整数a:'))
    b = int(input('请输入整数b:'))
    
    if((a-b) % 2):
        print(str(a)+"-"+str(b)+"的结果是:"+str(a-b))
    else:
        print(str(a)+"-"+str(b)+"的结果不是奇数!")
    

标签:10,number,运算符,第二天,print,整除,千峰,100
来源: https://blog.csdn.net/Lemon_Review/article/details/118736851