Day02_Python@lisongye-运算符&字符串1
- ------------------------------START------------------------------
lsy_01 开发软件IDE
- pycharm
使用pycharm,登录网站下载
https://www.jetbrains.com/pycharm/download/
建议使用专业版
lsy_02 运算符
python运算中,可以根据运算结果分为两类,
第一类:结果是“数值”的,主要是:算数运算、赋值运算;
第二类:结果是“布尔值”的,主要是:比较运算、逻辑运算、成员运算。
-
算数运算:
常见的加、减、乘、除、余、商等运算,运算结果为具体的数值。
a = 10 * 10 -
赋值运算:
将数值赋值给变量,用变量表示数值。
a = 1
a = a + 1 ⇒ a += 1
a = a - 1 ⇒ a -= 1
a = a * 1 ⇒ a *= 1 -
比较运算:
通过比较符判断数值的大小,返回布尔值。
a = 1 < 5
print(type(a),a)
比较运算符:
==
>
<
>=
<=
!= -
逻辑运算:
表示“和”、“或”关系,返回
a = 1 >5 and 2 < 4
print(type,a)
逻辑运算符:
and
or -
成员运算:
在指定的序列中能否找到,能找到返回True,不能找到返回False。
print(“l” in “lisongye”)
print(“i” not in “lisongye”)
成员运算符:
in
not in
##lisongye是字符串,i是字符 -
其他:
布尔值bool:
真(True)或假(False)
not True == False执行顺序:
先执行括号内的,从左向右执行。
False后边是and,系统默认后边都是假的,
True后边是or,默认后边都是真的。
推荐使用括号控制执行顺序。
结论:
True 遇到or ===》 True
True 遇到and ===》 继续走
Flase 遇到or ===》 继续走
True 遇到and ===》 Flase
基本数据类型
不同数据类型具有不同的功能,相同数据类型具有相同的功能。
lsy_03 数字 int
针对于数字,所有都被保存为int类型。
-
将数字字符串转换为数字类型:
示例1:
a = “1234”
print(type(a),a)
b = int(a) #转换类型
print(type(b),b)
示例2:
num = “0011”
v = int(num, base=2) #根据2进制转换成10进制
print(v) -
属性:
示例:
b = 123
n2 = b.bit_length() #至少用几位二进制表示
print(n2)
lsy_04 字符串 str
-
str.capitalize()
首字母大写,其他字母小写
语法:
str.capitalize()
示例:
>>> a = “liSongye”
>>> b = a.capitalize()
>>> print(b)
Lisongye -
str.casefold() & str.lower()
大写字母变小写字母
casefold()相较于lower()能够转换更多的字符,功能更加强大。
语法:
str.casefold()
str.lower()
示例:
>>>d = b.casefold()
>>>e = b.lower()
>>>print(d)
>>>print(e)
lisongye -
str.center()
将原字符串居中并填充至长度width的新字符串
语法:
str.center(width,fillchar)
width:填充后字符串的总宽度
fillchar:填充字符,默认“空格”
示例:
>>> a = “lisongye”
>>> b = a.center(20,"-")
>>> print(b)
------lisongye------ -
str.count()
统计字符串中某个字符出现的次数
语法:
str.count(sub,start = 0,end = len(string))
sub:搜索的子字符串。
start:开始搜索的位置,默认第一个字符索引值为0。
end:结束的位置,默认字符串最后一个位置。
示例:
width:填充后字符串的总宽度
fillchar:填充字符,默认“空格”
>>> a = “hahahahaheiheiha”
>>> b = a.count(“ha”,2)
>>> print(b)
4 -
str.endwith() & str. startwith()
判断字符串是否以指定字符串结尾/开始,返回布尔值
语法:
str.endwith(suffix[, start[, end]])
str.startwith(suffix[, start[, end]])
suffix:可以是一个字符串或者一个元素。
start:字符中开始的位置。
end:字符中结束的位置(均以0开始)。
返回值:布尔值(True/False)
示例:
width:填充后字符串的总宽度
fillchar:填充字符,默认“空格”
>>> a = “hahahahaheiheiha”
>>>b = a.endswith(“ha”,10)
>>>c = a.startswith(“ha”,1,9)
>>>print(b)
>>>print©
True
False -
str.expandtabs()
将字符串中的tab符号(\t)转为空格输出
语法:
str.expandtabs(tabsize = 8)
tabsize: 指定tab转为空格的字符数(默认为8chars)。
示例:
>>> test = “12345678\t9”
>>>v = test.expandtabs(5)
>>>print(v,len(v))
12345678 9 -
str.find()
检测字符串中是否包含子字符串str,如果在指定的开始和结束范围内,则返回开始的索引值,否则返回-1
语法:
str.find(str,beg = 0,end = len(string))
str:检索的字符串
beg:开始检索位置,默认0
end:结束检索位置,默认字符串长度
返回值:
包含:开始检索的位置。
不包含:-1
示例:
>>>a = “hahahahaheiheiha”
>>>b = a.find(“ha”,1,10)
>>>print(b)
2 -
str.index()
和find功能相同,只是不包含的情况下返回一个异常
语法:
str.index(str,beg = 0,end = len(string))
str:检索的字符串
beg:开始检索位置,默认0
end:结束检索位置,默认字符串长度
返回值:
包含:开始检索的位置。
不包含:返回异常
示例:
>>>a = “hahahahaheiheiha”
>>>b = a.find(“ha”,9,10)
>>>print(b)
>>>c = a.index(“ha”,9,10)
>>>print©
-1
Traceback (most recent call last):
File “C:/Users/SongYeLi/PycharmProjects/python/day10/s2.py”, line 4, in
c = a.index(“ha”,9,10)
ValueError: substring not found -
str.format()
格式化函数,通过{}来替代字段,从而完成字符串的格式化
语法:
str.format(str,str
示例:
>>> a = “i am {},age {}”
>>>b = a.format(“lisongye”,“18”)
>>>print(b)
>>>c = “i am {0},age {1}”
>>>d = c.format(“lisongye”,18)
>>>print(d)
>>>e = “i am {1},age {0}”
>>>f = e.format(“lisongye”,18)
>>>print(f)
>>>g = “i am {name},age{n}”
>>>f = g.format(name = ‘lisongye’,n = 18)
>>>print(f)
>>>h = “i am {name},age{n}”
>>>i = h.format_map({“name”:‘lisongye’,“n”:18})
>>>print(i)
i am lisongye,age 18
i am lisongye,age 18
i am 18,age lisongye
i am lisongye,age18
i am lisongye,age18 -
str.isalnum()
检测字符串是否由字母和数字组成,返回布尔值
语法:
str.isalnum()
示例:
>>> a = “lisongye123456”
>>> b = a.isalnum()
>>> print(b)
Ture -
str.isalpha()
检测字符串是否由字母(汉字)组成,返回布尔值
语法:
str.isalpha()
示例:
>>> a = “lisongye”
>>> b = a.isalpha()
>>> print(b)
Ture -
str.isdecimal() & str.isdigit() & str.isnumeric()
检测字符串是否是数字组成,返回布尔值
语法:
str.isdecimal()
str.isdigit()
str.isnumeric()
示例:
>>> a = ‘二②’
>>>print(a.isdecimal()) #常用
>>>print(a.isdigit()) #支持特殊字符的数字
>>>print(a.isnumeric()) #支持特殊字符的数字,大写汉字的数字
False
False
True -
str.isprintable()
检测字符串是否存在不可显示的字符,返回布尔值
语法:
str.isprintable()
示例:
>>>a = ‘ahda\tdaas’ # \t是不可显示字符
>>>print(a.isprintable())
False
注:
\t: 制表符
\n:换行符 -
str.isspace()
检测字符串是否全部由空格组成,返回布尔值
语法:
str.isspace()
示例:
>>> a = ‘aadsa’
>>>print(a.isspace())
False -
str.istitle()
检测字符串是否由标题(首字母大写)组成,返回布尔值
语法:
str.istitle()
示例:
>>> a = ‘my name is lisongye’
>>> print(a.istitle())
False
补充:
str.title() 将字符串转为标题。 -
str.join()
将序列中的元素以指定的字符连接生成一个新的字符串
语法:
str1.join(str2)
示例:
>>> a = “lisongye”
>>> b = ‘_’.join(a)
>>> print(b)
l_i_s_o_n_g_y_e -
str.islower() & str.isupper()
检测字符串是否都是小写/大写字母组成,返回布尔值
语法:
str.islower()
str.isupper()
示例:
>>> a = ‘lisongye’
>>> print(a.islower())
>>> print(a.isupper())
Ture
False
注意:
str.lower:字符串中所有大写字符转小写.
str.upper():字符串中所有小写字符转大写. -
str.lstrip() &str.strip() &str.rstrip()
去除字符串左侧、两侧、右侧的空格(包含\t\n)
语法:
str.islower()
示例:
>>> a = ’ \nLSY \t’
>>>print(a.lstrip()) #去除左侧空格
>>>print(a.strip()) #去除两侧空格
>>>print(a.rstrip()) #去除右侧空格 -
str.maketrans() & str.translate()
str.maketrans() 用于创建字符映射的转换表,对于接受两个参数简单的调用方式,第一个是需要转换的字符,第二个是表示转换的目标。两个字符串的长度必须相同,为一一对应的关系。
str.translate()根据字符映射转换表转换字符串的字符
语法:
str.maketrans(intab, outtab)
intab – 字符串中要替代的字符组成的字符串。
outtab – 相应的映射字符的字符串。
str.translate(table)
table – 翻译表,翻译表是通过 maketrans() 方法转换而来。
示例:
>>>a = ‘aeiou’
>>>b = ‘12345’
>>>c = ‘lisongyeaeiou’
>>>d = c.maketrans(a,b)
>>>print(c.translate(d))
>>>print(c.translate(c.maketrans(a,b)))
l3s4ngy212345
l3s4ngy212345 -
**str.partition() & str.rpartition() **
根据指定的分隔符将字符串进行分割,返回一个3元的元组。
第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。
str.rpartition(str2)与partition() 相同,从右侧开始分割
语法:
str.partition(str2)
str.rpartition(str2)
str2: 指定的分隔符。
示例:
>>>a = ‘www.lsyli.cn’
>>>b = a.partition(’.’)
>>>print(b)
(‘www’, ‘.’, ‘lsyli.cn’)
(‘www.lsyli’, ‘.’, ‘cn’) -
str.split() & str.splitlines()
根据指定的分隔符将字符串进行分割,并指定切割次数。
splitlines()根据空格进行分割
语法:
str.split(str="", num=string.count(str))
str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num – 分割次数。默认为 -1, 即分隔所有。
示例:
>>> a = ‘www.lsyli.cn lsy lisongye’
>>> b = a.split(’.’,2)
>>> c = a.splitlines() #根据空格进行分割
>>> print(b)
>>> print©
[‘www’, ‘lsyli’, ‘cn lsy lisongye’]
[‘www.lsyli.cn lsy lisongye’]
. -
str.startwith() & str.endwith()
检测字符串是否以xx开头/结尾,返回布尔值
语法:
str.startwith()
str.endwith()
示例:
>>> a = ‘www.lsyli.cn lsy lisongye’
>>>b = a.startswith(‘www’)
>>>c = a.endswith(‘www’)
>>>print(b)
>>>print©
Ture
False -
str.swapcase()
大小写转换
语法:
str.swapcase()
示例:
>>> a = ‘www.lsyli.cn lsy lisongye’
>>> print(a.swapcase())
WWW.LSYLI.CN LSY LISONGYE -
str.isidentifier()
判断字符串是否是有效的 Python 标识符,可用来判断变量名是否合法
语法:
str.swapcase()
示例:
>>> a = “class”
>>> print(a.isidentifier())
True -
str.replace()
把字符串中的 旧字符串替换成新字符串
语法:
str.replace(old, new[, max])
old – 将被替换的子字符串。
new – 新字符串,用于替换old子字符串。
max – 可选字符串, 替换不超过 max 次
示例:
>>> a = ‘this is a dog’
>>> print(a.replace(‘dog’,‘cat’))
this is a cat
lsy_05 7个基本魔法(必会)
-
str.join()
将序列中的元素以指定的字符连接生成一个新的字符串
语法:
str1.join(str2)
示例:
>>> a = “lisongye”
>>> b = ‘_’.join(a)
>>> print(b)
l_i_s_o_n_g_y_e -
str.split() & str.splitlines()
根据指定的分隔符将字符串进行分割,并指定切割次数。
splitlines()根据空格进行分割
语法:
str.split(str="", num=string.count(str))
str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num – 分割次数。默认为 -1, 即分隔所有。
示例:
>>> a = ‘www.lsyli.cn lsy lisongye’
>>> b = a.split(’.’,2)
>>> c = a.splitlines() #根据空格进行分割
>>> print(b)
>>> print©
[‘www’, ‘lsyli’, ‘cn lsy lisongye’]
[‘www.lsyli.cn lsy lisongye’] -
str.find()
检测字符串中是否包含子字符串str,如果在指定的开始和结束范围内,则返回开始的索引值,否则返回-1
语法:
str.find(str,beg = 0,end = len(string))
str:检索的字符串
beg:开始检索位置,默认0
end:结束检索位置,默认字符串长度
返回值:
包含:开始检索的位置。
不包含:-1
示例:
>>>a = “hahahahaheiheiha”
>>>b = a.find(“ha”,1,10)
>>>print(b)
2 -
str.lstrip() &str.strip() &str.rstrip()
去除字符串左侧、两侧、右侧的空格(包含\t\n)
语法:
str.islower()
示例:
>>> a = ’ \nLSY \t’
>>>print(a.lstrip()) #去除左侧空格
>>>print(a.strip()) #去除两侧空格
>>>print(a.rstrip()) #去除右侧空格
5、6. str.islower() & str.isupper()
检测字符串是否都是小写/大写字母组成,返回布尔值
语法:
str.islower()
str.isupper()
示例:
>>> a = ‘lisongye’
>>> print(a.islower())
>>> print(a.isupper())
Ture
False
注意:
str.lower:字符串中所有大写字符转小写.
str.upper():字符串中所有小写字符转大写.
- str.replace()
把字符串中的 旧字符串替换成新字符串
语法:
str.replace(old, new[, max])
old – 将被替换的子字符串。
new – 新字符串,用于替换old子字符串。
max – 可选字符串, 替换不超过 max 次
示例:
>>> a = ‘this is a dog’
>>> print(a.replace(‘dog’,‘cat’))
this is a cat
lsy_06 4个灰魔法(必会)
- for循环:
for 变量 in 字符串 :
程序块
break
continue
示例:
>>> a = ‘lisongye’
>>>for i in a :
>>>print(i)
-
索引,下标,获取字符串中的某一个字符:
>>>a = ‘lisongye’
>>>b = a[2]
>>>print(b) -
切片(获取某一段字符):
>>>a = ‘lisongye’
>>>b = a[2:4]
>>>print(b)
注:b = a[2:4] a<=n[a:b]<b -
获取长度:
len获取当前字符串中由几个字符组成。
>>>a = ‘lisongye’
>>>print(len(a)) -
获取连续或不连续的数字:
range(start, stop[, step])
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
示例:
>>>range(10) # 从 0 开始到 10
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>range(1, 11) # 从 1 开始到 11
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>>range(0, 30, 5) # 步长为 5
[0, 5, 10, 15, 20, 25]
>>>range(0, 10, 3) # 步长为 3
[0, 3, 6, 9]
>>>range(0, -10, -1) # 负数
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>>range(0)
[]
>>>range(1, 0)
[]
lsy_06 1个深度魔法(必会)
**字符串一旦创建,不可修改。**
**一旦修改或者拼接,会重新生成字符串。**
- E-mail:lisongye@126.com
- WeChat:baobeilsy
- Copyright © lisongye All Rights Reserved
- ------------------------------END------------------------------