趣味python之print做会动的皮卡丘

试试用print来画出皮卡丘并且让他动起来也作为小白学习python的一个入门小项目吧

先看看结果图:
趣味python之print做会动的皮卡丘_第1张图片
首先,我们要有一个皮卡丘~


print('   へ     /|')
print('  /\7    ∠_/')
print('  / │   / /')
print(' │ Z _,< /   /`ヽ')
print(' │     ヽ   /  〉')
print('  Y     `  /  /')
print(' イ● 、 ●  ⊂⊃〈  /')
print(' ()  へ    | \〈')
print('  >ー 、_  ィ  │ //')
print(' / へ   / ノ<| \\')
print(' ヽ_ノ  (_/  │//')
print('7       |/')
print('>―r ̄ ̄`ー―_')

运行效果如下,似乎还挺有趣,然后我们可以压缩一下,不用这么一直print
趣味python之print做会动的皮卡丘_第2张图片

a = [('   へ     /|'),('  /\7    ∠_/'),('  / │   / /') ,(' │ Z _,< /   /`ヽ'),(' │     ヽ   /  〉') ,('  Y     `  /  /'),(' イ● 、 ●  ⊂⊃〈  /') ,(' ()  へ    | \〈'),('  >ー 、_  ィ  │ //') ,(' / へ   / ノ<| \\'),(' ヽ_ノ  (_/  │//'),('7       |/') ,('>―r ̄ ̄`ー―_')]
for i in range(len(a)):
    print(a[i])

让皮卡丘可以可以移动
所谓移动,就是利用视觉暂留效果,每次清除命令行的屏幕,然后重新print一只皮卡丘,但是让他位置有所移动,首先我们看看怎么清屏

import os
os.system("clear")# mac与linux系统 调用系统指令,清屏,从而形成视觉特效
#os.system("cls")#window 系统使用此 调用系统指令,清屏,从而形成视觉特效

然后需要设计一个变量让函数每次print皮卡丘的时候有一个位移变量


import os
import time

def pikaqiu(num):
    os.system("clear")# mac与linux系统 调用系统指令,清屏,从而形成视觉特效
    #os.system("cls")#window 系统使用此 调用系统指令,清屏,从而形成视觉特效
    a = [('   へ     /|'),('  /\7    ∠_/'),('  / │   / /') ,(' │ Z _,< /   /`ヽ'),(' │     ヽ   /  〉') ,('  Y     `  /  /'),(' イ● 、 ●  ⊂⊃〈  /') ,(' ()  へ    | \〈'),('  >ー 、_  ィ  │ //') ,(' / へ   / ノ<| \\'),(' ヽ_ノ  (_/  │//'),('7       |/') ,('>―r ̄ ̄`ー―_')]
    for i in range(len(a)):# 按照皮卡丘列表的长度来循环
        print(num*" "+a[i])# 每个皮卡丘前面增加空白符
    time.sleep(0.03)

if __name__ == '__main__':
    for i in range(40):
        pikaqiu(i)

给皮卡丘加点颜色
现在皮卡丘能动了,想给他点颜色瞧瞧,如何修改控制台的颜色呢?其实很简单,就是语法看着有点奇怪

# 红色字体
print('\033[1;31m')#启动红色
print('hello world!')# 在这两个print中间出现的所有字符都是红色。
print('\033[0m')#恢复默认颜色

能改的其实很多,如下

print('\033[1;32m' + 'green' + '\033[0m')# 绿色字体
print('\033[1;34m' + 'blue' + '\033[0m') # 蓝色字体
print('\033[4;33m' + 'yellow' + '\033[0m') # 黄字下划线
print('\033[1;30;41m' + 'black' + '\033[0m') # 红底黑字
print('\033[1;30;47m' + 'white' + '\033[0m')# 白底黑字
 

那么其实程序也就是在 调用皮卡丘函数前后修改下颜色就行。

if __name__ == '__main__':
    for i in range(40):
        print('\033[1;31m')#启动绿色
        pikaqiu(i)
        print('\033[0m')#恢复默认颜色

趣味python之print做会动的皮卡丘_第3张图片
给皮卡丘加点特效
首先,让他可以过去再回来,然后稍微改点变量,从而不同行不同效果,结果就是文章初期的那个git了。

#coding:utf-8
import time
import os

def pikaqiu(num,j):
    os.system("clear")# mac与linux系统 调用系统指令,清屏,从而形成视觉特效
    #os.system("cls")#window 系统使用此 调用系统指令,清屏,从而形成视觉特效
    a = [('   へ     /|'),('  /\7    ∠_/'),('  / │   / /') ,(' │ Z _,< /   /`ヽ'),(' │     ヽ   /  〉') ,('  Y     `  /  /'),(' イ● 、 ●  ⊂⊃〈  /') ,(' ()  へ    | \〈'),('  >ー 、_  ィ  │ //') ,(' / へ   / ノ<| \\'),(' ヽ_ノ  (_/  │//'),('7       |/') ,('>―r ̄ ̄`ー―_')]
    #皮卡丘~~
    for i in range(len(a)):# 按照皮卡丘列表的长度来循环
        if j % 2 == 1:# j代表整个横向过去的次数,取余数是为了过去再回来的逻辑
            print(num*" "+a[i])# 如果j= 1则 j%2 =1  就是向右走,则每个皮卡丘前面增加空白符
        else:#如果j= 2则 j%2 =0 则执行下列,计算逻辑是40-空白符,则看上去是向左走
            print((40-num)*" "+a[i])
    time.sleep(0.03)

def pikaqiu2(num,i):
    #皮卡丘2,是另外一种特效
    os.system("clear")# mac与linux系统 调用系统指令,清屏,从而形成视觉特效
    #os.system("cls")#window 系统使用此 调用系统指令,清屏,从而形成视觉特效
    a = [('   へ     /|'),('  /\7    ∠_/'),('  / │   / /') ,(' │ Z _,< /   /`ヽ'),(' │     ヽ   /  〉') ,('  Y     `  /  /'),(' イ● 、 ●  ⊂⊃〈  /') ,(' ()  へ    | \〈'),('  >ー 、_  ィ  │ //') ,(' / へ   / ノ<| \\'),(' ヽ_ノ  (_/  │//'),('7       |/') ,('>―r ̄ ̄`ー―_')]
    for i in range(len(a)):
        if i % 2 == 1:# 这里上面函数传入的i被for的i替换,从而形成一行向左走,一行向右走的效果
            print(num*" "+a[i])
        else:
            print((40-num)*" "+a[i])
    time.sleep(0.03)

if __name__ == '__main__':
    for i in range(10):#控制循环次数
        for j in range(40):#控制动画位移
            print('\033[1;3'+str(i)+'m')# 修改命令行控制台颜色
            if i < 5: pikaqiu(j,i)# 前5次 一种特效
            else:pikaqiu2(j,i)# 后5次 一种特效
            print('\033[0m')#关闭控制台颜色

你可能感兴趣的:(趣味python之print做会动的皮卡丘)