python运算符之与用户交互


Posted in Python onApril 13, 2022

一 程序与用户交互

1.1、什么是与用户交互

用户交互就是人往计算机中input/输入数据,计算机print/输出结果

1.2、为什么要与用户交互?

为了让计算机能够像人一样与用户沟通交流

比如,过去我们去银行取钱,用户需要把帐号密码告诉柜员,而现在,柜员被ATM机取代,ATM机就是一台计算机,所以用户同样需要将帐号密码告诉计算机,于是我们的程序中必须有相应的机制来控制计算机接收用户输入的内容,并且输出结果

1.3、如何与用户交互

交互的本质就是输入、输出

1.3.1 输入input:

# 在python3中input功能会等待用户的输入,用户输入任何内容,都存成字符串类型,然后赋值给等号左边的变量名
>>> username=input('请输入您的用户名:') 
请输入您的用户名:jack # username = "jack"
>>> password=input('请输入您的密码:') 
请输入您的密码:123 # password = "123"

# 了解知识:
# 1、在python2中存在一个raw_input功能与python3中的input功能一模一样
# 2、在python2中还存在一个input功能,需要用户输入一个明确的数据类型,输入什么类型就存成什么类型
>>> l=input('输入什么类型就存成什么类型: ')
输入什么类型就存成什么类型: [1,2,3]
>>> type(l)
<type 'list'>

1.3.2 输出print:

>>> print('hello world')  # 只输出一个值
hello world
>>> print('first','second','third')  # 一次性输出多个值,值用逗号隔开
first second third

# 默认print功能有一个end参数,该参数的默认值为"\n"(代表换行),可以将end参数的值改成任意其它字符
print("aaaa",end='')
print("bbbb",end='&')
print("cccc",end='@')
#整体输出结果为:aaaabbbb&cccc@

1.3.3 输出之格式化输出

(1)什么是格式化输出?

把一段字符串里面的某些内容替换掉之后再输出,就是格式化输出。

(2)为什么要格式化输出?

我们经常会输出具有某种固定格式的内容,比如:'亲爱的xxx你好!你xxx月的话费是xxx,余额是xxx‘,我们需要做的就是将xxx替换为具体的内容。

(3)如何格式化输出?

这就用到了占位符,如:%s、%d:

二 基本运算符

2.1 算术运算符

​ python支持的算数运算符与数学上计算的符号使用是一致的,我们以x=9,y=2为例来依次介绍它们

2.2 比较运算符

​ 比较运算用来对两个值进行比较,返回的是布尔值True或False,我们以x=9,y=2为例来依次介绍它们

2.3 赋值运算符

  • 增量赋值
  • 链式赋值

​ python语法中除了有=号这种简单的赋值运算外,还支持增量赋值、链式赋值、交叉赋值、解压赋值,这些赋值运算符存在的意义都是为了让我们的代码看起来更加精简。我们以x=9,y=2为例先来介绍一下增量赋值

如果我们想把同一个值同时赋值给多个变量名,可以这么做

>>> z=10
>>> y=z
>>> x=y
>>> x,y,z
(10, 10, 10)

链式赋值指的是可以用一行代码搞定这件事

>>> x=y=z=10
>>> x,y,z
(10, 10, 10)

交叉赋值

我们定义两个变量m与n

>>> m=10
>>> n=20

如果我们想将m与n的值交换过来,可以这么做

>>> temp=m
>>> m=n
>>> n=temp
>>> m,n
(20, 10)

交叉赋值指的是一行代码可以搞定这件事

>>> m=10
>>> n=20
>>> m,n=n,m # 交叉赋值
>>> m,n
(20, 10)

解压赋值

如果我们想把列表中的多个值取出来依次赋值给多个变量名,可以这么做

>>> nums=[11,22,33,44,55]
>>> 
>>> a=nums[0]
>>> b=nums[1]
>>> c=nums[2]
>>> d=nums[3]
>>> e=nums[4]
>>> a,b,c,d,e
(11, 22, 33, 44, 55)

解压赋值指的是一行代码可以搞定这件事

注意,上述解压赋值,等号左边的变量名个数必须与右面包含值的个数相同,否则会报错

#1、变量名少了
>>> a,b=nums
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 2)

#2、变量名多了
>>> a,b,c,d,e,f=nums
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: not enough values to unpack (expected 6, got 5)

但如果我们只想取头尾的几个值,可以用*_匹配

>>> a,b,*_=nums
>>> a,b
(11, 22)

ps:字符串、字典、元组、集合类型都支持解压赋值

2.4 逻辑运算符

​ 逻辑运算符用于连接多个条件,进行关联判断,会返回布尔值True或False

2.4.1 连续多个and

可以用and连接多个条件,会按照从左到右的顺序依次判断,一旦某一个条件为False,则无需再往右判断,可以立即判定最终结果就为False,只有在所有条件的结果都为True的情况下,最终结果才为True。

>>> 2 > 1 and 1 != 1 and True and 3 > 2 # 判断完第二个条件,就立即结束,得的最终结果为False
False

