ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

在千峰的第二天

2021-07-14 21:00:03  阅读:145  来源: 互联网

标签:10 number 运算符 第二天 print 整除 千峰 100


在千峰的第二天

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

运算符

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

1.数学运算符

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

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

  • 取余操作的应用

    1. 判断一个数是否能被另一个数整除
    print(10%2)				#0
    print(10%3)				#1
    

    ​ 2. 取低位数

    number = 9876
    print(number % 10)      #取个位
    print(number % 100)     #取后两位
    print((number//10)%10)      #取十位
    
  • 整除 — 向下取整

    print(5//2)				#2
    print(-5//2)			#-3
    print(1.8//3)			#0.0
    

    整除应用 — 正整数去低位;

    number = 9876
    print(number//10)    #去掉个位      987
    print(number//100)  #去掉个位和十位  98
    

    然后偶然看到了divmod()这个函数:

    print(divmod(3945,100))     #返回元组(a//b,a%b)   (39,45)
    
  • 幂运算 — a**b

    相当于内置函数pow();

    print(2**10)             #1024
    print(math.pow(2,10))    #1024.0
    print(pow(2,10))         #1024
    print(8**(1/3))         #2.0
    

    很容易看到上述print(math.pow(2,10))打印结果是1024.0,而print(pow(2,10))打印结果为1024.在菜鸟上看到:原因是因为pow()通过内置的方法直接调用,内置方法会把参数作为整型,而math模块则会把参数转换为float。

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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有