python基本运算符编程(Python自动化之Python输入函数)
python基本运算符编程(Python自动化之Python输入函数)a b c = 20 30 40 print(a b c) 运行结果:20 30 40print('----交换两个变量的值----') a b = 10 20 print('交换之前:' a b) 运行结果:交换之前: 10 20 a b = b a print('交换之后:' a b) 运行结果:交换之后: 20 102.3 比较运算符对变量或表达式的结果进行大小、真假比较a = 20 a = 30 print(a) 运行结果:50 a -= 10 print(a) 运行结果:40 a *= 2 print(a) 运行结果:80 print(type(a)) 运行结果:<class 'int'> a /= 3 print(a) 运行结果:26.666
嗨咯,大家好,马上就周末了!祝大家周末愉快。今天我们主要介绍python中的输入函数、运算符(附有代码)、Python中input()函数用法。
input函数(1)作用:接收来自用户的输入
(2)返回值类型:输入值的类型为str
(3)值的存储:使用=对输入的值进行存储
运算符(附有代码)2.1 算数运算符print(1 1) #加法运算2
print(1-1) #减法运算0
print(2*4) #乘法运算8
print(1/2) #除法运算0.5
print(11//2) #整除运算5
print(11%2) #取余运算1
print(2**2) #表示2的2次方4
print(2**3) #表示2的3次方 2*2*2=8
print(9//4) # 2
print(-9//-4) # 2
print(9//-4) # -3
print(-9//4) # -3 一正一负的整数公式,向下取整
print(9%-4) # -3 公式,余数=被除数-除数*商 9-(-4)*(-3)
print(-9%4) # 3 -9-4*(-3)-->3
2.2 赋值运算符
(1)执行顺序:右→左
(2)支持链式赋值: a = b = c = 20
i = 3 4
print(i)
a = b = c = 20 #链式赋值
print(a id(a)) 运行结果:20 1701866793872
print(b id(b)) 运行结果:20 1701866793872
print(c id(c)) 运行结果:20 1701866793872
(3)支持参数赋值: =、-=、*=、/=、//=、%=
a = 20
a = 30
print(a) 运行结果:50
a -= 10
print(a) 运行结果:40
a *= 2
print(a) 运行结果:80
print(type(a)) 运行结果:<class 'int'>
a /= 3
print(a) 运行结果:26.666666666666668
print(type(a)) 运行结果:<class 'float'>
a //= 2
print(a) 运行结果:13.0
print(type(a)) 运行结果:<class 'float'>
a %= 3
print(a) 运行结果:1.0
(4)支持系列解包赋值:a b c=20 30 40
a b c = 20 30 40
print(a b c) 运行结果:20 30 40
print('----交换两个变量的值----')
a b = 10 20
print('交换之前:' a b) 运行结果:交换之前: 10 20
a b = b a
print('交换之后:' a b) 运行结果:交换之后: 20 10
2.3 比较运算符
对变量或表达式的结果进行大小、真假比较
#比较运算符,比较运算符的结果为bool类型
a b = 10 20
print('a>b吗?' a>b)
print('a<b吗?' a<b)
print('a<=b吗?' a<=b)
print('a>=b吗?' a>=b)
print('a==b吗?' a==b)
print('a!=b吗?' a!=b)
''' 一个 = 称为赋值运算符, == 称为比较运算符
一个变量由三部分组成,标识,类型,值
==比较的是值还是标识呢?比较的是值
比较对象的标识使用的是 is
'''
a = 10
b = 10
print(a==b) #True说明a与b的value相等
print(a is b)#True说明a与b的id标识相等
#以下代码没学过,之后学
list1 = [11 22 33 44]
list2 = [11 22 33 44]
print(list1 == list2) 运算结果:True
print(list1 is list2) 运算结果:False
print(id(list1)) 运算结果:2305705542656
print(id(list2)) 运算结果:2305703625920
2.4 布尔运算符
#布尔运算符
a b = 1 2
print('-----and 并且-----')
print(a==1 and b==2) #True
print(a==1 and b<2) #False
print(a!=1 and b==2) #False
print(a!=1 and b!=2) #False
print('-----or 或者-----')
print(a==1 or b==2) #True
print(a==1 or b<2) #True
print(a!=1 or b==2) #True
print(a!=1 or b!=2) #False
print('-----not-----')
f =True
f2 = False
print(not f) #False
print(not f2) #True
print('-----is 与not in-----')
s = 'helloworld'
print('w'in s) #True
print('k'in s) #False
print('w'not in s) #False
print('k'not in s) #True
2.5 位运算符
(1)位与& :对应数位都是1,结果数位才是1,否则为0
(2)位或| :对应数位都是0,结果数位才是0,否则为1
(3)左移位运算符<< : 高位溢出舍弃,低位补0
(4)右移位运算符>> : 低位溢出舍弃,高位补0
print(4&8) #按位与& 同为1时结果为1 运算结果:0
print(4|8) #按位或|,同为0时结果为0 运算结果:12
print(4<<1) #向左移动1位,相当于乘以2 运算结果:8
print(4<<2) #向左移动2位,相当于乘以4 运算结果:16
print(4>>1) #向右移动1位,相当于除以2 运算结果:2
print(4>>2) #向右移动2位,相当于除以4 运算结果:1
三、运算符的优先级
()→算数运算→位运算→比较运算→布尔运算
Python中input()函数用法带提示的input()函数及其常见问题
在初见input()时,我发现了 variable = input(prompt)这个输入格式,一下子惊如天人。觉得Python的input()函数的用户交互真是友善,从此不再需要再像其他一些编程语言一样单独写一个用户提示语。以下面一个片段为例
可以看到,当我们敲击Enter以后,屏幕上会显示我们编写的提示性语言,并等待用户输入。这样给交互性程序编写带来了便利。
但是,我很快在使用variable = input(prompt)这个形式时遇到了问题,当我理所当然的把input(prompt)中的prompt当作print()函数使用时,我发现input()并不能将变量赋值返回给程序。也就是说,如果我们在input()的提示性语言中加入了变量,就很可能出错,例如:
这个问题的原因是variable = input(prompt)是直接以字符串形式输出提示性的prompt语言,不能像print()函数一样将值赋给变量并输出。那么这是不是意味着我们不能将变量加入其中呢?毕竟在很多循环中,提示性的语言是需要根据循环次数改变的。
那么实际上我们是可以加入的,解决方法就是上面讲过的强制类型转换,正因为我们已经知道input()以字符串形式输出,所以需要我们将变量转化成string型!但是,需要注意的是,使用的符号是用于字符串连接的“ ”而不是分割字符串和变量的“ ”——这里需要注意。
利用input()一次性输入多个变量值
我们在编程的时候,常常需要一次性给多个变量赋值。在C语言和C 中,我们使用scanf("%d %d" &a &b)这样的方式进行输入,其数据以空格为分界。那么在python中我们该如何一次性输入多个值呢?
(1):利用split()函数进行输入,同时,我们不仅可以利用split()函数一次性输入多个数,我们还可以设置分隔符,除了传统的空格形式,也可以用逗号“,”这种更符合语言习惯的方式分隔输入字符。其原理是因为input()输入了一个字符串,而split()函数能根据设定的分割点分割字符串并返回分割后的字符串列表,所以能实现一次性输入多个数据值。范例如下:
但是,这样输入的值仍是字符串型,我们在上面已经说过字符串无法直接参与运算,最好输入时进行类型转换,那么,按照我们第二点的方法转换多输入值可行吗?
可以看到,这样是不可以的,那么为什么上面单输入可以而多输入报错呢?原因我们其实已经说过了,split()函数返回的是一个列表,spring当然能被转换成int型,但是列表是没法被这样直接转换的,所以我们需要用另一个函数map()来实现多输入的强制类型转换。
map()函数接受两个接收两个参数,一个是函数,一个是序列,map()将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。我们将传入的函数设置为强制类型转换函数int,则split()函数返回的列表里的每一个值都将被强制转换类型,从而实现多输入的类型转换。范例如下:
附:input()函数结果的强制转换
choice=input('请选择1或2')
if choice=='1':
print('正确')
else:
print('错误')
上面这段代码很简单,仅有两个选项,如果上面代码不是两个,而是几十个,几百个,难道我们要一个一个打'1' '2' '3' '4' '5' .....'200' '201'..... 这时我们要想办法简单一点,那就是把所有的数据的类型都转换成整型,但是上面不是说了input()函数的返回都为string类型吗?其实在某些特殊情况下是可以被强制转换的,
choice=int(input('请选择1或2'))
if choice==1:
print('正确')
else:
print('错误')
------------------------------
请选择1或2 1
正确
只要在input()函数前面加上int(),就可以把input()函数的结果强制转换成整数。
那么我们什么时候会用到把结果强制转换成整数的时候呢,当我们想要的结果是数字的时候。例如年龄,工资,身高,体重等这些数字时。
例如:我们要对全班的同学按照身高进行分组,这时我们就需要用到整数。
height=int(input('请问你的身高是:'))
if 0<height<=150:
print('你被分到了1组')
elif 150<height<=180:
print('你被分到了2组')
else:
print('你被分到了3组)
-----------------------------------
请问你的身高是:185
你被分到了3组
到此这篇关于Python自动化之Python输入函数、运算符(附有代码)及函数用法的文章就介绍到这了,希望本文对你有所帮助~~如果对软件测试、接口测试、自动化测试、面试经验交流感兴趣可以私聊我或关注公众号“特斯汀软件测试”。免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。