这是风火轮编程Python初级教程的第五课,下面是用python制作的学习大纲。
用Python制作的幻灯片类型的作品,用来教Python字符串入门的,以下是完整源代码。
本程序需要sprites模块支持,安装方法为在命令提示符下输入以下命令安装:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple sprites –upgrade
"""
第五课 字符串入门
"""
from sprites import *
s = '第五课 字符串入门'
screen = Screen()
screen.bgcolor('blue')
screen.titlebar(False)
root = screen._root # 窗口对象
root.wm_attributes('-alpha',0.7) # 设置窗口为全透明(0到1.0)
screen.setup(800,700)
ft = ('楷体',38,'bold')
t = Sprite(visible=False,pos=(-500,0))
t.color('magenta')
clock = Clock()
for x in range(110):
t.clear()
t.write(s,align='center',font=ft)
t.wait()
t.fd(5)
clock.tick(60)
m1 = Mouse() # 鼠标左键
while not m1.down():screen.update()
for x in range(50):
t.clear()
t.write(s,align='center',font=ft)
t.wait()
t.fd(10)
clock.tick(60)
#以下是显示学习的内容段
studycontent = """
主要学习内容
1、字符串的概念
2、转义字符
3、len命令
4、str的加法和乘法
5、字符串的索引
6、索引错误
7、字符串的不可变性
"""
t.color('white')
t.clear()
t.sety(-300) # 这里修改菜单的显示y坐标
ft = ('楷体',24,'bold')
s = studycontent
while not m1.down():screen.update()
# 下面的代码显示主菜单
for x in range(110):
t.clear()
t.write(s,align='center',font=ft)
t.wait()
t.bk(5)
clock.tick(60)
screen.listen()
def slow_write(t,string):
"""
t:角色,string:要显示的字
本函数慢慢的显示字。
"""
string = string.split('\n') # 换成列表
oldxy = t.position() # 记录老的坐标
t.goto(-340,310) # 到新的坐标
for line in string: # 每一行字
for char in line: # 每一个字符
t.write(char,align='center',font=ft)
t.wait(0.2)
cd = len(bytes(char,'gb2312'))
if cd == 1:
t.addx(20)
else:
t.addx(30)
t.setx(-336)
t.addy(-50)
t.goto(oldxy)
s1 = """
1、字符串的概念
在Python中,字符串是用引号封闭的一些字符。
用成对的双引号,单引号,或三引号封闭一些字
符时都可以定义字符串。当然,我们可以把它
赋值给一个变量。
如 s='red',或者 c="yellow"都是定义字符串。
用三引号封闭的话,在定义时可以直接敲回车。
当输入type('a')时,会显示<class 'str'>。
str是英文string的前三个字母,它就是字符串的意思
(单击返回主菜单)
"""
def press1():
t.clear()
slow_write(t,s1)
while not m1.down():screen.update()
t.clear()
t.write(s,align='center',font=ft)
screen.onkeypress(press1,'1')
s2 = """
2、转义字符
在计算机里,有些字符是看不见的,
如换行符写做\'\\n\'。
当我们按键盘上的Tab键的时候,
在文本框里会表现为跳一格。
这就是在输入制表符,它写做\'\\t\'。
当我们敲回车键时,就是输入回车符号,它写做\'\\r\'。
那么,当我们要输入反斜杠本身时,要怎么输入呢?
我们可以输入\'\\\\\'。来表示一个反斜杠。
当我们用三引号定义字符串,并且在输入字符的时候
敲了回车时,Python会自动帮我们加上换行符
而不是回车符。(单击返回主菜单)
"""
def press2():
t.clear()
slow_write(t,s2)
while not m1.down():screen.update()
t.clear()
t.write(s,align='center',font=ft)
screen.onkeypress(press2,'2')
s3 = """
3、len命令
len是求字符串中字符个数的命令。
语法:len(字符串)。
如len('风火轮编程')的结果是5。
len(\'\\n\')的结果是1,这是由于\'\\n\'表示是一个换行符。
len('') 的结果是0,这是由于''是空字符串。
(单击返回主菜单)
"""
def press3():
t.clear()
slow_write(t,s3)
while not m1.down():screen.update()
t.clear()
t.write(s,align='center',font=ft)
screen.onkeypress(press3,'3')
s4 = """
4、str的加法和乘法
连接字符串用加号即可。如'ab' + 'cd'
字符串可以乘以一个整数,它会把字符串
重复一定的次数。如len('风火轮编程'*3)
的结果是15。(单击返回主菜单)
"""
def press4():
t.clear()
slow_write(t,s4)
while not m1.down():screen.update()
t.clear()
t.write(s,align='center',font=ft)
screen.onkeypress(press4,'4')
s5 = """
5、字符串的索引
字符串中的每个字符有编号,从左到右数,
编号从0开始的,这个编号叫做索引号。
我们可以通过索引号访问字符串中的字符。
方法:字符串名称[index],其中index表示索引号。
假设有字符串s='abcdefg',那么s[0]就是'a',
s[3]就是'd'。
在字符串中,索引号也可以从右到左数。
这个时候索引号是从-1开始。也就是说s[-1]
表示倒数第一个字符,s[-2]表示倒数第二个字符,
依此类推。(单击返回主菜单)
"""
def press5():
t.clear()
slow_write(t,s5)
while not m1.down():screen.update()
t.clear()
t.write(s,align='center',font=ft)
screen.onkeypress(press5,'5')
s6 = """
6、索引错误
字符串中的字符是有一定数量的,也就是说
索引号肯定有一定范围。假设有 s='abcdefg',
那么它的索引号是从0到6。
如果输入s[7]会怎么样呢,这个时候就会提示错误。
这个错误叫indexError,即索引错误。
我们实践一下索引错误。(单击返回主菜单)
"""
def press6():
t.clear()
slow_write(t,s6)
while not m1.down():screen.update()
t.clear()
t.write(s,align='center',font=ft)
screen.onkeypress(press6,'6')
s7 = """
7、字符串的不可变性
字符串有一个特性就是它是不可变的。
主要表现为,我们可以通过索引号访问它的某个
字符,但不能修改它。假设有s='abcdefg',
那么让s[0]='风'是不可以的,这是会出错的。
(单击返回主菜单)
"""
def press7():
t.clear()
slow_write(t,s7)
while not m1.down():screen.update()
t.clear()
t.write(s,align='center',font=ft)
screen.onkeypress(press7,'7')
byebye = """
下次再见!
"""
def pressq():
t.clear()
t.color('cyan')
t.home()
t.write(byebye,align='center',font=('宋体',38,'bold'))
while not m1.down():screen.update()
screen.bye()
screen.onkeypress(pressq,'q')
# 下面的代码让窗口可以拖动.
oldx = 0
oldy = 0
def startmove(event):
global oldx,oldy
oldx = event.x
oldy = event.y
def stopmove(event):
global oldx,oldy
oldx = 0
oldy = 0
def movewindow(event):
global oldx,oldy
dx = event.x - oldx
dy = event.y - oldy
root.move(dx,dy)
screen.cv.bind("", startmove)
screen.cv.bind("", stopmove)
screen.cv.bind("",movewindow)
screen.mainloop()
以下是付费内容,包括播放视频、思维导图、python源代码及素材等等。需要浏览更多吗?
成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)

