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中for循环详解
Jan 17 Python
python中的内置函数getattr()介绍及示例
Jul 20 Python
Django中更新多个对象数据与删除对象的方法
Jul 17 Python
python 异常处理总结
Oct 18 Python
python XlsxWriter模块创建aexcel表格的实例讲解
May 03 Python
python 脚本生成随机 字母 + 数字密码功能
May 26 Python
python中从str中提取元素到list以及将list转换为str的方法
Jun 26 Python
解决python给列表里添加字典时被最后一个覆盖的问题
Jan 21 Python
Python实现CNN的多通道输入实例
Jan 17 Python
Python实现不规则图形填充的思路
Feb 02 Python
详解向scrapy中的spider传递参数的几种方法(2种)
Sep 28 Python
Python实现粒子群算法的示例
Feb 14 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数据结构 算法(PHP描述) 简单选择排序 simple selection sort
2011/08/09 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
2013/08/31 PHP
PHP实现的下载远程图片自定义函数分享
2015/01/28 PHP
使用纯php代码实现页面伪静态的方法
2015/07/25 PHP
PHP上传Excel文件导入数据到MySQL数据库示例
2016/10/25 PHP
php实现的读取CSV文件函数示例
2017/02/07 PHP
基于jquery的button默认enter事件(回车事件)。
2011/05/18 Javascript
屏蔽script注入小例子
2013/11/12 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
2013/12/31 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
2015/11/24 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
JavaScript实现按键精灵的原理分析
2017/02/21 Javascript
Web前端框架Angular4.0.0 正式版发布
2017/03/28 Javascript
深入理解vue中的$set
2017/06/01 Javascript
jQuery使用ajax_动力节点Java学院整理
2017/07/05 jQuery
最通俗易懂的javascript变量提升详解
2017/08/05 Javascript
详解tween.js 中文使用指南
2018/01/05 Javascript
node.js文件上传重命名以及移动位置的示例代码
2018/01/19 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
2018/10/19 Javascript
Jquery实现获取子元素的方法分析
2019/08/24 jQuery
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
2014/01/19 Python
浅析python 内置字符串处理函数的使用方法
2014/06/11 Python
Python决策树和随机森林算法实例详解
2018/01/30 Python
扩展Django admin的list_filter()可使用范围方法
2019/08/21 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
2020/08/31 Python
CSS3实现内凹圆角的实例代码
2017/05/04 HTML / CSS
HTML5表单验证特性(知识点小结)
2020/03/10 HTML / CSS
EVE LOM英国官网:全世界最好的洁面膏
2017/10/30 全球购物
采购经理岗位职责
2014/02/16 职场文书
竞聘书模板
2014/03/31 职场文书
银行行长竞聘演讲稿
2014/04/23 职场文书
反邪教标语
2014/06/23 职场文书
工作失误检讨书范文
2015/01/26 职场文书
养成教育主题班会
2015/08/13 职场文书
《青山不老》教学反思
2016/02/22 职场文书
Python万能模板案例之matplotlib绘制直方图的基本配置
2022/04/13 Python