Python字符串对齐方法(ljust()、rjust()和center()
ljust()方法

ljust() 方法的功能是向指定字符串的右侧填充指定字符,从而达到左对齐文本的目的。
格式如下:S.ljust(width[, fillchar])

S:表示要进行填充的字符串
width:表示包括 S 本身长度在内,字符串要占的总长度;
fillchar:作为可选参数,用来指定填充字符串时所用的字符,默认情况使用空格。

1
2
n = "xiaoyang"
print(n.ljust(15,"1"))
rjust()方法

rjust() 和 ljust() 方法类似,唯一的不同在于,rjust() 方法是向字符串的左侧填充指定字符,从而达到右对齐文本的目的。
格式如下:S.rjust(width[, fillchar])
各个参数的含义和 ljust() 完全相同

1
2
n = "xiaoyang"
print(n.rjust(15,"1"))
center()方法

center() 字符串方法与 ljust() 和 rjust() 的用法类似,但它让文本居中,而不是左对齐或右对齐。
格式如下:S.center(width[, fillchar])
其中各个参数的含义和 ljust()、rjust() 方法相同。

1
2
n = "xiaoyang"
print(n.center(15,"1"))
startswith()方法

startswith() 方法用于检索字符串是否以指定字符串开头,如果是返回 True;反之返回 False。
语法格式: str.startswith(sub[,start[,end]])

str:表示原字符串;
sub:要检索的子串;
start:指定检索开始的起始位置索引,如果不指定,则默认从头开始检索;
end:指定检索的结束位置索引,如果不指定,则默认一直检索在结束。

1
2
a = "xiaoyang"
print(a.startswith("xiao"))
endswith()方法

endswith() 方法用于检索字符串是否以指定字符串结尾,如果是则返回 True;反之则返回 False。
语法格式:
str.endswith(sub[,start[,end]])
str:表示原字符串;
sub:表示要检索的字符串;
start:指定检索开始时的起始位置索引(字符串第一个字符对应的索引值为 0),如果不指定,默认从头开始检索。
end:指定检索的结束位置索引,如果不指定,默认一直检索到结束。

1
2
a = "xiaoyang"
print(a.endwith("xiao"))
title()方法

title() 方法用于将字符串中每个单词的首字母转为大写,其他字母全部转为小写,转换完成后,此方法会返回转换得到的字符串。如果字符串中没有需要被转换的字符,此方法会将字符串原封不动地返回。
语法格式:str.title()
str 表示要进行转换的字符串。

1
2
str = "I LIKE C"
print(str.title())
lower()方法

lower() 方法用于将字符串中的所有大写字母转换为小写字母,转换完成后,该方法会返回新得到的字符串。如果字符串中原本就都是小写字母,则该方法会返回原字符串。
语法格式:str.lowerr()

1
2
str = "I LIKE C"
print(str.lower())
upper()方法

upper() 的功能和 lower() 方法恰好相反,它用于将字符串中的所有小写字母转换为大写字母,和以上两种方法的返回方式相同,即如果转换成功,则返回新字符串;反之,则返回原字符串。
语法格式:str.upper()
str 表示要进行转换的字符串。

1
2
str = "i like you"
print(str.upper())
strip() , lstrip(), rstrip()

删除字符串前后(左右两侧)的空格或特殊字符。

lstrip():删除字符串前面(左边)的空格或特殊字符。

rstrip():删除字符串后面(右边)的空格或特殊字符。
注意,Python 的 str 是不可变的(不可变的意思是指,字符串一旦形成,它所包含的字符序列就不能发生任何改变),因此这三个方法只是返回字符串前面或后面空白被删除之后的副本,并不会改变字符串本身

strip()方法

strip() 方法用于删除字符串左右两个的空格和特殊字符

语法格式为: str.strip([chars])
str 表示原字符串
[chars] 用来指定要删除的字符,可以同时指定多个,如果不手动指定,则默认会删除空格以及制表符、回车符、换行符等特殊字符。

1
2
str = "                 I LIKE C "
print(str.strip())

分析运行结果不难看出,通过 strip() 确实能够删除字符串左右两侧的空格和特殊字符,但并没有真正改变字符串本身

lstrip()方法

lstrip() 方法用于去掉字符串左侧的空格和特殊字符。
语法格式:str.lstrip([chars])
str 和 chars 参数的含义,分别同 strip() 语法格式中的 str 和 chars 完全相同。

1
2
str = "                 I LIKE C "
print(str.ltrip())
.rstrip()方法

rstrip() 方法用于删除字符串右侧的空格和特殊字符
语法格式: str.rstrip([chars])
str 和 chars 参数的含义和前面 2 种方法语法格式中的参数完全相同。

1
2
str = "                 I LIKE C     "
print(str.rstrip())
encode()方法

encode() 方法为字符串类型(str)提供的方法,用于将 str 类型转换成 bytes 类型,这个过程也称为“编码”。
语法格式:
str.encode([encoding=”utf-8”][,errors=”strict”])

注意,格式中用 [] 括起来的参数为可选参数,也就是说,在使用此方法时,可以使用 [] 中的参数,也可以不使用。

1
2
str = "xiaoyang你好"
print(str.encode())
decode()方法

和 encode() 方法正好相反,decode() 方法用于将 bytes 类型的二进制数据转换为 str 类型,这个过程也称为“解码”。
语法格式:
bytes.decode([encoding=”utf-8”][,errors=”strict”])

1
2
3
str = "xiaoyang你好"
b = str.encode()
print(b.decode())
dir() 函数 和 help()函数

用来列出某个类或者某个模块中的全部内容,包括变量、方法、函数和类等
它的用法为:dir(obj)

obj 表示要查看的对象。obj 可以不写,此时 dir() 会列出当前范围内的变量、方法和定义的类型。

help() 函数用来查看某个函数或者模块的帮助文档
它的用法为:help(obj)
obj 表示要查看的对象。obj 可以不写,此时 help() 会进入帮助子程序。
掌握了以上两个函数,我们就可以自行查阅 Python 中所有方法、函数、变量、类的用法和功能了。

使用 help() 查看某个函数的用法时,函数名后边不能带括号,例如将上面的命令写作help(str.lower())就是错误的

1
2
3
4
5
6
7
8
9
def nihao( a, b):
"""输出俩个数之和"""
print(a+b)
a1 = 1
a2 = 2
nihao(a1,a2)
print(dir(nihao))
print()
print(help(nihao))
空语句 pass

pass 是 Python 中的关键字,用来让解释器跳过此处,什么都不做。
就像上面的情况,有时候程序需要占一个位置,或者放一条语句,但又不希望这条语句做任何事情,此时就可以通过 pass 语句来实现。使用 pass 语句比使用注释更加优雅。

assert断言函数及用法

assert 语句通常用于检查用户的输入是否符合规定
当 assert 语句后的表达式值为真时,程序继续执行;反之,程序停止执行,并报 AssertionError 错误

语法格式:assert 条件表达式 [,描述信息]

[,描述信息] 作为可选参数,用于对条件表达式可能产生的异常进行描述

1
2
3
a= 2
b = 3
assert a<b , "error"
for 循环

语法格式如下:
for 迭代变量 in 字符串|列表|元组|字典|集合:代码块

格式中,迭代变量用于存放从序列类型变量中读取出来的元素,
所以一般不会在循环中对迭代变量手动赋值;代码块指的是具有相同缩进格式的多行代码(和 while 一样),由于和循环结构联用,因此代码块又称为循环体。

1
2
for i in  range(1,20):
print(i)
for 循环遍历字典

在使用 for 循环遍历字典时,经常会用到和字典相关的 3 个方法,即 items()、keys() 以及 values()。如果使用 for 循环直接遍历字典,则迭代变量会被先后赋值为每个键值对中的键。

1
2
3
a = {"1":"nihao", "2": "hello", "3":"Hi"}
for i in a.items():
print(i)

Python 中,无论是 while 循环还是 for 循环,其后都可以紧跟着一个 else 代码块,它的作用是当循环条件为 False 跳出循环时,程序会最先执行 else 代码块中的代码。

2 种强制离开当前循环体的办法:Continue语句和break语句

使用 continue 语句,可以跳过执行本次循环体中剩余的代码,转而执行下一次的循环。只用 break 语句,可以完全终止当前循环。

列表推导式

列表推导式可以利用 range 区间、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的列表。
语法格式:[表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] ]

