拜师教育第一阶段day2_python基础

    第二章  编程基础概念

1.链式赋值(将同一对象地址赋予多个变量):x=y=123。python中不支持常量(全部大写,字母下划线组合命名如MAX_NUM),因此对于定义的常量仍旧可以在后期修改变化,但要从逻辑上注意对已设定的常量不能进行更改。系列解包赋值实现变量互换

x,y,z=1,'ab','热爱生活'
y,z,x=x,y,z
print(x,y,z)

2.python基本数据类型包括:整型(int:123),浮点型(float:2.14等价于214e-2),布尔型(True(1)/False(0),可直接与数字量相运算),字符串型('Love爱',不支持单字符操作,对于'a'看做len(a)=1的字符串)。python基本数字运算包括:+、-、*、/(浮点数除法)、//(整数除法:-7//2=-4,取不大于结果的最大整数)、%(取余)、**(幂),另外除数不可为零否则异常报错。可通过divmod(被除数,除数)函数同时获得(商,余数)→(元组)

3.整数不同进制的表示形式:(十进制→其他进制:余数倒排法)二进制(0b)、八进制(0o)、十六进制(0x)。使用 int()实现类型转换:int(-3.3)=-3,int(True)=1,int('125')=125(不可为含有小数的字符串)。整数和浮点数混合运算时,表达式结果自动转型成浮点数。在python3中取消对整型数据int大小的限制,并取消了long型,因此python适合超大数的运算。

4.int()与round()的异同:(同)两者在完成类型转换时,都是在不改变原有对象的同时在其他内存处生成新的对象,即原有对象并未发生变化。(异)int()转换时直接将小数舍去便生成新对象,而round()转换时通过数学上的四舍五入后得到新的对象

5.增强型赋值运算符:主要是前边各种基本数字运算符与等号的复合。a**=2代表a=a**2(**=等增强型赋值运算符间不能加空格)。

6.时间基础点(1970.1.1  00:00:00)在python中通过导入time包然后通过time.time()获得当前时刻距离时间基准点的秒数(浮点数型)。开方运算math.sqrt()使用前应导入(import)math包。

7.比较运算后返回结果为布尔型数据,其中,比较运算符(从值上)包括(==,!=,>,<,>=,<=等);逻辑运算后返回结果也为布尔型数据,其中,逻辑运算符包括(or→有真则真,and→有假则假,not取反等);同一运算符(从地址上或从对象同一性上,效率高,is与is not)用于比较两个对象是否为同一个地址。

8.整数缓存问题:在命令行执行代码时,对于[-5,256]范围内的整数缓存到同一处,而在pycharm和file文件保存后执行则会将[-5,+∞]的数缓存到同一处,此时会出现a is b→True。

9.基本运算符:|(按位或)^ (按位异或)&(按位与)<<(左移)  >>(右移)   ~(按位取反)元组拼合[1,2,3]+['ab','$','生活'],字符串赋值'sxt'*3。注意python不支持自增自减。

10.作业1

(5+10*x)/5-13*(y-1)*(a+b)/x+9*(5/x+(12+x)/y)

11.字符串与Unicode码的转换:使用内置函数 ord()可以把字符转换成对应的 Unicode 码; 使用内置函数 chr()可以把十进制数字转换成对应的字符。字符串一般使用单双引号创建,当原字符串中包含'或者''时,对应创建时应使用"···"或者'···'包含原字符。多行字符串可以使用三个单/双引号创建。

12.len('')=0意为空字符串的长度为0。常见的转义字符有(\续行符、\\反斜杠符号、\'单引号、\"双引号、\b退格、\n换行、\t横向制表符、\r回车)。

13.不换行打印:print()指令执行后会自动打印一个换行符,但可通过end='@@'实现添加任意字符串的不换行打印。从控制台读取字符串指令:input("please input your name:")。

14.字符搜索有正向(左一编号为a[0])、反向(右一编号为a[-1])搜索两种。a.replace('s','师')可实现对字符串的替换,注意这里的替换为在原串的基础上替换生成了新串,但原串未改变。

15.字符串切片(截取子字符串操作):[起始偏移量 start:终止偏移量 end:步长 step](包头不包尾),当从右侧向左截取时注意步长为负号.

16.作业:(I)将”to be or not to be”字符串倒序输出

>>> a='to be or not to be'
>>> print(a[::-1])

(II) 将”sxtsxtsxtsxtsxt”字符串中所有的 s 输出

print('sxtsxtsxtsxtsxt'[::3])

17.a.split('···')基于指定分隔符('···')将字符串分隔成多个子字符串(存储到列表中),用%号将列表中的字符串连接:a=['sxt','拜师教育','我爱学习'],print('%'.joint(a))。使用join()要比+拼接性能高的原因:join()列表可变拼合后只需重建一次对象,而+每次运算都生成新对象,占空间费时间(对于循环多次时for i in range(次数))。声明一个列表用li=[],为列表加元素li.append('sxt')。

18.字母串驻留机制:究其根本在于字符串是否符合标识符的命名规则(仅包含数字、字母下、下划线),若符合则启用驻留机制,同一对象驻留到同一处。判断某子字符串是否位于字符串中用in/not in。

19.字符串常用方法汇总(了解):以'XXX'开头a.startswith('XXX')、以'XXX'结尾a.endswith('XXX')、第一次出现某一字符的位置a.find('X')、最后一次出现某一字符的位置a.rfind('X')、查看某一字符串出现几次a.count('XXX')、判断是否全为字母数字a.isalnum()、去除字符串首尾指定信息'***sxt***'.(l去左/r去右)strip('*')、a.capitalize() 产生新的字符串,首字母大写、a.title() 产生新的字符串,每个单词都首字母大写、a.upper() 产生新的字符串,所有字符全转成大写、a.lower() 产生新的字符串,所有字符全转成小写、a.swapcase() 产生新的,所有字母大小写转换、将'sxt'居中/左对齐/右对齐于10个字符中显示,空位填充'*'  a.center(10,"*")、a.l/rjust(10,'*')

20.其他:(I).isalnum() 是否为字母或数字 (II) .isalpha() 检测字符串是否只由字母组成(含汉字)。(III) .isdigit() 检测字符串是否只由数字组成。(IV). isspace() 检测是否为空白符(空格、换行\n、制表符\t) (V).isupper() 是否为大写字母 (VI).islower() 是否为小写字母。

21.字符串的格式化:a="生活的拼音为:{0},我来到这个世界年数为:{1:.2f}"   a.format("shenghuo",5.236)其中可以对每个占位字符进行格式的规定(^、<、>分别是居中、左对齐、右对齐,后面带宽度 )数字格式化表

18.可变字符串(适用于字符串频繁修改场合):导包import io,io.StringIO(s)用于在另一处内存块上生成一个新的可以实时修改的字符串,通过.seek(要求修改的字符编码)先找到要求修改字符的位置,在通过.write('X')修改该处字符,可以通过.getvalue()查看可变字符串。

19.作业:

(II)

a=input("请输入您的月薪:")
print('您的年薪合计为:{0}'.format(float(a)*12))

(III)

a='爱你一百遍'
print(a*100)

(IV)略(V)a is b→True(由于a,b符合标识符只有字母、数字、下划线的命名规则,根据字符串驻留机制保存到一处,地址相同,输出True)c is d→False(由于c,d含#不符合标识符命名规则,地址不同,输出False)。

(VI)名字是高淇,年龄是19。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值