今天主要学习运算符和字符串。和其他大多数的语言一样,python 中常用的操作符也有算术运算符、比较运算符等,但是又有一些差别,下面详细做一下说明
一、运算符
1. 分类:算术运算符、比较运算符、赋值运算符、逻辑运算符
2. 比较运算符:>、<、>=、<=、==、!=
x==y :比较x和y是否相等. 如果相等就是True, 否则结果是False
【例1】
a = 10
b = 20
print(a == 10)
print(a == b)
输出:
True
False
注意:
(1)所有比较运算符的结果都是布尔值
(2)比较字符串的大小的时候,不是比较两个字符串的长度而是从两个字符串的第一个字符开始比较,如果第一个字符串的第
一个符大于第二个字符串的字一个字符,结果就是true,否则false。如果两个字符串的第一个字符相等才去比较他们的第二个字符,依次类推
3. 赋值运算符: = 、 += 、-=、*= 、/=、%=、//=、**=
所有的赋值运算符左边都必须是变量,右边是表达式
4.逻辑运算符: and(与), or(或), not(非)
逻辑运算符中表达式的值都是布尔值
(1)表达式1 and 表达式2 :两个表达式的值都为True,结果才是True,否则是False
表达式1 or 表达式2 :两个表达式的值都为False,结果才是False, 否则是True。
简单做一下——进网吧的要求要求:年龄大于18并且小于50,颜值还不能低于80
age = 20
face = 90
result = age > 18 and age < 50 and face >= 80
print(result)
看看这个会输出什么
(2)not 表达式 : 如果表示式的值为True,结果就是False;表达式的值为False,结果就是True
【例】及格的要求:成绩不小于6
grade = 5 #给变量赋值的时候,后面赋的值会覆盖前的值
result = not (grade < 6)
print(result)
输出:False
5.运算符优先级
(1)赋值运算符 < 逻辑运算符 < 比较运算符 < 加减 < 乘、除、取余、整除、幂运算 < +(正号)、-(负号)
(2)可以加括号改变运算的运算顺序(遇到括号就先算括号里面的)
二、字符串
1.字符串:由单引号或者双引号括起来的文本
'acdf'
'234'
'--=3452dfg'
'我是字符串@ss'
'\nhu90'
2.python中的字符串都是Unicode字符串
3.Unicode编码:就是一种对字符的编码方式(将字符编码成对应的数字,方便计算机存储), Unicode编码又叫万国码,支持目前几乎所有的语言文字编码,Unicode包含ASCII码
4.数据存储到计算机中是以2进制的形式存的(二进制是数字)
5.字符串比较大小的时候,实质就是比字符的Unicode编码的大小
6.字符串的长度;就是指字符串中字符的个数
len(字符串):获取字符串的长度
'abc' #长度为3
' yu' #长度为3
7. 获取字符/子串
方式1:
格式: 字符串变量[下标]
下标: 从0开始的数字,代表的是某一个字符在字符串中偏移量(位置)(范围:0 ~ 字符串长度-1;)
str1 = '你好,Python'
length = len(str1)
print(length) #输出 9
print(len('akbcn;;;')) #输出 8
注意:
下标不要越界,否则会报IndexError错误
下标也可以是负数, 负的下标也不可以越界
str1 = 'Hello,Python'
# 下标也可以是负数, 负的下标也不可以越界
print(str1[-1]) # 获取的是倒数第一个字符(最后一个)
print(str1[-2]) # 获取倒数第二个字符
# print(str1[-13]) # IndexError: string index out of range
print(str1[len(str1)-1]) # 获取最后一个字符
方式2
获取字符串中某一部分的字母(获取子串)
格式: 字符串变量[开始下标:结束下标] ---> 获取从开始下标到结束下标前的所有字符
str1 = 'Hello,Python!'
print(str1[1:4]) #获取从下标是1开始,到下标是(4-1)的所有的字符
print(str1[6:10]) #获取从下标是6开始,到下标是9的所有的字符
输出:
ell
Pyth
注意:开始下标对应的字符可以取到,结束下标对应的字符是取不到的
开始下标不写,默认就是0;结束下标不写,就会取到最后一个字符
如果结束下标在开始下标的前面,就会取不到字符(不能倒着取)
print(str1[:5]) #获取从开始到下标是4为止的所有的字符
print(str1[-4:])
print(str1[:])
# 如果结束下标在开始下标的前面,就会取不到字符(不能倒着取)
print(str1[5:1]
8、字符串的运算符
(1)字符串的运算符:+, *, in ,not in,
+ : 字符串中的+操作,就是字符串连接
str2 = 'aaa' + 'bcd'
print(str2)
str3 ='aba'+'nvvf'
print(str3)
str1 = 'Hello'
str2 = 'world'
str3 = str1 + '\t' + str2
print(str3)
输出:
aaabcd
abanvvf
Hello world
str2 = 'world'
str2 += '!' # str2 = str2 + '!'
print(str2)shu
输出:
world!
* : 字符串中的*操作,就是字符串重复多少次
str1 = 'abc' * 3 # abc重复3次
print(str1)
输出:
abcabcabc
(2)In 和not in输出布尔值;
字符串1 in 字符串2: 判断字符串2中是否包含字符1
字符串1 not in 字符串2: 判断字符串1是否不在字符串2中
str1 = 'Hello'
print('He' in str1) # 判断'He'是否在str1里面(判断str1中是否包含'He')
三、print 函数的使用
1. print()函数
(1)可以打印括号中的任何内容
(2)调用print函数打印完后会换行
(3)同时打印多个内容(多个内容间用逗号隔开);
打印的时候,多个内容之间用一个空格隔开的
2. 格式化输出:输出字符串的时候,在字符串中使用字符串格式符表示变化的内容,然后在%后面的括号里面,依次使用表达式给前面的字符串格式符赋值
注:%s: 字符串 %d:整数 %f:浮点数 %c:字符 %.2f 保留小数点的后两位 %.3f 保留小数点后三位
python中的字符,就是指长度是1的字符串
3. sep参数
设置print函数的sep参数,可以改变print函数在同时打印多个内容时的分割符(默认是空格)
【例】
name ='张三'
age =18
print('我是',name,',今年',age,'岁',sep='')
输出:我是张三,今年18岁
4. print函数的结束字符串
默认是换行显示,用end可以将print内容放到同一行
print('Hello',end=' ')
print('World')
print('aaa')
输出:
Hello World
aaa
注意: 设置sep和end参数,只是当次有效
四、字符串的内置函数
1. capitalize() 将字符串的第一个字符转换为大写 (不会改变原来的字符串,而是返回一个新的字符串)
str1 = 'python student'
newStr = str1.capitalize()
print(str1, newStr)
输出:python student
2. title() 将字符串中每个单词的首字母变成大写(不会改变原来的字符串,而是返回一个新的字符串)
单词的区分:和英语区分单词的方式是一样的(以空格或者标点符号分开的字符串)
3. center(width, fillchar) 将字符串变成指定的长度,并且原字符串内容居中,剩余的位置使用指定的字符fillchar填充
str1 = 'abc'
newStr = str1.center(11,'*')
print(newStr)
输出:****abc****