Python基础:用户交互与核心运算符详解
本文详解Python中的用户交互机制与基础运算符。涵盖input接收字符串输入、print格式化输出及占位符使用。深入解析算术、比较、逻辑(and/or/not)、成员与身份运算符,重点讲解增量、链式、交叉及解压赋值技巧,帮助初学者掌握Python编程核心语法。
一 程序与用户交互
1.1、什么是与用户交互
用户交互是指人类向计算机输入数据,以及计算机向人类返回处理结果的过程。
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)
补充说明:字符串、字典、元组及集合类型均支持解压赋值。
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。
>>> 2 > 1 or 1 != 1 or True or 3 > 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 用户交互和运算符内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









