python标准算术操作符_Python运算符和作业12.18,python,及,课后,1218

5153ed5b6f3d181cfdbc2629d9991a0f.png

1.算术运算符

/ 运算,商为

浮点类型

,且商为无限小数是会不准确(二进制的用穷性)。

// 整除运算,向下取商整数

% 余数运算, 取余数部分(只能为正数)

divmod(x//y, x%y)–>divmod(商,余数)

print(内部浮点数运算)会出现数值离谱等错误。

解决方法:

from decimal import Decimal

print(Decimal('5.4')-Decimal('3'))

2.比较运算符

注意:

1.重点在比较数值的大小 str与Int不能直接比较

2.!= == 这种符号不能分开抒写(eg:! =错误)

3.字符串与字符串的比较是转为Ascii比较

4.<>在python3已经弃用,仅用!=

5.a>b>c—> a>b and b>c

当a>b为True和b>c都为True时 结果才为True

3.赋值运算符

“=”右边赋值给左边。

4.逻辑运算符

and:两个都Ture→Ture

or:只要有一个为Ture→Ture

短路(懒惰)原则

5.成员运算符

运算符

描述

in

判断某个值是否在指定序列中,在则返回True

not in

判断某个值是否在指定序列中,不在则返回True

6.身份运算符

运算符

描述

is

判断两个对象的内存地址是否一致,是则返回True

is not

判断两个对象的内存地址是否不一致,不是则返回True

7.三目运算符

如果if后面的表达式成立,则执行if前边的代码否则,执行else后边的代码’’’

例:

li = [1, 2, 3, 4]

print("in" if 5 in li else "not in")

作业1

判断"amy"是否在[“bob”,“tony”,“Lisa”,“Steven”]里面如果在则输出"amy 在逻辑大家庭"否则输出"amy 不在.…好难过"

答:

lie_biao=["bob","tony","Lisa","Steven"]

print("amy 在逻辑大家庭"if 'amy'in lie_biao else"amy 不在.…好难过")

作业2

‘ax’

答:Ture 因为首先比较’a’和’x’的Ascii码,通过查表得知x Ascii码比a大,所以返回Ture

作业3

以下程序如果输入666执行那个语句?为什么?

temp=input('请输入:')

if temp == 'Yes' or 'yes':

print('if执行了!')

else:

print('else执行了!')

答:‘if执行了!’

原因:摘抄自CSDN文章

Python基础练手习题一

or 运算符只要两边有一个为true 就会返回true

"

temp == “YES”or "yes"

因为 == 运算符优先度比or运算符的高,所以先会判断or左边的表达式,如果左边的为结果true 右边的就不用计算了,左边结果为false的话,就会计算右边的结果,右边的为一个字符串“yes”,它是一个有值的字符串,所以or右边的结果是true。

简单来说就是把

if temp == "YES" or "yes"

看成

if (temp == "YES") or ("yes")

你就会发现 or 右边的结果会一直为 true ,不管输入我们输入什么字符串,都会执行 if 语句

解决方法为:

if temp == 'YES' or temp == 'yes'

附:运算符的优先级 顺序依次递增

Lambda #运算优先级最低

逻辑运算符: or

逻辑运算符: and

逻辑运算符:not

成员测试: in, not in

同一性测试: is, is not

比较: , >=, !=, ==

按位或: |

按位异或: ^

按位与: &

移位: << ,>>

加法与减法: + ,-

乘法、除法与取余: *, /, %

作业4

is与==的区别?

答:==是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等。

is也被叫做同一性运算符,这个运算符比较判断的是对象间的唯一身份标识,也就是id是否相同。

对象的id可通过id()查看。

作业5

用户输入a,b。

当a与b都不为0时则输出a 与b做商否则输出a与b 的乘积。

答:

no_1=input('请输入一个数值A:')

no_2=input('请再输入一个数值B:')

if int(no_1) != 0 and int(no_2) != 0:

print(int(no_1)/int(no_2))

else:

print(int(no_1)*int(no_2) )

为保证用户输入格式正确更加严谨的代码为:

no_1=input('请输入一个数值A:')

if no_1.isdigit() or type(eval(no_1)) == float:

pass

else:

while no_1.isdigit()==0 or type(eval(no_1)) != float:

no_1=input('输入格式错啦,请您重新输入数值A:')

no_2 = input('请再输入一个数值B:')

if no_2.isdigit() or type(eval(no_2)) == float:

pass

else:

while no_2.isdigit()==0 or type(eval(no_2)) != float:

no_2=input('输入格式错啦,请您重新输入数值B:')

print(eval(no_1)/eval(no_2) if eval(no_1) != 0 and eval(no_2) != 0 else eval(no_1)*eval(no_2) )

作业6

基于题5,使用三目运算符输出a,b 较大的数。

答:

no_1=input('请输入一个数值A:')

no_2=input('请再输入一个数值B:')

print(int(no_1) if int(no_1) > int(no_2) else int(no_2))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值