在千峰的第二天
作者:互联网
在千峰的第二天
今天被蚊子咬醒了,醒来看时间03:32。然后花了很长时间去睡。中午吃完饭回去休息又被新来的室友吵到了。所以导致今天有点没精神。话不多说,对今天的内容(运算符、if分支)做个小结。
运算符
运算符主要分为:数学运算符、比较运算符、逻辑运算符、赋值运算符。
1.数学运算符
加(+)、减(-)、乘(*)、除(/)、取余(取模)(%)、整除(//)、幂运算(**)。
加减乘除同数学运算一样,不再赘述。特别的,python中“/”运算答案跟数学中运算答案一致。例:5/2=2.5
-
取余操作的应用
- 判断一个数是否能被另一个数整除
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)。
- 逻辑与运算(and) 相当于且 用于满足条件簇中每一个条件 双目
# 是否能被3和7整除
number = 49
print('是否能被3和7整除:'+str((number % 3) == 0 and (number % 7) == 0))
-
逻辑或运算(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))
-
逻辑非运算(not) 相当于否定 否定某个给定的条件 单目
一般用于正向条件情况很多很复杂,反向条件却很简单的时候,条件就反向写然后加not
# True --> False
# False --> True
# 是否不能被3和7整除
print((not (number % 21 == 0)))
-
短路操作
条件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 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
-
数据的布尔值 — 数据转成布尔的结果
python所有类型的数据都有布尔值,除零值与空值对应的布尔值为False外其余全为True
常见的零值、空值:0、0.0、0.00、’’、""、[]、()、{}、None
4.赋值运算符
赋值运算符:=、+=、-=、*=、/=、%=、//=、**=;所有赋值运算符的功能都是给变量赋值,不会产生结果即赋值运算表达式没有结果。
-
“=” — 定义变量或者中心给变量赋值时使用
number = 999 number = 99*9
-
+=、-=、*=、/=、%=、//=、**= 变量 ()= 数据
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)
-
运算符的优先级
数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
数学运算符等级:** > *、/、%、// > +、-;有括号先算括号
结构
流程控制
-
顺序结构 — 代码从上往下依次执行,每条语句执行一次
-
分支结构 — 代码的执行看条件是否成立(if语句)
-
循环语句 — 让代码重复(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')
小结
以上是今天全部学习内容,除了逻辑运算符扩展中的一点没接触过的之外没什么新鲜的。很少,但有收获,还是很满足的。
小练习
选择题
-
print(100 - 25 * 3 % 4)
应该输出什么? (B)A. 1
B. 97
C. 25
D. 0
-
下列哪种说法是错误的(A)。
A. 除字典类型外,所有标准对象均可以⽤于布尔测试
B. 空字符串的布尔值是False
C. 空列表对象的布尔值是False
D. 值为0的任何数字对象的布尔值是False
-
下列表达式的值为True的是(B)。
A. 3>2>2
B. 1 and 2 != 1
C. not(11 and 0 != 2)
D. 10 < 20 and 10 < 5
-
Python不⽀持的数据类型有(A)。
A. char
B. int
C. float
D. list
-
(多选)n = 6784,以下能够获取到7 的⽅法有(C、D)。
A. n / 1000 % 100
B. n % 1000 / 100
C. n // 100 % 10
D. n // 10 % 100 // 10
-
运⾏以下程序,当从键盘上输⼊12,运⾏结果是(A)。
x = (input()) print(type(x))
A. <class 'str'>
B. <class 'int'>
C. 出错
D. <class 'dict'>
-
下列表达式的运算结果是( D) 。
a = 100 b = False print(a * b > -1)
A. False
B. 1
C. 0
D. True
填空题
- 查看变量中数据的类型的函数名是(type())。
- 已知 x = 3 == 3 ,执⾏结束后,变量x的值为(True)。
- 已知 x = 3 ,那么执⾏语句 x += 6 之后,x的值为(9)。
- 表达式 3 ** 2 的值为(9),表达式 3 * 2 的值为(6),表达式 4 ** 0.5 的值为(2.0)。
编程题
-
写出判断⼀个数是否能同时被2和5整除的条件语句, 并且打印对应的结果。
number = int(input('输入一个整数:')) if(number % 10 == 0): print(str(number)+'可以同时被2和5 整除!') else: print(str(number)+'不可以同时被2和5 整除!')
-
写出判断⼀个数是否能够被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('输入一个整数:'))
-
假设今天的上课时间为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)+"秒")
-
定义两个变量保存⼀个⼈的身⾼和体重,编程实现判断这个⼈的身材是否正常!
公式: 体重(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)
-
根据输入的成绩的范围打印
及格
或者不及格
score = float(input('请输入您的成绩:')) while(1): if(score > 100 or score < 0): print('您输入的成绩有误请重新输入:') score = float(input('请输入您的成绩:')) elif(score >= 60): print('恭喜你,成绩合格!') break else: print('成绩不合格,继续努力!') break
-
根据输入的年纪范围打印
成年
或者未成年
,如果年龄不在正常范围内(0~150)打印这不是人!
。age = int(input('请输入您的年龄:')) if(age > 150 or age < 0): print('这不是人!') elif(age >= 18): print('恭喜你,成年啦!') else: print('你还没成年哦,快快长大!')
-
输入两个整数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