Python基础第二节

    技术2022-07-12  75

    Python基础第二节

    链式赋值、系列解包赋值、常量

    链式赋值:x=y=123 相当于x=123;y=123 系列解包赋值:a,b,c=4,5,6 相当于a=4;b=5;c=6 用系列解包赋值实现变量值互换:a,b=b,a Python不支持定义常量。

    内置数据类型和基本算术运算符

    变量类型:整型、浮点型、布尔型、字符串型 基本算术运算符:+、-、*、/(浮点数除法),//(整数除法)、%(取余)、**(幂) divmod(x,y):获得商和余数组成的元组

    整数的不同进制+类型转换

    除十进制外、还有二进制、八进制、十六进制(可方便进行位运算)。 二进制:0B开头 八进制:0o开头 十六进制:0x开头 (以上字母大小写均可)

    其他类型转换为整型:int() int(浮点数):取整数部分 int(布尔型):True转为1,False转为0 int(字符串):若字符串为’整数’,则直接转为整数;否则报错。

    自动转型:整数与浮点数混合运算,结果直接转为浮点数。

    浮点数自动转换和强制转换

    浮点数在内存中用科学计数法表示(如3.14:314E-2)

    类型转换:float() 如:float(3),并非改变了3这个对象的数据类型,而是生成了1一个新的对象:浮点数3.0 round(): 返回四舍五入后的值

    时间的表示

    unix时间点:1970年1月1日00:00 import time time.time() #获取当前时刻,返回以秒为单位的浮点数

    布尔值

    Python3中把布尔值定义成了关键字,但本质是0与1,可与数相加。

    同一运算符

    比较两个对象的存储单元,实际比较的是对象的地址。 is:判断两个标识符是否引自同一对象 is not:判断两个标识符是否引自不同对象 (而==只是比较引用对象的值是否相等,默认调用对象的__equ__()方法。

    注:

    小整数对象[-5,256]在全局解释器范围内被放入缓存重复使用(仅在命令行执行时是如此。若是保存为文件或在pycharm中执行,则范围变为[-5,任意正整数]。is比==效率高,变量和None进行比较时,应使用is。

    字符串

    字符序列,不可变,无法对原字符串做任何修改。 字符串编码:Unicode字符集(16位) ord(): 将字符转换为对应unicode码 chr(): 将十进制数字转换为对应字符

    字符串本身有双引号:用单引号创建 字符串本身有单引号:用双引号创建 连续三个单引号或双引号可创建多行字符串。

    字符串拼接:‘a’+‘b’ 得到’ab’ ‘a’‘b’ 得到’ab’

    字符串复制:3*‘a’ 得到’aaa’

    转义字符

    使用“+特殊字符”,实现某些效果。如: \(在行尾时):续行符 \:反斜杠引号 ':单引号 ":双引号 \b:退格 \n:换行 \t:横向制表符 \r:回车

    不换行打印:print(‘a’, end=’##’) print(‘b’,end=’&&’) 输出:a##b&&

    myname=input(‘请输入名字 :‘) 输入a print(myname) 输出’a’

    字符串操作

    1.字符串中字符的替换: 字符串本身不可改变,但可以创建新的字符串对象并使变量指向新对象。 如:a=‘abcd’ a=a.replace(‘c’,‘e’) print(a) 输出’aced’

    2.字符串切片: 如:a=‘abcde’ a[:] 提取全部字符串 a[:3] 提取字符串首位至索引为2的位 a[2:] 提取字符串索引为2的位至末位 a[1:4:2] 步长为2,提取索引为1至索引为4的位 a[-3:] 提取倒数三位 a[-4:-1]: 提取倒数第四位至倒数第二位 a[::-1]: 步长为-1(从右到左反向提取) a[2:50]: 虽然超出索引值范围,但不会报错,而是会提取 索引值为2的位至末位

    3.字符串分割: spllit()可基于指定分隔符将字符串分割为多个子字符串并存入列表。如: a=‘abc def’ a.split() : [‘abc’,‘def’] a.split(‘c’): [‘ab’,’ ef’] a.split(‘f’): [‘abc de’,’’]

    4.字符串拼接: join()与split()作用相反。如: a=[‘ab’,‘cd’] ‘&’.join(a): ‘ab&cd’ ‘’.join(a):‘abcd’ 与用+号(字符串拼接符)拼接的对比:用+号,每次都会生成新的对象;而用join函数,在拼接字符串前会计算所有字符串的长度然后逐一拷贝,仅新建一次对象。尽量避免使用字符串拼接符,效率过低。join函数性能更优。

    5.字符串驻留机制: Python对符合标识符规则的字符串会启动字符串驻留机制。

    6.字符串成员操作符: 关键字in/not in:判断子字符串是否存在于字符串中

    字符串常用方法

    (1)a='abcde’ len(a): 字符串长度 a.startwith(‘a’): 判断是否以指定字符串开头 a.endwith(‘a’): 判断是否以指定字符串结尾 a.find(‘c’): 第一次出现指定字符串的位置(索引值) a.rfind(‘c’): 最后一次出现指定字符串的位置 a.count(‘b’): 指定字符串出现次数 a.isalnum(): 判断是否全部字符都是字母或数字 a.isalpha(): 判断是否只由字母组成(含汉字) a.isdigit(): 判断是否只由数字组成 a.isspace(): 判断是否为空白符 a.isupper(): 判断是否为大写字母 a.islower(): 判断是否为小写字母 (2)b=’&abc&abc&' b.strip(‘&’): 去除字符串首尾指定信息 b.lstrip(’&’): 去除字符串左边指定信息 b.rstrip(’&’): 去除字符串右边指定信息 (3)c='ha ha ha Ha’ c.capitalize(): 产生新的字符串,首字母大写 c.title(): 产生新的字符串,每个单词都首字母大写 c.upper(): 产生新的字符串,所有字母都大写 c.lower(): 产生新的字符串,所有字母小写 c.swapcase(): 产生新的字符串,所有字母大小写转换 (4)d='abc’ d.center(10,’&’): ‘&&&abc&&&&’ d.center(10): ’ abc ’ d.ljust(10): ‘abc ’ d.rjust(10): ’ abc’

    字符串格式化

    format用法示例: a=‘名字是{0},年龄是{1}’ a.format(‘miao’,3) 输出:‘名字是miao,年龄是3’ a=‘名字是{name},年龄是{age}’ a.format(age=3,name=‘miao’} 输出:‘名字是miao,年龄是3’

    填充与对齐: 填充常与对齐一起使用。 ^ < > 分别为居中、左对齐、右对齐。后接宽度。 :号后面带填充的字符(只能是1个字符,默认为空格) 如:‘我是{0},我爱吃{1:&^8}’.format(‘miao’,‘fish’) 输出:‘我是miao,我爱吃&&fish&&’

    数字格式化

    示例:‘我是{0},我走了{1:.2f}公里’.format(‘miao’,10.2356) 输出:‘我是miao,我走了10.23公里’ str.format() 格式化数字的多种其他方法: 参见https://www.runoob.com/python/att-string-format.html

    Processed: 0.034, SQL: 9