目录
python中真值表:
循环else子句
三目运算符替代表达式
print函数的用法:
字符串format用法:
python对数字的处理方法:
类型判断
随机数
字符串分割
列表解析器、字典解析器、生成器表达式
python中真值表:
“String”:True
0:False
>=1:True
<=-1:True
"" 空字符串:False
() 空元祖:False
[] 空列表: False
{} 空字典:False
None: False
循环else子句
如果循环正常的执行结束,就执行else子句;如果使用break终止,else子句不会执行。
语法:
while condition:
block
else:
block
for element in iteratable:
block
else:
block
三目运算符替代表达式
源代码:
if a > b:
print(b, a)
else:
print(a, b)
三目运算符:
真值 if 条件 else 假值
即上面代码可以表示为:print(b, a) if a > b else print(b, a)
print函数的用法:
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
sep :输出的多个value之间的分割符,默认不分割
end:输出之后的结束符,默认输出之后换行
file:输出定向文件,默认输出到sys.stdout
flush:是否强制刷新输出缓存流
例如:print('hello', 'world', sep = '***', end='####')
输出结果:
>>> print('hello', 'world', sep = '***', end='####')
hello***world####>>>
函数原型:S.format(*args, **kwargs) -> str
value1 = val1
value2 = val2
value3 = val3
例1: "{} {} {}".format(value1, value2, value3) 输出:"val1 val2 val3"
例2:"{2}****{0}*****{1}".format(value1, value2, value3) 输出:"val3****val1*****val2"
其中{}为占位符,{2}代码索引为2的参数
例:"{0} * {1} = {2:<6}".format(1, 2, 3) 输出:"1 * 2 = 3 "
例:"{0} * {1} = {2:>6}".format(1, 2, 3) 输出:"1 * 2 = 3"
其中{2:>6}表示对索引为2的值采用占6个字符并向右对齐,相反{2:<6}表示向左对齐,省略{2:6}表示默认向右对齐
九九乘法表打印代码:
for i in range(1, 10):
for j in range(1, i+1):
print("{1}X{0}={2:<2}".format(i, j, i*j), end = ' ')
print()
s = "{server} {1}:{0}".format("8000", "127.0.0.1", server = "Web Server Info")
s = "{0[0]} {0[1]}".format(("abc", "def"))
'{0}*{1}={2:<2}'.format(3, 2, 2*3) #输出第三个数字占两位并左对齐输出 3*2= 6
'{0}*{1}={2:<02}'.format(3, 2, 2*3) #输出的第三个数据占两位并左对齐,并且空位用0补充,输出: 3*2=60
'{0}*{1}={2:>02}'.format(3, 2, 2*3) #输出的第三个数字占两位并右对齐且空位用0补充,输出:3*2=06
'{:^30}'.format("centered") #该域输出占30位,并居中输出,输出:' centered '
'{:*^30}'.format("centered") #该域输出占30位,居中输出,并用*填充空位,输出:'***********centered***********'
进制打印:
"int:{0:d}; hex:{0:x}; oct:{0:o}; bin:{0:b}".format(42) #输出:'int:42; hex:2a; oct:52; bin:101010'
"int:{0:d}; hex:{0:#x}; oct:{0:#o}; bin:{0:#b}".format(42) #输出:'int:42; hex:0x2a; oct:0o52; bin:0b101010'
python对数字的处理方法:
import math
round() ----四舍六入,五取最近的偶数
math.floor() --向下取整
math.ceil() ---向上取整
int() --取整,与//相同作用
math.pi ---π
math.sqrt() ---开平方
math.pow() ----x ** y
类型判断
type(obj) ---返回类型而不是字符串,比如type('q') 返回str类
isinstance(obj, class_or_tuple) ---返回布尔值,比如:isinstance(6, int) isinstance(6, (int, str))
随机数
random模块
randint(a, b) 随机返回[a, b]之间的整数
choice(seq) 从非空序列的元素中随机挑选一个元素
randrange([start, ]stop [, step]) 从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1
random.shuffle() -->None 就地打乱列表信息
字符串分割
从左向右切割,maxsplit为最大切割次数
S.split(sep=None, maxsplit=-1) -> list of strings
从右向左切割(可用于取某个目录字符串的最后一级路径名)
S.rsplit(sep=None, maxsplit=-1) -> list of strings
按行切割字符串:
S.splitlines([keepends]) -> list of strings #将\r、\n、\r\n都认为是换行符
分割字符串二:
S.partition(sep) -> (head, sep, tail)
从左至右分割,如果遇到分隔符就把字符串分割成两部分,并返回头、分隔符、尾的三元组;如果没有找到分隔符,就返回头、两个空元素的三元组
S.rpartition(sep) -> (head, sep, tail)
从右向左分割,如果遇到分隔符就把字符串分割成两部分,并返回头、分隔符、尾的三元组;如果没有找到分隔符,就返回头、两个空元素的三元组
S.title() #标题的每个单词首字母大写
S.center(width [,fillchar]) #居中打印,width:打印宽度,fillchar:填充的字符
S.zfill(width) #居右打印,width:打印宽度,左边用0填充
S.ljust(width [,fillchar]) #走对齐,width:打印宽度,fillchar:填充的字符
S.rjust(width [,fillchar]) #右对齐,width:打印宽度,fillchar:填充的字符
S.strip([chars]) #从字符串两端去除指定的字符集chars,默认去除空白字符
S.lstrip([chars]) #从字符串左边去除指定的字符集chars,默认去除空白字符
S.rstrip([chars]) #从字符串右端去除指定的字符集chars,默认去除空白字符
字符串查找:find没有找到返回-1, index没有找到,抛出异常
S.find(sub[, start[, end]]) -> int
S.rfind(sub[, start[, end]]) -> int
S.index(sub[, start[, end]]) -> int
S.rindex(sub[, start[, end]]) -> int
列表解析器、字典解析器、生成器表达式
>>> [i for i in range(5)] #方括号为列表解析器,返回一个列表
[0, 1, 2, 3, 4]
>>> (i for i in range(5)) #圆括号为生成器表达式,返回一个生成器
at 0x00000245F5E9C200>
>>> {i:i*3 for i in range(5)} #大括号为字典解析器,返回一个字典
{0: 0, 1: 3, 2: 6, 3: 9, 4: 12}
>>>