2.4.2 连续多个or

可以用or连接多个条件,会按照从左到右的顺序依次判断,一旦某一个条件为True,则无需再往右判断,可以立即判定最终结果就为True,只有在所有条件的结果都为False的情况下,最终结果才为False

&gt;&gt;&gt; 2 &gt; 1 or 1 != 1 or True or 3 &gt; 2 # 判断完第一个条件,就立即结束,得的最终结果为True
True

2.4.3 混用and、or、not

# and、or、not三者如果混用时,是存在优先级之分的,但在日常开发中我们无需记忆优先级,应该使用()来区分优先级、提升程序的可读性
>>> (3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3)
False

2.5 成员运算符

注意:虽然下述两种判断可以达到相同的效果,但我们推荐使用第二种格式,因为not in语义更加明确

>>> not 'lili' in ['jack','tom','robin']
True
>>> 'lili' not in ['jack','tom','robin']
True

2.6 身份运算符

需要强调的是:==双等号比较的是value是否相等,而is比较的是id是否相等

#1. id相同,内存地址必定相同,意味着type和value必定相同
#2. value相同type肯定相同,但id可能不同,如下
>>> x='Info Tony:18'
>>> y='Info Tony:18'
>>> id(x),id(y) # x与y的id不同,但是二者的值相同
(4327422640, 4327422256)


>>> x == y # 等号比较的是value
True
>>> type(x),type(y) # 值相同type肯定相同
(<class 'str'>, <class 'str'>)
>>> x is y # is比较的是id,x与y的值相等但id可以不同
False

 到此这篇关于python语法 之与用户交互和运算符的文章就介绍到这了!

Python 相关文章推荐
python实现的多线程端口扫描功能示例
Jan 21 Python
Python实现抢购IPhone手机
Feb 07 Python
python字典值排序并取出前n个key值的方法
Oct 17 Python
Python2与Python3的区别实例总结
Apr 17 Python
python实现Excel文件转换为TXT文件
Apr 28 Python
python的依赖管理的实现
May 14 Python
python实现两个字典合并,两个list合并
Dec 02 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
Apr 24 Python
Jupyter notebook快速入门教程(推荐)
May 18 Python
解决python运行启动报错问题
Jun 01 Python
浅谈Python里面None True False之间的区别
Jul 09 Python
Python使用for生成列表实现过程解析
Sep 22 Python
python垃圾回收机制原理分析
Apr 13 #Python
Python内置的数据类型及使用方法
Apr 13 #Python
Python Matplotlib绘制两个Y轴图像
python前后端自定义分页器
Apr 13 #Python
利用 Python 的 Pandas和 NumPy 库来清理数据
Python matplotlib多个子图绘制整合
Python之matplotlib绘制折线图
You might like
一个PHP日历程序
2006/12/06 PHP
typecho插件编写教程(二):写一个新插件
2015/05/28 PHP
PHP之将POST数据转化为字符串的实现代码
2016/11/03 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
浅谈PHP之ThinkPHP框架使用详解
2020/07/21 PHP
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
2012/04/12 Javascript
js图片滚动效果时间可随意设定当鼠标移上去时停止
2014/06/26 Javascript
JQuery表单验证插件EasyValidator用法分析
2014/11/15 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
2016/08/09 Javascript
jQuery实现鼠标选中文字后弹出提示窗口效果【附demo源码】
2016/09/05 Javascript
vue.js之vue-cli脚手架的搭建详解
2017/05/05 Javascript
关于前后端json数据的发送与接收详解
2017/07/30 Javascript
IE11下CKEditor在Bootstrap Modal中下拉问题的解决
2019/09/25 Javascript
JS中==、===你分清楚了吗
2020/03/04 Javascript
React.js组件实现拖拽排序组件功能过程解析
2020/04/27 Javascript
python实现随机密码字典生成器示例
2014/04/09 Python
浅谈django model的get和filter方法的区别(必看篇)
2017/05/23 Python
Python开发的HTTP库requests详解
2017/08/29 Python
python画出三角形外接圆和内切圆的方法
2018/01/25 Python
详解python函数的闭包问题(内部函数与外部函数详述)
2019/05/17 Python
python ChainMap 合并字典的实现步骤
2019/06/11 Python
python实现批量nii文件转换为png图像
2019/07/18 Python
python3调用windows dos命令的例子
2019/08/14 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
python-numpy-指数分布实例详解
2019/12/07 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
2020/08/07 Python
CSS3新增布局之: flex详解
2020/06/18 HTML / CSS
希尔顿酒店中国网站:Hilton中国
2017/03/11 全球购物
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
环保专业大学生职业规划设计
2014/01/10 职场文书
统计系教授推荐信
2014/02/28 职场文书
宣传普通话标语
2014/06/27 职场文书
庆祝教师节演讲稿
2014/09/03 职场文书
微笑面对生活演讲稿
2014/09/23 职场文书
导游词之广州陈家祠
2019/10/21 职场文书
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang