python字符串和函数 |
您所在的位置:网站首页 › turtle基本操作 › python字符串和函数 |
字符串
字符串类型的表示
Python语言中,字符串是用两个双引号“”或者单引号‘’括起来的一个或多个字符。 字符串是字符的序列,可以按照单个字符或字符片段进行索引。字符串包括两种序号体系:正向递增序号和反向递减序号。如果字符串长度为L,正向递增以最左侧字符序号为0,向右依次递增,最后侧字符序号为L-1;反向递减序号以最后侧字符序号为-1,向左依次递减,最左侧字符序号为-L。这两种索引字符的方法可以同时使用。 Python字符串也提供区间访问方式,采用【N:M】格式,表示字符串中从N到M(不包含M)的子字符串,其中,N和M为字符串的索引序号,可以混合使用正向递增序号和反向递减序号。如果表示中M或者N索引缺失,则表示字符串把开始或结束索引值设为默认值。 name = "Python语言程序设计" name[0] 'P' print(name[0], name[7], name[-1]) P 言 计 print(name[2:-4]) thon语言 print(name[:6]) Python print(name[6:]) 语言程序设计 print(name[:]) Python语言程序设计反斜杠字符(\)是一个特殊字符,在字符串中表示转义,即该字符与后面相邻的一个字符共同组成了新的含义。例如,\n表示换行,\\表示反斜杠,\’表示单引号,\”表示双引号,\t表示制表符(Tab)。 基本的字符串操作符Python提供了5个字符串的基本操作符 x + y : 连接两个字符串x与y x * n 或 n * x : 复制n次字符串x x in s :如果x是s的子串,返回True,否则返回False str[i] :索引,返回第i个字符 str[N:M] :切片,返回索引第N到第M的子串,其中不包含M weekstr = "星期一星期二星期三星期四星期五星期六星期日" weekid = eval(input("请输入星期数字(1-7): ")) pos = (weekid -1) * 3 print(weekstr[pos:pos+3]) 字符串处理函数len(x) 返回字符串x的长度,也可返回其他组合数据类型元素个数 str(x)返回任意类型x所对应的字符串形式 chr(x)返回Unicode编码x对应的单字符 ord(x)返回单字符表示的Unicode编码 hex(x)返回整数x对应十六进制数的小写形式字符串 oct(x)返回整数x对应八进制数的小写形式字符串 str.lower()返回字符串str的副本,全部字符小写 str.upper()返回字符串str的副本,全部字符大写 字符串类型的格式化字符串通过format()方法进行格式化处理。 格式:.format() print("{}:计算机{}的cpu占用率为{}%".format("2016-12-31","PYTHON",10)) 2016-12-31:计算机PYTHON的cpu占用率为10% format()方法的格式控制 < 左对齐 > 右对齐 ^ 居中对齐 s = "python" print("{0:30}".format(s)) print("{0:>30}".format(s)) print("{0:*^30}".format(s)) print("{0:-^20,}".format(1234567890)) print("{0:-^20}".format(1234567890)) print("{0:-^20,}".format(12345.67890)) print("{0:.2f}".format(12345.67890)) print("{0:H^20.3f}".format(12345.67890)) print("{0:.4}".format("python")) ----------------------------------------------- D:\AI\venv\Scripts\python.exe D:/AI/base2.py python python ************python************ ---1,234,567,890---- -----1234567890----- ----12,345.6789----- 12345.68 HHHHH12345.679HHHHHH pyth(1)b: 输出整数的二进制方式 (2)c:输出整数对应的Unicode字符 (3)d:输出整数的十进制方式 (4)o:输出整数的八进制方式 (5)x:输出整数的小写十六进制方式 (6)X:输出整数的大写十六进制方式 print("{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425)) 110101001,Ʃ,425,651,1a9,1A9浮点数类型输出格式: (1)e:输出浮点数对应的小写字母e的指数形式 (2)E:输出浮点数对应的大写字母E的指数形式 (3)f:输出浮点数的标准浮点形式 (4)%:输出浮点数的百分形式 print("{0:e},{0:E},{0:f},{0:%}".format(3.14)) print("{0:.2e},{0:.2E},{0:.2f},{0:.2%}".format(3.14)) 3.140000e+00,3.140000E+00,3.140000,314.000000% 3.14e+00,3.14E+00,3.14,314.00% 文本进度条调用Python标准时间库time,使用time.sleep(t)函数将当前程序暂时挂起t s,t可以是小数,由此可以接近真实的模拟进度条效果输出。 import time scale = 10 print("-----执行开始----") for i in range(scale+1): a, b = '**' * i, '..' * (scale - i) c = (i/scale) * 100 print("%{:^3.0f}[{}->{}]".format(c, a, b),end) time.sleep(0.1) print("------执行结束-----") -----执行开始---- % 0 [->....................] %10 [**->..................] %20 [****->................] %30 [******->..............] %40 [********->............] %50 [**********->..........] %60 [************->........] %70 [**************->......] %80 [****************->....] %90 [******************->..] %100[********************->] ------执行结束----- 带刷新的文本进度条time.clock()函数一般多次出现,第一次调用时计时开始,同一程序中第二次以及后续调用时返回与第一次计时之间的时间差,单位为秒,该函数主要用来统计程序运行时间。 import time scale = 50 print("执行开始".center(scale//2, '-')) t = time.clock() for i in range(scale+1): a = '*' * i b = '.' * (scale - i) c = (i/scale)*100 t -= time.clock() print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,-t),\ end='') time.sleep(0.05) print("\n"+"执行结束".center(scale//2, '-')) -----------执行开始---------- 100%[**************************************************->]79.30s -----------执行结束---------- 赋值语句python语言中,“=”表示“赋值”,即将等号右侧的计算结果赋给左侧变量,包含(=)的语句称为赋值语句。此外还有一种赋值语句可以同时给多个变量赋值,基本格式如下: ,......, = , ... , >>>t = x >>>x = y >>>y = t 如果采用同步赋值: >>>x, y = y, x input()函数input()函数从控制台获得用户输入,无论用户在控制台输入什么内容,input()函数都以字符串类型返回结果。 TempStr = input("请输入带有符号的温度值:“) 在获得用户输入之前,input()函数可以包含一些提示性文字: = input() 需注意:无论用户输入的是字符或是数字,input()函数统一按照字符串类型输出。 >>>input(“请输入:”) 请输入:python ‘python’ >>>input(“请输入:”) 请输入:1024.256 ‘1024.256’ eval()函数eval()的作用是将输入的字符串转变成python语句,并执行该语句。 >>>TempStr = “102C” >>>eval(TempStr[0:-1]) 102 >>>eval(“hello”) 报错 >>>eval(“‘hello’”) ‘hello’ 如果用户希望输入一个数字(小数或负数),并用程序对这个数字进行计算,可以采用 eval(input())的组合,例如: >>>value = eval(input("清输入要计算的数值:”)) 请输入要计算的数值:1024.256 >>>print(value*2) 2048.512 print()函数当输出纯字符信息时,可以直接将待输出内容传递给print()函数,当输出变量值时,需要采用格式化输出方式,通过format()方法将待输出变量整理成期望输出的格式。 print(“输入格式错误”) print(“转换后的温度是{:.2f}F”.format(F)) 其中大括号{}表示一个槽位置,这个括号中的内容由字符串后面紧跟的format()方法中的参数C填充。大括号{:.2f}中的内容表示变量C输出的格式,具体表示输出值取两位小数值。 循环语句条件循环的基本过程如下: while(): 当条件为真(True)时,执行语句块1语句,当条件为假(False)时,退出循环,执行循环后语句块2语句。 while TempStr【-1】not in 【‘N’,‘n’】: 如果该字符是‘N’或者‘n’,则条件语句结果为False,退出循环,进而结束程序;否则,条件语句结果为True,继续执行循环内的语句。这行语句中的not是保留字,表示对判读结果取反。 函数 #e1.3TempConvert.py def tempConvert(ValueStr): if ValueStr[-1] in ['F','f']: C = (eval(ValueStr[0:-1]) - 32)/1.8 print("转换后的温度是(:.2f)C".format(C)) elif ValueStr[-1] in ['C','c']: F = 1.8*eval(ValueStr[0:-1]) + 32 print("转换后的温度是(:.2f)F".format(F)) else: print("输入格式错误") TempStr = input("清输入带有符号的温度值:") tempConvert(TempStr)第2行用def保留字定义了一个名为tempConvert()函数,它使用一个参数ValueStr。 由def保留字定义的函数在程序中不被直接执行,需要使用函数名称调用才能执行。 import #e2.1 DrawPython.py import turtle turtle.setup(650,350,200,200) turtle.penup() turtle.fd(-250) turtle.pendown() turtle.pensize(25) turtle.pencolor("purple") turtle.seth(-40) for i in range(4): turtle.circle(40,80) turtle.circle(-40,80) turtle.circle(40, 80/2) turtle.fd(40) turtle.circle(16,180) turtle.fd(40 * 2/3)代码2.1中通过保留字import引用了绘制图形的turtle库。 使用import引用函数库有两种方式,但对函数的使用方式略有不同。 第一种:import 此时,程序可以调用库名中的所有函数,格式如下: . () 第二种引用函数库的方法如下: from import from import * #其中,*是通配符,表示所有函数 此时,调用该库的函数时不再需要使用库名,直接使用如下形式: () 使用第二种库引用方式修改代码2.1完成蟒蛇绘制: #e2.1 DrawPython.py from turtle import * setup(650,350,200,200) penup() fd(-250) pendown() pensize(25) pencolor("purple") seth(-40) for i in range(4): circle(40,80) circle(-40,80) circle(40, 80/2) fd(40) circle(16,180) fd(40 * 2/3)第二行的import语句也可以写成如下形式: from turtle import setup, penup, fd, pendown, pensize, pencolor, seth, circle 绘制坐标体系turtle.setup(width, height, startx, starty) 作用:设置主窗体的大小和位置。 width:窗口宽度,如果值是整数,表示像素值;如果值是小数,表示窗口宽度与屏幕的比例。 height:窗口高度,如果值是整数,表示像素值;如果值是小数,表示窗口高度与屏幕的比例。 startx:窗口左侧与屏幕左侧的像素距离,如果值是None,窗口位于屏幕水平中央。 starty:窗口顶部与屏幕顶部的像素距离,如果值是None,窗口位于屏幕垂直中央。 画笔控制函数turtle.penup() 作用:表示抬起画笔,之后移动画笔不绘制形状。 参数:无 turtle.pendown() 作用:表示落下画笔,之后移动画笔将绘制形状。 参数:无 turtle.pensize(width)函数 作用:设置画笔尺寸 turtle.width() 作用:设置画笔宽度,当无参数输入时返回当前画笔宽度。 turtle.pencolor() 作用:给画笔设置颜色 参数:colorstring:表示颜色的字符串,例如“purple”、“red”、“blue”等。 (r,g,b):颜色对应的RGB数值,例如,(51,204,140) turtle.fd() 作用:形状绘制函数,控制画笔向当前行进方向前进一个距离。 参数:distance:行进距离的像素值,当值为负数时,表示向相反方向前进。 turtle.seth() 作用:用来改变画笔绘制方向。 参数:to_angle:角度的整数值。 正东方向为绝对0度,正西方向为绝对180度。-40度即320度。 turtle.circle() 作用:绘制一个弧形 turtle.circle(radius,extent=None) 作用:根据半径radius绘制extent角度的弧形。 参数:radius:弧形半径,当值为正数时,半径在小海龟左侧,当值为负数时,半径在小海龟右侧。 extent:绘制弧形的角度,当不设置参数或参数设置为None时,绘制整个圆形。 函数的封装 #e2.3 DrawPython.py import turtle def drawSnake(radius, angle, length): turtle.seth(-40) for i in range(length): turtle.circle(radius, angle) turtle.circle(-radius, angle) turtle.circle(radius, angle/2) turtle.fd(40) turtle.circle(16,180) turtle.fd(40* 2/3) turtle.setup(650,350,200,200) turtle.penup() turtle.fd(-250) turtle.pendown() turtle.pensize(25) turtle.pencolor("purple") drawSnake(40,80,4) turtle.done()代码2.1中的程序功能可以分为2类:绘制图形前对画笔的设置,包括颜色、尺寸、初始位置等,以及绘制python蟒蛇的功能。由于蟒蛇绘制的功能相对独立,可以用函数来封装。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |