一、与用户的交互
为什么交互?(了解)
-
首先,我们之前知道了计算机的发明,就是为了奴役计算机,解放劳动力。假设我们现在写了一个ATM系统取代了柜员,如果我们要在这台ATM上取款,那么这个ATM是不是就会要求我们插入银行卡后输入密码才能在这太ATM上取款?这就是一种交互。
-
如何交互?(掌握)
print('-'*100)
input("请输入你的姓名:")
print('*'*100)</div>
----------------------------------------------------------------------------------------------------
请输入你的姓名: jin
****************************************************************************************************
-
现在让我们手写一个ATM的登录系统:
请输入你的姓名: jin
请输入你的密码:520
<class 'str'>
<class 'str'> -
通过上面的打印结果,我们可以发现input()方法的作用只是接收值,并且无论我们输入的值时数字类型、字符串类型、列表类型,input的接收都是字符串类型。
Python2和Python3的交互(熟悉)
-
name = raw_input('请输入你的姓名:')
pwd = raw_input('请输入你的密码:')
print(type(name)) # 'str'
print(type(pwd)) # 'str'
-
python2当中的raw_input()和python3中的input()是一模一样的。
x = input('username:') #必须输入明确的数据类型,你输入什么类型则接收什么数据类型输入'egon'而不是egon,否则会报错
-
python3的交互相比较python2来说更合理。
二、格式化输出
-
占位符(掌握)
程序中经常会有这样的场景:要球用户输入信息,然后打印成固定的格式
比如
My name is xxx,my age is xxx.
很明显,用逗号进行字符串拼接,只能把用户输入的名字和年龄放到末尾,无法放到指定的xxx位置,而且数字也必须经过str(数字)的转换才能与字符串进行拼接,非常之麻烦,我们来试一试。
age = 19
print =('My name is xxx,my age is'+str(age))
My name is xxx, my age is 19
上面使用的方法比较麻烦。这就需要用到占位符,如: %s (针对所有的数据类型)
name = 'jin'
age = 19
print( 'my name is %s my age is %s'%(name,age))my name is jin my age is 19
-
format格式化(了解)
讲真,很鸡肋的格式化的方法,如果你需要使用这个,遇到多参数的时候,还是需要句子后面噼里啪啦传上一大堆参数。使用这个还不如使用占位符。
name = 'jin'
age = 19
print('my name is {0}.my age is {1}.'.format(name,age))my name is jin.my age is 19.
-
f-String格式化(掌握)
相比较占位符的方式,python3.6新增了f-String格式化的方式,比较简单易懂,这是目前我们用的最多的方式。
name = 'jin'
age = 19
print(f'my name is {name}.my age is {age}.')my name is jin.my age is 19.
三、基本运算符
-
算术运算符(掌握)
算术运算就是加减乘除,例:
print(1+2)
print(2-1)
print(2*3)
print(1/2)
print(10//3)
print(10%3)
print(10**3)3
1
6
0.5
3
1
1000此处贴图,以下假设变量a为10,变量b为20。
-
比较运算(熟悉)
此处直接贴图
例:
pwd = '321'
print(pwd != '321')
print(pwd == '321')False
True -
赋值运算符(掌握)
此处直接贴图
例:
height = 180
height = height + 20
print(height)200
-
逻辑运算符(掌握)
例:
# 从做到右的方式找到逻辑运算符,找到逻辑运算符的左边,左边成立,再去找到逻辑运算符的右边
print(3 > 3 and 1 > 2 or 2 > 1)True
-
身份运算符(掌握)
身份运算符用于比较两个对象的存储单元。
is和==的区别:is是用于判断两个变量引用对象是否为同一个(是否在同一块内存空间中),==用于判断引用变量的值是否相等。
例:
x = 300
y = 300
z = 300
print(f'x is y : {x is y}')
print(f'x == y : {x == y}')
print(f'x is z : {x is z}')
print(f'x == z : {x == z}')x is y : False
x == y : True
x is z : False
x == z : True -
Python运算符优先级(掌握)
python运算符优先级相当于数学中的先算乘除再算加减,但是这很愚蠢,优先级高的你括号起来就行了。
链式赋值(掌握)
例:
a = b = c = d = 11
print(f'a:{a},b:{b},c:{c},d:{d}')a:11,b:11,c:11,d:11
a = 11 b = 11 c = 11 d = 11 print(f'a:{a},b:{b},c:{c},d:{d}')
a:11,b:11,c:11,d:11
-
交叉赋值(掌握)
例:
x = 110
y = 112
x, y = y, x
print(f'x:{x}')
print(f'y:{y}')x:112
y:110 -
解压缩(掌握)
如果我们给出一个列表,我们需要一次性取出多个值,我们是不是可以用下面的方式实现呢?
例:
name_list = ['jin','gang','xi']
x = name_list[0]
y = name_list[1]
z = name_list[2]
print(f'x:{x},y:{y},z:{z}')x:jin,y:gang,z:xi
变量值得解压缩可以这样理解。超市打包多个商品放在一起,解压缩其实就是把多个商品一次性拿出来。
name_list = ['jin','gang','xi']
x, y, z = name_list
print(f'x:{x},y:{y},z:{z}')x:jin,y:gang,z:xi
有时候我们解压缩的值可能不是我们想要的,那么可以使用下划线,万能的下划线。
name_list =['jin','gang','xi']
name1,_,name3 = name_list # _相当于告诉计算机不要了,不能以_开头和结尾
print(name1)
print(name3)jin
xi
。。。。。。