[if 条件表达式] 不是必须的,可以使用,也可以省略。

1
2
a = [x**x for x in range(1,5)]
print(a)
元组推导式

元组推导式可以利用 range 区间、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的元组。
语法格式:(表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] )

用 [] 括起来的部分,可以使用,也可以省略。

如果我们想要使用元组推导式获得新元组或新元组中的元素,有以下三种方式:

  1. 使用 tuple() 函数,可以直接将生成器对象转换成元组

    1
    2
    a = (x for x in range(1,10))
    print(tuple(a))

    要使用tuple函数不然输出的是a的一段地址

  2. 直接使用 for 循环遍历生成器对象,可以获得各个元素

    1
    2
    3
    4
    a = (x for x in range(1,10))
    for i in a:
    print(i,end=' ')
    print(tuple(a))
  3. 使用 next() 方法遍历生成器对象,也可以获得各个元素

    1
    2
    3
    4
    a = (x for x in range(3))
    print(a.__next__())
    print(a.__next__())
    print(a.__next__())
字典推导式

Python 中,使用字典推导式可以借助列表、元组、字典、集合以及 range 区间,快速生成符合需求的字典。
语法格式:{表达式 for 迭代变量 in 可迭代对象 [if 条件表达式]}

用 [] 括起来的部分,可以使用,也可以省略。

1
2
3
listdemo = {"123" : "一二三", "456":"四五六"}
newdict = {key:len(key) for key in listdemo}
print(newdict)
集合推导式

Python中,使用集合推导式可以借助列表、元组、字典、集合以及 range 区间,快速生成符合需求的集合。

集合推导式的语法格式和字典推导式完全相同:

{ 表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] }
其中,用 [] 括起来的部分,可以使用,也可以省略。

既然生成的是集合,那么其保存的元素必须是唯一的

1
2
setnew = {i**2 for i in range(3)}
print(setnew)