Python自动化之Python输入函数、运算符(附有代码)及函数用法

嗨咯,大家好,马上就周末了!祝大家周末愉快。今天我们主要介绍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自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。

举报
评论 0