文章目录
1. 用户交互
我们在编写程序的时候,往往离不开和用户之间的交流,而和用户之间的交互就需要用到输入和输出了。
当我们需要用户提供一些信息的时候,我们需要用到输入的方法input()
。
input() 函数用来接受输入数据
它的语法为 input([prompt]) #prompt是接受数据的时候提示的内容
代码示例:
input('请您输入您的用户名: ')
运行结果:
需要注意的是:在python3中input()方法返回的都是str类型
print()
方法用于打印输出
代码示例
print(*objects, sep=' ', end='\n')
1. 其中*object代表的是,print函数可以同时输出多个不同数据类型对象,
例如:
print(1, 'w', 1.2, ['XWenXiang'])
运行结果是:
1 w 1.2 ['XWenXiang']
2. sep=' ',代表多个对象之间的间隔,默认为一个空格。可以修改成自己需要
的内容(空格的个数,逗号....等等都可以)
例如,当我们改变空格距离时
print(1, 'w', 1.2, ['XWenXiang'], sep=' ')
运行的结果是:
1 w 1.2 ['XWenXiang']
对象之间的距离会比之前的大
3. end='\n',代表了输出的结尾的样式,默认的是换行符 \n 。我们可以修改
自己所需要的字符串。
例如end='' 代表了文末不换行。
1.3 格式化输出
在输出之中还存在着格式化输出。格式化输出的意义在于简便。
例如在日常中,各种手机短信除了关键信息不同,其他都是一样的
格式化输出是怎么实现的呢?格式化是通过占位符
%s
、%d
来占据位置,然后通过后面得到的数据代替占位符
代码示例:
template = '%s 你好,%s月份您的话费余额还剩%d' #创建模板
print(template % ('XWenXiang', 3, 100000000000)) #发给不同用户
print(template %('Jon', 3, -10))
运行结果:
XWenXiang 你好,3月份您的话费余额还剩100000000000
Jon 你好,3月份您的话费余额还剩-10
代码示例: 也可以直接一行语句输出
print('%s,您的年龄是%d' %('XWenXiang', 14))
注意点:
第一个注意点:
%s
可以表示任何类型的数据。%d
只能表示数字
若当给%d
其他类型的数据,程序就会报错
第二个注意点: 输出时实际的数据和占位符的数量必须一致,多一个少一个都会报错。
2. 运算符
2.1 算数运算符
算数运算符,顾名思义就是和数学的符号类似,不过有几个不同
+ 加号,让两个对象相加
- 减号,让俩个对象相减
* 乘号,让俩个对象相乘
/ 除号,让俩个对象相除
** 幂,例如 x**y 表示x的y次方
// 取整,俩个数相除取它的整数,例如 7//3 表示为 2
% 取余,俩个数相除取它的余数,例如 7&2 表示为 1
2.2 比较运算符
用来比较俩个对象,返回的值是 True 或者 False
== 等于,比较对象是否相等。 例如 5==6 返回 False
!= 不等于,比较对象是否不相等。 例如 5!=6 返回 True
> 大于号,比较是否大于。 例如 5>6 返回 False
< 小于号,比较是否小于。 例如 5>6 返回 True
>= 大于等于,比较是否大于等于。 例如 5>6 返回 False
<= 小于等于,比较是否小于等于。 例如 5>6 返回 False
2.3 赋值运算符
= 简单的赋值运算符
+= 加法赋值运算符
-= 减法赋值运算符
*= 乘法赋值运算符
/= 除法赋值运算符
%= 取模赋值运算符
**= 幂赋值运算符
//= 取整除赋值运算符
增量赋值:
实现增量运算的写法有俩种:
第一种:
x = 1
x = x + 1
x = x - 1
x = x * 2
.
.
.
第二种:较为简略
x = 1
x += 1
x -= 1
x*= 2
.
.
.
链式赋值:
我们在给多个变量名赋值同样的变量值时,会采用
x = 1
y = 1
z = 1
我们可以直接将所有变量名同时赋值,这样会更加简洁
x = y = z = 1
交叉赋值:
我们可以通过交叉赋值来对变量的值进行交换。
若是需要将俩个变量的值互换,我们可以这样操作:
x = 1
y = 2
z = x
x = y
y = z
上面的代码运行后,底层发生了下图的流程:
会发现这样会很麻烦,还有一种写法,就是交叉赋值:
x, y = y, x
这样的方法和上面的结果一致
解压复制:
当我们需要把列表的值取出赋值给多个变量名时,有下面几种方法。
第一种:
listA = [1, 2, 3, 4, 5]
a = listA[0]
b = listA[1]
c = listA[2]
d = listA[3]
e = listA[4]
print(a, b, c, d, e)
明显察觉到这样方式很麻烦
第二种:
listA = [1, 2, 3, 4, 5]
a, b, c, d, e = listA
print(a, b, c, d, e)
这样称之为解压赋值,明显会比第一种简略很多。
'''但是,需要注意的是,这种方法赋值时,需要赋值的变量名的数量必须和列表
的元素数量相同,多一个或者少一个都会报错'''
若是列表元素太多,且只需要少部分的值用来赋值时,我们可以这样解决/
解决这样的方法:
a, b, *_ = listA
'''
先用 _ (下划线)用来储存不需要的部分,可以用别的名称,但推荐使用下
划线,这也算约定俗成的习惯,看到下划线就表示这部分不需要用到。
然后*号将不要的部分放到 _ 并以列表的方式储存。
'''
# 下图用于证明 *_ 的类型是 list
个人认为,第三种方法也可行。
第三种:
listA = [1, 2, 3, 4, 5] #创建包含多个值的列表
a, b, c = listA[:3] #将需要赋值的变量名和列表切片对应
print(a, b, c) #结果和上面的也一样。
2.4 逻辑运算符
逻辑运算符有 and or not 三个
and x and y
or x or y
not not x
and 与 多个条件时,需要所有条件都满足后才会返回 True
or 或 多个条件时,只需要满足一个条件就会返回 True
and 非 用来反转,将 True 反转成 False ,或将 False 反转成 True
若是三种逻辑运算符都混在一起时,他们是有优先级的,我们只要人为的在编写初期就强制规定好顺序就行(用括号来规定)
2.5 成员运算符
成员运算是判断一个值是否在一个序列里,若在返回 True,若不在返回 False。
查找的语句是 in 和 not in
print('a' in 'apple') 返回的值是 True
print('a' not in 'apple') 返回的值是 False
2.6 身份运算符
身份运算符用来比较对象之间的内存地址
比较的语句是 is 和 is not
若内存地址一致,返回 True 否则返回 False
x is y 等价于 id(x) == id(y)
id()函数是用来获取对象的内存地址