Python初学心得

这三周以来,准确的说是四周,虽然说我不是初识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自带,有感兴趣的可以百度学习。

太强了!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值