小白学python日志(02)-赋值、数据类型、运算符、字符串概念以及使用规则

   这是第二次作业了,感觉比第一节课的作业难,而且有些问题需要反复观看视频才能理解,所讲的内容比之前抽象了不少。接着第一节,一开始讲了各种赋值,这个我之前有遇到过,主要包括链式赋值、系列解包赋值、常量的赋值规则,基本上把之前懵懂只知道print()的赋值系统的讲了一下。然后队医数据类型的种类:整数、浮点、布尔、字符串,这些在我大一学习vb的时候都是有说过的,相对比较好理解。至于运算符包括常用的加减乘除,还出现了证书除法、模(取余)、还有幂的取值,其中比较陌生的是divmod()同时取得商和余数。

     整数的类型分为二进制、八进制、十进制、十六进制,这些都还相对好理解。后面出现新的函数int()用于实现类型的转换,浮点型会变成整数类型去掉后面的小数。布尔型True和False与数字1和0之间的转化。其中运算时,整数型加上浮点型会直接变成浮点型。

    除此之外还有增强型赋值运算符,其中的很多运算法则需要自己理解记忆。中间穿插了时间的表示方法,弄懂了时间的起始计算标准,同时跟着老师进行了时间计算的简单应用。另外回顾了上次课海龟函数,并且花了坐标并计算起始位置与终点位置的距离。

import turtle
import math
#定义多个点坐标

x1,y1=100,100
x2,y2=100,-100
x3,y3=-100,-100
x4,y4=-100,100

#绘制图形
turtle.penup()
turtle.goto(x1,y1)
turtle.pendown()
turtle.goto(x2,y2)
turtle.goto(x3,y3)
turtle.goto(x4,y4)

#开始计算起始点与终点的距离

distance=math.sqrt((x1-x4)**2+(y1-y4)**2)
turtle.write(distance)

 这是对应的代码,运行结果如下:

剩下的就是关于一些比较运算符,逻辑运算符,同一运算符,其中同一运算符要和比较运算符中==区分开,涉及到对象的定义。

比较特殊的是整数的缓存问题,在-5到任意整数都是可以认为是同一对象。

比较难记的是复合赋值运算符,为了提高效率使用的一种运算符,运算符的优先级问题也不好记,但是应该用的时候再来查找吧。

后面就讲到常用的字符串的问题,字符串在代码的编写过程中是十分重要的,主要注重的是逻辑的思维,对于数学和英语要求并不高。本质是字符序列,一般来说在python中字符串是不可变的,我们无法对原字符串进行任何修改。

字符串的编译采用是Unicode,使用ord()和chr()可以完成字符串和Unicode之间的转化。同时字符串可以用单引号和双引号进行创建,三个单引号或是三个双引号可以创建多个多行字符串。另外就是空字符串的建立与利用len()来计算字符串的长度。转义字符的使用方便我们进行表示单引号或是双引号本身的含义,另外就是退格与换行还有回车以及横向制表符,把本身特殊的含义的符号,转变成本身的含义。

字符串的拼接可以把两个字符串用加号进行连接,如果是数字类型是运算法则,如果类型不一致就会出现异常。

字符串的复制使用*加数字来进行表示的。

字符串的不换行打印是通过“end=”来进行表示的。

也可以利用input()函数来通过控制台兑取字符串。

str()函数可以实现数字转化成字符串。

使用[]提取字符串中的字符,字符串的本质就是字符序列,可以在字符串后面加上[]来进行表示,其中要清楚正向搜索和反向搜索的数字编号顺序。

replace()实现字符串替换,字符串不可替换,但是可以创建新的字符串,eg:a=a.replace('','')。

字符串的切片操作是把字符串按照一定规律的字符提取出来,其中用:表示,[起始偏移量:种植偏移量:步长]来表示。

其中还涉及到倒序输出字符串的代码:[::-1]

另外涉及到字符串的分割和合并,使用split()与join()符号,这里的合并join()要和前面的+合并区分,join()可以提高运算时间,跟着老师u做了代码进行比较两种合并所用的时间。

import time
time01=time.time()    #起始时间
a=''
for i in range(10000000): #循环一百万次生成随机数字
    a+='sxt'
time02=time.time()  #终止时间
print('运算时间:'+str(time02-time01)) #计算运行的时间
time03=time.time()  #起始时间
li=[]
for i in range(10000000):
    li.append('sxt')
a=''.join(li)
time04=time.time()  #终止时间
print('运算时间:'+str(time04-time03))

运算结果如下:

可以看出join()可以明显提高运算效率,解决较多时间。

另外就是字符串的驻留机制和字符串的比较,这里要清楚什么情况下的是同一字符串,什么情况下id()是不相同的。

还有就是成员操作符就是看某个字符在不在另一个字符当中。

字符串的常用方法的查找:计算长度的len(),指定字符串的开头a.startswith(''),指定字符串结尾a.endswith(''),查找出现第一次出现某个字符的位置a.find(''),最后一次出现某个字符的位置a.rfind(),某个字符串出现的次数a.count(''),判断字符全是字母或是数字a.isalnum().

字符串去首尾信息:strip()函数,去首的为lstrip(),去尾rstrip()。

字符串大小写的转化:首字母大写a.capitalize(),每个字母首字母都是大写a.title(),所有的字符串都是大写a.upper(),所有字符串都是转化成小写a.lower(),大小写转换a.swapcase()。

字符串的格式排版:center(),ljust(),rjust().

检测字符串是付为数字isalnum(),检测字符串是否有字母组isalpha(),检测字符串是否只由数字组成isdigit(),字符串是否含有空白符isspace(),是否全为大写isupper(),是否全为小写islower()。

字符串的格式化,format()的用法,使用{}来进行比较选择填充的,其中填充与对齐,相对来说比较常用居中、左对齐、右对齐怎么表示这个地方有点难记忆理解需要多花点时间。

数字的格式化:浮点型通过数字f,整数通过d进行需要的格式化。

可变字符串:字符串是不可变对象,不支持原地修改,需要修改其中的值,需要智能创建新的字符串对象。需要引入io.stringIO对象或是array模块。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值