Python学习总结【连载】(二)
2018.06.13 Juttachen
概述
+ 06 运算符
- 算数运算符
- 比较运算符
- 赋值运算符
- 逻辑运算符
- 运算符的优先级
+ 07 字符串
- 概念
- Unicode编码
- Python 中Unicode编码与字符串的转换
- 字符串的长度
- 获取字符/子串
- 字符串的运算符
+ 08 print函数的使用
- print函数的普通用法
- print函数的高级用法
+ 09 字符串的内置函数
- 控制字符串的大小写函数
- 控制字符串的长度函数
六、运算符
1. 算数运算符
参见《Python学习总结【连载】(一)》文末。
2. 比较算数符
分为 >(大于),<(小于),>=,<=,==(等于),!=(不等于)。
所有比较运算符的结果都是布尔值
x>y :比较x是否大于y,如果是,结果就是True,否则是False
x>=y:x大于或等于y都正确
x==y :比较x,y是否相等(一个=就是赋值,两个=才是相等)
例子:
print(10>5)
print('abcdef'>'bcd')
由第二排代码可知,字符串也可以比较。
比较字符串的大小的时候,不是比较两个字符串的长度,而是从第一个字符开始比较,如果第一个字符串第一个符大于第二个字符串的第一个字符,结果就是ture,否则false。
如果两个字符串的第一个字符相等他们才会比较到第二个字符,依次类推。
原理:字符串比较其实是编码大小的比较,字符串长度不一样的话,短的字符串用0来补位,0最小。
3.赋值运算符
赋值运算符有 = ,+= ,-= ,= ,/= ,%= ,//= ,*= 几种。
所有的赋值运算符左边都必须是 变量,右边是 表达式。
补充:表达式:本身有值的语句,比如:10,a,10+a,10>20,10+20/43等。
表达式的值都是布尔值。*
# a + 10 = 10 #右边不是变量,就会报错 SyntaxError: can't assign to operator
a = 30
b =20
b=a
如果a的值是基本数据类型(数字,字符串),直接将a里面存的赋值给b;如果值是对象,传递的则是变量中存储的地址。
a += 1
print(a)
a +=10 # a = a+10
print(a)
其他赋值运算符与例子中的+=相似。
复合赋值运算符中不能有空格,要紧挨一起,不然报错。
4.逻辑运算符
逻辑运算符由 and(与),or(或),not(非)组成。
运算符and的判断方式:
表达式1 and 表达式2 :两个表达式的值都是true的话结果才是true。(and 即并且,是true的情况只有一种)
print(True and True)
print(True and False)
print(False and False)
print(False and False)
例子:
应用场景 网吧年龄
要求:1.年龄大于18并且小于50
2.颜值不能低于80
age = 40
face = 90
result = age>18 and age<50
and face>= 80
print(result)
运算符or的判断方式:
表达式1 or 表达式2:两个表达式的值都为False,结果才是False,否则是Tru。(or 即为或者)
print(True or True)
print(True or False)
print(False or True)
print(False or False)
例子:
应用场景 奖学金
1.奖学金要求:绩点大于8.5或者操评大于90
2.奖学金新要求:1.绩点大于9.7
2.成绩8.5~9.7,操评大于85
grade =9.0
score =70
result= grade>8.5 or score >90
print(result)
result=grade>9.7 or (grade>=8.5 and grade<=9.7 and score>85)
print(result)
运算符的not判断方式:
如果表达式的值为真,结果就是假;表达式的值为假,结果就是真。
print(not True)
print(not False)
应用场景 判断成绩是否及格
要求:成绩不小于6
grade =5 #给变量赋值的时候,后面赋的值会覆盖前面的值
result = not(grade<6)
print(result)
练习:进入游乐场的年龄
要求:不大于12岁的,并不小于2岁
age =10
result = not(age>12) and not(age<2)
print(result)
# 简单用法
result = (not age>12) and (not age<2)
# 要注意语句之间的关系,什么相关什么不相关。
5.运算符的优先级(由低到高)
赋值运算符<逻辑运算符<比较运算符<加减<乘除,取余,整除,幂运算<取正负
在运算表达式中,加()可以改变运算优先级,改变运算顺序。
七、字符串
1.概念
由单引号或双引号括起来的文本。
python中的字符串都是Unicode字符串。
2.Unicode编码
Unicode编码
- 就是一种对字符的编码方式。(将字符编码成对应的数字,方便计算机存储)
- Unicode编码又称万国码,是支持目前几乎所有的语言文字编码。
- Unicode编码包含ASCII码。
数据存储到计算机中是以二进制的形式存的。(二进制是数字)
ASCII码中(大写大小)小于(小写大小)
3.Python 中Unicode编码与字符串的转换
将Unicode码转换成字符
char = chr(0x4e00)
print(char)
char= chr(0x4e01)
print(char)
将字符转换成Unicode码
结果是十进制形式
code = ord('宁')
print(code)
for x in range(0x4e00,0x9FA5):
print(chr(x),end='')
print()
#Unicode中文字符表
'''
字符串比大小的时候,实质就是比字符的Unicode编码的大小
4.字符串的相关运算
字符串的长度
就是指字符串中字符的个数
'abc' #长度为3
' 12' #长度为3
# len('字符串'):获取字符串长度
str1 = '你好,Python'
length = len(str1)
print(length)
获取字符/子串
a.获取某一个字符
格式:字符串变量【下标】(下标:从零开始的数字,代表的是某一个字符在字符串中的偏移量(位置))
(范围:0字符串长度-1[0len-1]或者-1-字符串长度[-1len])
str1 = 'Hello,Python'
print(str1[0]) #获取第0个字符
print(str1[5]) #获取从0开始数的第五个字符
# print(str1[20]) # 超出长度,报错IndexError: string index out of range
print(str1[-1]) #获取的是倒数第一个字符(最后一个)
print(str1[-2]) #获取倒数第二个字符
# print(str1[-13]) # 超出长度,报错IndexError: string index out of range
print(str1[len(str1)-1])
b.获取字符串中某部分的字母(获取子串)
格式:字符串变量【开始下标:结束下标】---->获取从开始下标到结束下标前的所有字符
注意:开始下标对应的字符可以取到,结束下标对应的字符时候取不到的。
print(str1[1:4]) #获取从下标是1开始,到下标是(4-1)的所有的字符
print(str1[6:10])
#开始下标不写,默认从0开始
print(str1[:6]) #获取从开始到下标是5为止的所有的字符
#结束下标不写,就会取到最后一个字符
print(str1[-4:])
# 同理前后不写就是取完所有字符
# 如果结束下标在开始下标的前面(左前右后),就会取不到字符(不能倒着取)
print(str1[5:1])
字符串的运算符
字符串的运算符: +,,in ,not in*
+:字符串连接
str1='o'
str2='m'
str3=str1+str2+'g'
:字符串中的操作,就是字符串重复多少次
str2 +='!' #str2 = str2+'!'
print(str3*3+','+str2)
in:字符串1 in 字符串2:判断字符串2中是否包含字符串1,结果是布尔值
str1='Hello'
print('he' in str1) #判断'He'是否在str1里面(判断str1中是否包含'He')
not in:字符串1 not in 字符串2:刚好和in相反,判断是否没有。
八、print函数的使用
1. print函数的普通用法
print()函数可以打印括号中的任何内容。
每次调用print函数打印完后会换行。
print(10)
str1='aaa'
print(str1)
同时打印多个内容,多个内容可以用逗号隔开;打印的时候,多个内容之间用空格隔开的。
print("aa",100,str1)
2. print函数的高级用法
格式化输出
比如:我是xxx,今年xx岁
格式:print('%s %d'%(var1,var2)):
在输出字符串的时候,在字符串中使用字符串格式符表示变化的内容。
然后在%后面的括号里面,依次使用表达式给前面的字符串格式符赋值。
常用格式符
%s:字符串
%d:整数
%f:浮点数
%c:字符或编码
%o:八进制
(注意这些(包括数字)都是字符串)
%X/%x 十六进制
例子:
name = '张山'
age = 18
print("我是%s,今年%d岁"%(name,age))
#%f的使用方式:
print('余额:%f万元'%(10.25)) #默认保留小数点后六位
print('余额:%.2f万元'%(10.25)) #%.2f 保留小数点的后两位,%.3 保留小数点后三位
# %c的使用方式
print('%c'%('a')) #打印的是a,注意一定要是字符。
print('%c'%(0x4e01)) #打印的是 丁
print('%X,%x'%(15,15)) #结果是F,f,有大小写区别
print('我是'+name+"今年"+'age'+'岁')
# 注意:age是数字,加的时候要加引号变成字符串
# 注意:加号两边只能都是数字或者都是字符串,不能一个数字一个字符串
print('我是',name,"今年",age,'岁')
#这种打法会让中间有空格,解决方法:设置print函数的sep参数,可以改变print 函数在同时打印多个内容时的分隔符(默认是空格)
print('我是',name,"今年",age,'岁',sep='') #打印多个数据的时候,数据之间没有间隙
print('aa',100,'bbb',sep='--') #打印多个数据的时候,数据之间以‘--’隔开
end参数使用
设置print函数的结束字符串,默认是'\n'(也就是默认换行)
注意:设置sep和end参数,只是当次有效。
print('Hello',end=' ')
print('World')
sep参数使用
print('我是',name,"今年",age,'岁')
#这种打法会让中间有空格,解决方法:设置print函数的sep参数,可以改变print 函数在同时打印多个内容时的分隔符(默认是空格)
print('我是',name,"今年",age,'岁',sep='') #打印多个数据的时候,数据之间没有间隙
print('aa',100,'bbb',sep='--') #打印多个数据的时候,数据之间以‘--’隔开
注意:设置sep和end参数,只是当次有效。
九、字符串的内置函数
1. 控制字符串的大小写函数
capitalize() 将字符串的第一个字符转换为大写。(不会改变原来的字符串,而是返回一个新的字符串)
str1 = 'python student'
newStr = str1.capitalize()
print(str1,newStr)
title() 将字符串中每个单词的首字母大写(不会改变原来的字符串,而是返回一个新的字符串)
!单词区分,和英语区分单词的方式是一样的,一般是以空格或者标点符号来区分。
newStr = str1.title()
print(str1,newStr)
2. 控制字符串的长度函数
center(width,fillchar) 将字符串变成指定的长度,并且原字符串内容居中,剩余的位置使用指定的字符fillchar填充。
str1 = 'abc'
newStr = str1.center(11,'*')
print(newStr)
网友评论