这三周以来,准确的说是四周,虽然说我不是初识Python,但确实没有像前几周以来从前期准备,安装Pycharm,配置环境 ,到最基础的hello world输出这么系统深入的学习Python这门语言,三周说长不长,说短不短,但可以说是确确实实的让我体会到了Python这门语言中的乐趣与奇妙,在这三周的接触中,我印象最深的有这么几个代码:
一是跑马灯
a = 'Hello,World '
import time
import os
while True:
print(a)
time.sleep(0.5)
a = a[1:] + a[0]
它可以像是理发店门口的那种灯一样,类似螺旋样的,你甚至可以给它改变颜色输出
\033[显示方式; 前景色; 背景色m******\033[0m=
a = 'Hello,World '
import time
import os
print("\033[34m变为蓝色字体")
while True:
print(a)
time.sleep(0.5)
a = a[1:] + a[0]
这样就会变成蓝色的字体输出了。
二是还了解了简单验证码的生成:
import random
def C(length=9):
chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
code = ""
i = 0
while i < length:
a= chars[random.randint(0,len(chars)-1)]
code += a
i += 1
return code
c = C()
print("生成的随机验证码为:",c)
三是一秒一秒累加的那种数字时钟:
import time
class Clock_Time(object):
def __init__(self, hour, min, second):
self.hour = hour
self.min = min
self.second = second
def go_time(self):
self.second += 1 #秒加
if self.second == 60:
self.min += 1
self.second = 0 #逢60进1变0
if self.min == 60:
self.hour += 1
self.min = 0
if self.hour == 24:
self.hour = 0
def show_time(self):
hour_str = str(self.hour)
min_str = str(self.min)
second_str = str(self.second)
print('{}:{}:{}'.format(hour_str.zfill(2), min_str.zfill(2), second_str.zfill(2))) #zfill,返回指定长度的字符串,原字符串右对齐,前面填充0
if __name__ == "__main__":
clock = Clock_Time(11,11,11)
while True:
clock.show_time()
time.sleep(1)
clock.go_time()
就很帅,不是吗?
另外最让我意想不到的是学长学姐分享的一些有趣的代码,尤其是那个贪吃蛇的,我真的没有想到可以这样写出来。
from turtle import * #导包,turtle库,画图库
from random import randrange #随机函数,小苹果随机出现时候使用
def square(x,y,size,color_name): #自定义函数,画小蛇每一节身体的方法,需要多次循环调用
up() #提笔
goto(x,y) #到达某一位置坐标
color(color_name) #颜色设置
begin_fill() #开始画图
forward(size) #画直线
left(90) #左转90度
forward(size)
left(90)
forward(size)
left(90)
forward(size)
left(90)
end_fill() #结束绘图
snack=[[0,0],[10,0],[20,0],[30,0]] #初始小蛇身体
apple_x=randrange(-20,20)*10 #苹果随机出现的位置的横纵坐标
apple_y=randrange(-20,20)*10
aim_x=0
aim_y=10
def change(x,y):
global aim_x,aim_y #global是关联函数,在函数内使用表示要用到外面(全局)定义的一些变量
aim_x=x
aim_y=y
def inside(): #判断小蛇是否还在画布范围内的自定义函数(判断小蛇是否撞墙)
if -210<=snack[-1][0]<=200 and -210<=snack[-1][1]<210 : #画布大小是420*420的,映射到坐标上是从-210到+210;画布大小是自定义的,在下面
return True #未撞墙返回true
else: #否则false
return False
def gameLoop (): #自定义循环函数,实现小蛇位置的更新————清除旧图画上新图:让小蛇看起来像在运动
global apple_x,apple_y
clear() #清除函数
snack.append([snack[-1][0]+aim_x,snack[-1][1]+aim_y]) #小蛇的初始位置每次加一个坐标————增加头部
if not inside(): #每一次循环都要判断是否撞墙
return
if snack[-1][0]!=apple_x or snack[-1][1]!=apple_y :
snack.pop(0) #删除尾部
else:
apple_x=randrange(-20,20)*10 #苹果随机出现,乘以10是因为小蛇身体的每一节长度为10,以避免小蛇吃苹果时蛇头与苹果对不上
apple_y=randrange(-20,20)*10
for n in range(len(snack)):
square(snack[n][0],snack[n][1],10,"black")
square(apple_x,apple_y,10,"red")
ontimer(gameLoop,200) #每隔一段时间刷新一次
update()
setup(420,420,0,0) #设置画布大小
hideturtle() #隐藏画笔
tracer(False) #隐藏画图轨迹
listen() #监听函数
onkey(lambda :change(0,10),"w") #键盘控制函数
onkey(lambda :change(0,-10),"s")
onkey(lambda :change(10,0),"d")
onkey(lambda :change(-10,0),"a")
gameLoop() #循环
done()
#只有def是自定义函数,其他函数均为turtle自带,有感兴趣的可以百度学习。
太强了!!!