Python基础语法(赋值、数据运算、数据类型转换、字符串各种操作)
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
本文地址:https://blog.csdn.net/dayouzi66666/article/details/107075385
上一篇: 数据结构算法(统计封闭岛屿的数目dfs)
下一篇: Django企业开发实战-学员管理系统