04-4 python语法入门之与用户交互、运算符

[TOC]

一 程序与用户交互

1.1、什么是与用户交互

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

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

插图:恶搞图12

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

比如,过去我们去银行取钱,用户需要把帐号密码告诉柜员,而现在,柜员被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&[email protected]

1.3.3 输出之格式化输出

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

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

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

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

插图:恶搞图13

(3)如何格式化输出?

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

# %s占位符:可以接收任意类型的值
# %d占位符:只能接收数字
>>> print(‘亲爱的%s你好!你%s月的话费是%d,余额是%d‘ %(‘tony‘,12,103,11))
亲爱的tony你好!你12月的话费是103,余额是11

# 练习1:接收用户输入,打印成指定格式
name = input(‘your name: ‘)
age = input(‘your age: ‘) #用户输入18,会存成字符串18,无法传给%d
print(‘My name is %s,my age is %s‘ %(name,age))

# 练习2:用户输入姓名、年龄、工作、爱好 ,然后打印成以下格式
------------ info of Tony -----------
Name  : Tony
Age   : 22
Sex   : male
Job   : Teacher
------------- end -----------------

二 基本运算符

2.1 算术运算符

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

2.2 比较运算符

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

2.3 赋值运算符

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

###2.3.1 增量赋值

###2.3.2 链式赋值

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

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

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

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

插图:恶搞图14

###2.3.3 交叉赋值

我们定义两个变量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)

插图:恶搞图15

2.3.4 解压赋值

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

>>> 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)

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

>>> a,b,c,d,e=nums # nums包含多个值,就好比一个压缩包,解压赋值因此得名
>>> a,b,c,d,e
(11, 22, 33, 44, 55)

插图:恶搞图16

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

#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:字符串、字典、元组、集合类型都支持解压赋值

插图:恶搞图17

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

原文地址:https://blog.51cto.com/egon09/2460997

时间: 2024-07-29 12:59:10

04-4 python语法入门之与用户交互、运算符的相关文章

python语法入门之与用户交互,常用运算符

python语法入门之与用户交互,常用运算符 一.用户与程序的交互 1.1什么是用户交互 用户交互就是往计算机input/输入数据,计算机print/输出结果. 1.2为什么要与用户交互 交互时为了能够像人一样与用户沟通方便. 1.3 如何与用户交互 交互的本质就是输入输出. 3.1 输入input: 在python3中input无论输入的什么类型的内容,都会存为字符串类型. name = input('请输入用户名:')请输入用户名:123>>> print(type(name))&l

【2020Python修炼记20】Python语法入门—迭代器

[目录] 一.迭代器 1.什么是迭代器 2.为何要有迭代器 3.如何使用迭代器 一.迭代器 1.什么是迭代器 #迭代器即迭代的工具,那什么是迭代呢?#迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值#只是单纯地重复,因而不是迭代 while True: #只是单纯地重复,因而不是迭代 print('===>') l=[1,2,3] count=0 while count < len(l): #迭代 print(l[count]) count+=1 2.为何要有

04-1 python语法入门之变量

目录 一 引入 二 变量 1.什么是变量? 2.为什么要有变量? 3.怎么使用变量 (先定义.后调用) 3.1 变量的定义与使用 3.2 变量名的命名规范 3.3 变量名的命名风格 3.4 变量值的三大特性 三 常量 1.什么是常量? 2.为什么要有常量? 3.怎么使用常量? 四 视频链接 https://www.bilibili.com/video/av73342471/?p=4 一 引入 我们学习python语言是为了控制计算机.让计算机能够像人一样去工作,所以在python这门语言中,所有

Python语法入门02

引子 上一篇我们主要了解到了python这门编程语言,今天来说一下关于用户交互,数据类型和运算符方面的学习内容 用户交互 什么是用户交互? 用户交互就是人往计算机里输入数据(input),计算机输出结果(print) 很简单一个例子,我们在pycharm中输入以下代码 age = input("请输入年龄:") #往计算机中输入数据 print(type(age)) #让计算机输出age的数据类型 这时,计算机就会接收用户输入,其实无论输入什么类型的数据,最终返回的一定是字符串(str

python语法入门之流程控制

流程控制 一.流程控制 ? 流程控制就是控制流程,具体控制程序的执行流程,而程序的执行流程分为三种结构:顺序结构.分支结构(用if判断).循环结构(用到while与for) ? 主要目的就是让计算帮助人类工作,所以,编写的程序需要有判断力 ? 语法结构:python是通过缩进来决定代码的归属(4个空格表示一个缩进) 二.分支结构 if 主要用于判断事物的对错,真假,是否可行 if 条件 #如果结果为True,就依次执行:代码1,代码2 代码1 代码2 -- elif 条件2 #可以加N多个eli

04-3 python语法入门之垃圾回收机制

[TOC] 一 引入 ? 解释器在执行到定义变量的语法时,会申请内存空间来存放变量的值,而内存的容量是有限的,这就涉及到变量值所占用内存空间的回收问题,当一个变量值没有用了(简称垃圾)就应该将其占用的内存给回收掉,那什么样的变量值是没有用的呢? ? 由于变量名是访问到变量值的唯一方式,所以当一个变量值不再关联任何变量名时,我们就无法再访问到该变量值了,该变量值就是没有用的,就应该被当成一个垃圾回收.毫无疑问,内存空间的申请与回收是非常耗费精力的事情,而且存在很大的危险性,稍有不慎就有可能引发内存

04-5 python语法入门之流程控制

[TOC] #一 引子: 流程控制即控制流程,具体指控制程序的执行流程,而程序的执行流程分为三种结构:顺序结构(之前我们写的代码都是顺序结构).分支结构(用到if判断).循环结构(用到while与for) 插图:恶搞图20 #二 分支结构 2.1 什么是分支结构 分支结构就是根据条件判断的真假去执行不同分支对应的子代码 2.2 为什么要用分支结构 人类某些时候需要根据条件来决定做什么事情,比如:如果今天下雨,就带伞 所以程序中必须有相应的机制来控制计算机具备人的这种判断能力 2.3 如何使用分支

04-2 python语法入门之基本数据类型

[TOC] 一 引入 我们学习变量是为了让计算机能够像人一样去记忆事物的某种状态,而变量的值就是用来存储事物状态的,很明显事物的状态分成不同种类的(比如人的年龄,身高,职位,工资等等),所以变量值也应该有不同的类型,例如 salary = 3.1 # 用浮点型去记录薪资 age = 18 # 用整型去记录年龄 name = 'lili' # 用字符串类型去记录人名 插图:恶搞图04 二 数字类型 ##2.1 int整型 2.1.1 作用 用来记录人的年龄,出生年份,学生人数等整数相关的状态 2.

Python语法入门之基本数据类型

目录 一.整型(int) 二.浮点型(float) 三.字符串类型(str) 字符串在python2和python3中的细微区别 四.复数 五.列表(list) 六.数据字典(dict) 定义方式 七.布尔值(bool) 定义 ==和is 一.整型(int) python2中有long类型 python3中没有long类型,只有int类型 整形,用来记录年龄,人数等整数相关的状态 age = 21 students = 65 print(type(age)) <class 'int'> # 类