python基础知识查漏补缺

目录

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####>>>
 

字符串format用法:

函数原型: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))    #圆括号为生成器表达式,返回一个生成器
<generator object <genexpr> at 0x00000245F5E9C200>
>>> {i:i*3 for i in range(5)}    #大括号为字典解析器,返回一个字典
{0: 0, 1: 3, 2: 6, 3: 9, 4: 12}
>>>
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值