python基础知识五
Python字符串对齐方法(ljust()、rjust()和center()
ljust()方法
ljust() 方法的功能是向指定字符串的右侧填充指定字符,从而达到左对齐文本的目的。
格式如下:S.ljust(width[, fillchar])
S:表示要进行填充的字符串
width:表示包括 S 本身长度在内,字符串要占的总长度;
fillchar:作为可选参数,用来指定填充字符串时所用的字符,默认情况使用空格。
1 | n = "xiaoyang" |
rjust()方法
rjust() 和 ljust() 方法类似,唯一的不同在于,rjust() 方法是向字符串的左侧填充指定字符,从而达到右对齐文本的目的。
格式如下:S.rjust(width[, fillchar])
各个参数的含义和 ljust() 完全相同
1 | n = "xiaoyang" |
center()方法
center() 字符串方法与 ljust() 和 rjust() 的用法类似,但它让文本居中,而不是左对齐或右对齐。
格式如下:S.center(width[, fillchar])
其中各个参数的含义和 ljust()、rjust() 方法相同。
1 | n = "xiaoyang" |
startswith()方法
startswith() 方法用于检索字符串是否以指定字符串开头,如果是返回 True;反之返回 False。
语法格式: str.startswith(sub[,start[,end]])
str:表示原字符串;
sub:要检索的子串;
start:指定检索开始的起始位置索引,如果不指定,则默认从头开始检索;
end:指定检索的结束位置索引,如果不指定,则默认一直检索在结束。
1 | a = "xiaoyang" |
endswith()方法
endswith() 方法用于检索字符串是否以指定字符串结尾,如果是则返回 True;反之则返回 False。
语法格式:
str.endswith(sub[,start[,end]])
str:表示原字符串;
sub:表示要检索的字符串;
start:指定检索开始时的起始位置索引(字符串第一个字符对应的索引值为 0),如果不指定,默认从头开始检索。
end:指定检索的结束位置索引,如果不指定,默认一直检索到结束。
1 | a = "xiaoyang" |
title()方法
title() 方法用于将字符串中每个单词的首字母转为大写,其他字母全部转为小写,转换完成后,此方法会返回转换得到的字符串。如果字符串中没有需要被转换的字符,此方法会将字符串原封不动地返回。
语法格式:str.title()
str 表示要进行转换的字符串。
1 | str = "I LIKE C" |
lower()方法
lower() 方法用于将字符串中的所有大写字母转换为小写字母,转换完成后,该方法会返回新得到的字符串。如果字符串中原本就都是小写字母,则该方法会返回原字符串。
语法格式:str.lowerr()
1 | str = "I LIKE C" |
upper()方法
upper() 的功能和 lower() 方法恰好相反,它用于将字符串中的所有小写字母转换为大写字母,和以上两种方法的返回方式相同,即如果转换成功,则返回新字符串;反之,则返回原字符串。
语法格式:str.upper()
str 表示要进行转换的字符串。
1 | str = "i like you" |
strip() , lstrip(), rstrip()
删除字符串前后(左右两侧)的空格或特殊字符。
lstrip():删除字符串前面(左边)的空格或特殊字符。
rstrip():删除字符串后面(右边)的空格或特殊字符。
注意,Python 的 str 是不可变的(不可变的意思是指,字符串一旦形成,它所包含的字符序列就不能发生任何改变),因此这三个方法只是返回字符串前面或后面空白被删除之后的副本,并不会改变字符串本身。
strip()方法
strip() 方法用于删除字符串左右两个的空格和特殊字符
语法格式为: str.strip([chars])
str 表示原字符串
[chars] 用来指定要删除的字符,可以同时指定多个,如果不手动指定,则默认会删除空格以及制表符、回车符、换行符等特殊字符。
1 | str = " I LIKE C " |
分析运行结果不难看出,通过 strip() 确实能够删除字符串左右两侧的空格和特殊字符,但并没有真正改变字符串本身
lstrip()方法
lstrip() 方法用于去掉字符串左侧的空格和特殊字符。
语法格式:str.lstrip([chars])
str 和 chars 参数的含义,分别同 strip() 语法格式中的 str 和 chars 完全相同。
1 | str = " I LIKE C " |
.rstrip()方法
rstrip() 方法用于删除字符串右侧的空格和特殊字符
语法格式: str.rstrip([chars])
str 和 chars 参数的含义和前面 2 种方法语法格式中的参数完全相同。
1 | str = " I LIKE C " |
encode()方法
encode() 方法为字符串类型(str)提供的方法,用于将 str 类型转换成 bytes 类型,这个过程也称为“编码”。
语法格式:
str.encode([encoding=”utf-8”][,errors=”strict”])
注意,格式中用 [] 括起来的参数为可选参数,也就是说,在使用此方法时,可以使用 [] 中的参数,也可以不使用。
1 | str = "xiaoyang你好" |
decode()方法
和 encode() 方法正好相反,decode() 方法用于将 bytes 类型的二进制数据转换为 str 类型,这个过程也称为“解码”。
语法格式:
bytes.decode([encoding=”utf-8”][,errors=”strict”])
1 | str = "xiaoyang你好" |
dir() 函数 和 help()函数
用来列出某个类或者某个模块中的全部内容,包括变量、方法、函数和类等
它的用法为:dir(obj)
obj 表示要查看的对象。obj 可以不写,此时 dir() 会列出当前范围内的变量、方法和定义的类型。
help() 函数用来查看某个函数或者模块的帮助文档
它的用法为:help(obj)
obj 表示要查看的对象。obj 可以不写,此时 help() 会进入帮助子程序。
掌握了以上两个函数,我们就可以自行查阅 Python 中所有方法、函数、变量、类的用法和功能了。
使用 help() 查看某个函数的用法时,函数名后边不能带括号,例如将上面的命令写作help(str.lower())就是错误的
1 | def nihao( a, b): |
空语句 pass
pass 是 Python 中的关键字,用来让解释器跳过此处,什么都不做。
就像上面的情况,有时候程序需要占一个位置,或者放一条语句,但又不希望这条语句做任何事情,此时就可以通过 pass 语句来实现。使用 pass 语句比使用注释更加优雅。
assert断言函数及用法
assert 语句通常用于检查用户的输入是否符合规定
当 assert 语句后的表达式值为真时,程序继续执行;反之,程序停止执行,并报 AssertionError 错误
语法格式:assert 条件表达式 [,描述信息]
[,描述信息] 作为可选参数,用于对条件表达式可能产生的异常进行描述
1 | a= 2 |
for 循环
语法格式如下:
for 迭代变量 in 字符串|列表|元组|字典|集合:代码块
格式中,迭代变量用于存放从序列类型变量中读取出来的元素,
所以一般不会在循环中对迭代变量手动赋值;代码块指的是具有相同缩进格式的多行代码(和 while 一样),由于和循环结构联用,因此代码块又称为循环体。
1 | for i in range(1,20): |
for 循环遍历字典
在使用 for 循环遍历字典时,经常会用到和字典相关的 3 个方法,即 items()、keys() 以及 values()。如果使用 for 循环直接遍历字典,则迭代变量会被先后赋值为每个键值对中的键。
1 | a = {"1":"nihao", "2": "hello", "3":"Hi"} |
Python 中,无论是 while 循环还是 for 循环,其后都可以紧跟着一个 else 代码块,它的作用是当循环条件为 False 跳出循环时,程序会最先执行 else 代码块中的代码。
2 种强制离开当前循环体的办法:Continue语句和break语句
使用 continue 语句,可以跳过执行本次循环体中剩余的代码,转而执行下一次的循环。只用 break 语句,可以完全终止当前循环。
列表推导式
列表推导式可以利用 range 区间、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的列表。
语法格式:[表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] ]
[if 条件表达式] 不是必须的,可以使用,也可以省略。
1 | a = [x**x for x in range(1,5)] |
元组推导式
元组推导式可以利用 range 区间、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的元组。
语法格式:(表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] )
用 [] 括起来的部分,可以使用,也可以省略。
如果我们想要使用元组推导式获得新元组或新元组中的元素,有以下三种方式:
使用 tuple() 函数,可以直接将生成器对象转换成元组
1
2a = (x for x in range(1,10))
print(tuple(a))要使用tuple函数不然输出的是a的一段地址
直接使用 for 循环遍历生成器对象,可以获得各个元素
1
2
3
4a = (x for x in range(1,10))
for i in a:
print(i,end=' ')
print(tuple(a))使用 next() 方法遍历生成器对象,也可以获得各个元素
1
2
3
4a = (x for x in range(3))
print(a.__next__())
print(a.__next__())
print(a.__next__())
字典推导式
Python 中,使用字典推导式可以借助列表、元组、字典、集合以及 range 区间,快速生成符合需求的字典。
语法格式:{表达式 for 迭代变量 in 可迭代对象 [if 条件表达式]}
用 [] 括起来的部分,可以使用,也可以省略。
1 | listdemo = {"123" : "一二三", "456":"四五六"} |
集合推导式
Python中,使用集合推导式可以借助列表、元组、字典、集合以及 range 区间,快速生成符合需求的集合。
集合推导式的语法格式和字典推导式完全相同:
{ 表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] }
其中,用 [] 括起来的部分,可以使用,也可以省略。
既然生成的是集合,那么其保存的元素必须是唯一的
1 | setnew = {i**2 for i in range(3)} |