脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - python语法 之与用户交互和运算符

python语法 之与用户交互和运算符

2022-11-29 10:38JasonJi Python

这篇文章主要介绍了python语法 之与用户交互和运算符,用户交互就是人往计算机中input/输入数据,计算机print/输出结果,下文更多相关内容需要的朋友可以参考一下

一 程序与用户交互

1.1、什么是与用户交互

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

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

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

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

1.3、如何与用户交互

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

1.3.1 输入input:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
# 在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:

?
1
2
3
4
5
6
7
8
9
10
>>> 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为例先来介绍一下增量赋值

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

?
1
2
3
4
5
>>> z=10
>>> y=z
>>> x=y
>>> x,y,z
(10, 10, 10)

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

?
1
2
3
>>> x=y=z=10
>>> x,y,z
(10, 10, 10)

交叉赋值

我们定义两个变量m与n

?
1
2
>>> m=10
>>> n=20

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

?
1
2
3
4
5
>>> temp=m
>>> m=n
>>> n=temp
>>> m,n
(20, 10)

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

?
1
2
3
4
5
>>> m=10
>>> n=20
>>> m,n=n,m # 交叉赋值
>>> m,n
(20, 10)

解压赋值

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

?
1
2
3
4
5
6
7
8
9
>>> 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
2
3
4
5
6
7
8
9
10
11
#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)

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

?
1
2
3
>>> a,b,*_=nums
>>> a,b
(11, 22)

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

2.4 逻辑运算符

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

2.4.1 连续多个and

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

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

2.4.2 连续多个or

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

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

2.4.3 混用and、or、not

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

2.5 成员运算符

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

?
1
2
3
4
>>> not 'lili' in ['jack','tom','robin']
True
>>> 'lili' not in ['jack','tom','robin']
True

2.6 身份运算符

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#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 用户交互和运算符内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/Dominic-Ji/articles/15959879.html

延伸 · 阅读

精彩推荐
  • PythonPython 如何保存json文件并格式化

    Python 如何保存json文件并格式化

    这篇文章主要介绍了Python 如何保存json文件并格式化,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    孔天逸4412021-10-19
  • PythonWindows下python3.7安装教程

    Windows下python3.7安装教程

    这篇文章主要为大家详细介绍了Windows下python3.7安装教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    duandian0110462021-03-24
  • Pythonpython列表排序用 sort()和sorted()的区别

    python列表排序用 sort()和sorted()的区别

    这篇文章主要介绍了python列表排序用 sort()和sorted()的区别,主要比较 Python 中用于列表排序的两种函数 sort() 和 sorted(),选择合适的排序函数,下文详细内容...

    宁萌Julie11212022-11-11
  • Pythonpython OpenCV学习笔记

    python OpenCV学习笔记

    这篇文章主要介绍了python OpenCV的相关资料,帮助大家更好的理解和学习使用python的opencv,感兴趣的朋友可以了解下...

    LightningMaster5602021-09-30
  • Python用scikit-learn和pandas学习线性回归的方法

    用scikit-learn和pandas学习线性回归的方法

    这篇文章主要介绍了用scikit-learn和pandas学习线性回归的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的...

    刘建平Pinard9572021-07-17
  • Python对Pandas MultiIndex(多重索引)详解

    对Pandas MultiIndex(多重索引)详解

    今天小编就为大家分享一篇对Pandas MultiIndex(多重索引)详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    Claroja9702021-04-20
  • Pythonpython对html代码进行escape编码的方法

    python对html代码进行escape编码的方法

    这篇文章主要介绍了python对html代码进行escape编码的方法,涉及Python中escape方法的使用技巧,非常具有实用价值,需要的朋友可以参考下...

    重负在身11032020-06-21
  • Python完美解决Pycharm中matplotlib画图中文乱码问题

    完美解决Pycharm中matplotlib画图中文乱码问题

    这篇文章主要介绍了完美解决Pycharm中matplotlib画图中文乱码问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可...

    _Devil.8492021-08-24