python学习笔记-第二节

    科技2026-08-23  5

    一个python教程,方便查询资料

    快捷查询

    018:时间入门

    unix时间点:1970 1月1日零点

    import time time.time() #获取当前时间,相对unix点过了多少秒 b = int(time.time()) #秒数的整数 totalminutes = b//60 #分钟数,整数除法//

    end .

    019:多点坐标

    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) turrle.pendown() #落笔,可不显示不想要的路径 turtle.goto(x2,y2) turtle.goto(x3,y3) turtle.goto(x4,y4) mah.sqrt()是一个开方函数,在math库里 #计算两点间距离 distance = math.sqrt((x1-x4)**2 + (y1-y4)**2) turtle.write(distance)

    end .

    020:布尔值,比较运算符

    ==是比较两边的值是否相等,不等时返回False逻辑运算符:or and not a = True b = False a or 30 #返回值是True,短路,后面30/0也会是true b or 30 #返回值是30

    x or y:如果x为true则短路y x and y:如果x为false则短路y end .

    021:整数缓存

    对象组成含义id一串数字地址type数据类型value数据值 is比较的是id,即两个变量引用对象是否为同一个==比较的是value,即判断变量引用对象的值是否相等 a = -1000 b = -1000 a == b #True a is b #False

    特别注意:解释器优化会设置整数缓存,即实际上【-5,任意正整数】都会使用同一个地址

    a = 250 b = 250 a is b #True

    end .

    022:字符串常识

    python用的是16位的unicode编码

    ord():可以把字符转换成对应的unicode码chr():可以把十进制数字转换成对应的字符

    创建字符串:单引号或者双引号

    a = "tyj is a baga"

    ‘’’ ‘’'可创建多行字符串 python允许空字符串

    len():返回字符串长度 end .

    023:字符串不换行连接

    转义字符详细见快捷查询

    print("tyjbagabagabagabaga/ bagabagabagabagabag") # / 是续行符,输出会把上下行连起来

    字符串拼接两边都要是字符串

    "aa" + "bb" >>> "aabb" #形成了新字符串

    字符串复制

    >>>a = "baga" *3 >>>a "bagabagabaga"

    不换行打印

    end=" “是不换行操作,” "内是连接方式,空格就是直连 print("tyj",end="=") print("baga") #结果:tyj=baga

    读取字符串

    >>>tyj = input("tyj是什么:") #提示语 tyj是什么:baga #结果:tyj = "baga"

    end .

    024:字符串提取和替换

    str():转成字符串用[]提取字符串字符,python支持正反两个方向提取 a = "abcdefghijklmnopqrstuvwxyz" #正向: a[0] = "a" a[3] = "d" a[25] = "z" #反向: a[-1] = "z" a[-2] = "y" a[-26] = "a" replace():字符串替换 >>>a = a.replace("a","帅") "帅bcdefghijklmnopqrstuvwxyz" #这里其实并没有改变原字符串,是新创建了一个字符串

    a ——\\——>“abcdefghijklmnopqrstuvwxyz” a ————>“帅bcdefghijklmnopqrstuvwxyz”

    end .

    025:字符串切片

    slice操作:[start : end : step] 包头不包尾,end是取不到的 [:]就是整个都取了 也可以用负数倒着找,步长也可以是负数,就是反着跳 a = "abcdefghijklmn" >>>a[1:5:2] "bd" 逆序排列"to be not to be" a = "to be not to be" a[::-1] 取出"tyjtyjtyjtyjtyj"中所有的t b = "tyjtyjtyjtyjtyj" b[::3]

    end .

    026:字符串分割合并

    split():分割,以列表的形式返回 >>>a = "to be not to be" >>>a.split() ['to', 'be', 'not', 'to', 'be'] >>>a.split("be") ['to ', ' not to ', ''] #相当于把be当作分隔符 join()和split()正好相反,返回的是字符串 “连接字符”.join(列表名) >>>list1 = ["tyj","is","a","baga"] >>>"-".join(list1) #结果:"tyj-is-a-baga"

    讲究效率用join,因为+其实会生成新的字符串

    分别检测一个程序跑的时间

    加号:

    import time time01 = time.time() #起始时间 str1 = "" for i in range(1000000): #别忘了: str1 += "tyj" time02 = time.time() #终止时间 #两边都要是字符串才能相加嗷! print("运行时间为:"+str(time02-time01)) #结果是:0.47347450256347656

    join():

    import time time03 = time.time() #起始时间 list2 = [] for i in range(1000000): #别忘了: list2.append("tyj") #append()是列表添加函数 "".join(list2) time04 = time.time() #终止时间 #两边都要是字符串才能相加嗷! print("运行时间为:"+str(time04-time03)) #结果是:0.10656046867370605

    差距是很大的,第一种代码要少写 end .

    027:字符串驻留和比较

    驻留机制:保留一份相同且不可变字符串,条件是字符串里面只能有下划线,字母和数字 >>>str3 = "abc_33" >>>str4 = "abc_33" >>>str3 is str4 True #id(str3) = id(str4) >>>str5 = "dd#" >>>str6 = "dd#" >>>str5 is str6 False #id(str5) != id(str6) #==还是True的 in/not in:判断某个字符(子字符串)是否在字符串里 end .

    028:字符串查找去首大小写转换

    常用查找
    str1.startswith(“目标字符串”) 若以目标字符串开头返回Truestr1.endswith(“目标字符串”) 若以目标字符串结尾返回True .str1.find(“目标字符(串)”) 返回第一次出现目标字符的位置str1.rfind(“目标字符(串)”) 返回最后一次出现目标字符的位置 .str1.count(“目标字符串”) 返回出现次数str1.isalnum() 若字符串全是英文或数字返回True
    去除首位信息
    strip(“要去除的字符串”) str7 = "*t*y*j*" str7.strip("*") #结果:"t*y*j"
    大小写转换
    str1.capitalize() 产生新字符串,首字母大写str1.title() 产生新字符串,每个单词首字母大写str1.upper() 产生新字符串,所有字母大写str1.lower() 产生新字符串,所有字母小写str1.swapcase() 产生新字符串,字母大小写转换
    格式排版

    center() ljust() rjust() 居中和左右对齐

    str8 = "YCX" str8.center(10,"~") #10是格式总长,~是填充字符串 ~~~YCX~~~~
    其他一些检测函数
    isalnum() 是否为字母或者数字isalpha() 是否全是字母或者汉字isdigit() 是否全是数字 .也不行isspace() 是否为空白符isupper() 是否全是大写islower() 是否全是小写 end .

    029:字符串格式化操作

    format() 也是生成了新的字符串

    顺序匹配:

    >>>str9 = "名字是:{0},年龄是:{1},{0}真是个好男人" #{}是占位符 >>>str9.format("ycx",21) '名字是:ycx,年龄是:21,ycx真是个好男人'

    索引/参数名:

    >>>str10 = "名字是{name},年龄是{age}" >>>str10.format(age=21,name="ycx") #这样可以忽略顺序影响 "名字是ycx,年龄是21" 填充和对齐 啊,累了。。。 ^,<,>用来和format连用表示居中,左右对齐 >>>"{:*>8}".format("245") "*****245" #懒,自己看着悟吧 >>>"我是{0},我喜欢的数字是{1:~^10}".format("ycx",666) '我是ycx,我喜欢的数字是~~~666~~~~' 数字格式化 数字格式化帖子
    Processed: 0.008, SQL: 9