前言
从今天开始,我将用重新学习python。
为什么用100天这个标题,是因为遵照的是github上一个100天学python的项目
地址如下:day 01
同时,还参考了《a bite of python》、《笨办法学python》以及Python123作为练习
大家可以都下载/收藏一下。
有一些方便参考的基础教程,任选一样先看起来:
1.菜鸟教程
2.《python从入门到实践》
3.《python基础教程》
前面几天比较简单的,可以利用在线平台出结果:
1.菜鸟工具
2.在线编程
有些同学可能觉得我在这里写的内容过于简略,其实我这里主要是用于记录自己的进度的,主要参考资料都已经列出,文字部分其实大家直接看就可以,我再复制粘贴也没什么意思。
如果大家需要的话,我可以在B站上复现一下我是怎么学的,大家看B站视频来学习基础知识即可。
Day 01内容
今天的内容主要是安装
可能看安装就有点头疼,我建议直接选一种,不要多想
我自己的windows系统
1.首先就是安装python ,参见百度 link
这时,你就可以在cmd命令行下运行python了
除了打开.py的文件,你还可以输入"python",之后直接写代码,如“print(“Hello,world”);”回车,会发现下一行就是 Hello,world
2.还可以选择安装anaconda(我选择的这个)
3.接下来是安装大型IDE
具体的安装方式,在我的之前的文章中提到过选择Python开发环境
上面的几步大家都要自己一步一步,慢慢来。
如果觉得我讲得不清楚,随便在网上搜一下,应该都有很多傻瓜教程的。
还有一个小内容就是关于注释
分为单行注释和多行注释
# 单行注释
'''
多行注释
多行注释
'''
Day 01 练习
我们可以看到100天教程中有两个练习
这是针对交互式环境的练习
你只要打开命令行或者IDLE(如果你认真看了我上面的步骤和文章应该知道怎么打开)
然后一行一行输入下来
注意:我不会把代码照抄过来,练习的来源我已经告诉大家了,你只要打开我给你的连接,下拉到练习部分,一步一步打下来就行。不要复制粘贴!
先完成第一个任务(只要输入第一行就行)
完成之后,你可能觉得有点莫名其妙
这个任务其实是有背景故事,算是一个小彩蛋吧,另外还有英文版
第二个练习需要一行一行输入,输入的时候,注意图像的变化
turtle是python的一个图形库,import就是引入了,显然import可以引入库和模块
我们可以画出一个正方形
想必你在使用的过程中已经有些明白这些函数的用法了吧
我在这里贴一个详解供参考
如果你愿意,可以把详解最后的几个程序都打一遍。
import turtle
import time
# 同时设置pencolor=color1, fillcolor=color2
turtle.color(’red‘, ’yellow‘)
turtle.begin_fill()
# 开始填充
for _ in range(50):
turtle.forward(200)
turtle.left(170)
#循环50次,画出太阳花,过程很有意思
turtle.end_fill()
#结束填充
turtle.mainloop()
那篇文章中用的是python2,所以有些不一样,大家还是照着我这个来。
我们注意到文章中有一个
# coding=utf-8
这句话往往在第一行或第二行,作用是强制使用某种编码,如这里的utf-8编码,目的是可以编写中文
它的另外形式还有
# coding:utf-8
## -*- coding:utf-8 -*-
过去我们使用的python2 如果不加这一句,含有中文的代码便无法正常运行,所以需要加
而现在的python3 均默认使用了utf-8,所以不用再加。
import turtle
import time
turtle.pensize(5)
turtle.color('yellow','red')
turtle.begin_fill()
for _ in range(5):
turtle.forward(200)
turtle.right(144)
turtle.end_fill()
time.sleep(2)
# 推迟调用线程的运行,可通过参数secs指秒数,表示进程挂起的时间
turtle.penup()
turtle.goto(-150,-120)
turtle.color("violet")
turtle.write("Done", font=('Arial', 40, 'normal'))
turtle.mainloop()
第三个时钟,难度比较大,包含许多我们还没学的内容,可以暂时不做
# coding=utf-8
import turtle
from datetime import *
# 抬起画笔,向前运动一段距离放下
def Skip(step):
turtle.penup()
turtle.forward(step)
turtle.pendown()
def mkHand(name, length):
# 注册Turtle形状,建立表针Turtle
turtle.reset()
Skip(-length * 0.1)
# 开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。
turtle.begin_poly()
turtle.forward(length * 1.1)
# 停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。
turtle.end_poly()
# 返回最后记录的多边形。
handForm = turtle.get_poly()
turtle.register_shape(name, handForm)
def Init():
global secHand, minHand, hurHand, printer
# 重置Turtle指向北
turtle.mode("logo")
# 建立三个表针Turtle并初始化
mkHand("secHand", 135)
mkHand("minHand", 125)
mkHand("hurHand", 90)
secHand = turtle.Turtle()
secHand.shape("secHand")
minHand = turtle.Turtle()
minHand.shape("minHand")
hurHand = turtle.Turtle()
hurHand.shape("hurHand")
for hand in secHand, minHand, hurHand:
hand.shapesize(1, 1, 3)
hand.speed(0)
# 建立输出文字Turtle
printer = turtle.Turtle()
# 隐藏画笔的turtle形状
printer.hideturtle()
printer.penup()
def SetupClock(radius):
# 建立表的外框
turtle.reset()
turtle.pensize(7)
for i in range(60):
Skip(radius)
if i % 5 == 0:
turtle.forward(20)
Skip(-radius - 20)
Skip(radius + 20)
if i == 0:
turtle.write(int(12), align="center", font=("Courier", 14, "bold"))
elif i == 30:
Skip(25)
turtle.write(int(i/5), align="center", font=("Courier", 14, "bold"))
Skip(-25)
elif (i == 25 or i == 35):
Skip(20)
turtle.write(int(i/5), align="center", font=("Courier", 14, "bold"))
Skip(-20)
else:
turtle.write(int(i/5), align="center", font=("Courier", 14, "bold"))
Skip(-radius - 20)
else:
turtle.dot(5)
Skip(-radius)
turtle.right(6)
def Week(t):
week = ["星期一", "星期二", "星期三",
"星期四", "星期五", "星期六", "星期日"]
return week[t.weekday()]
def Date(t):
y = t.year
m = t.month
d = t.day
return "%s %d%d" % (y, m, d)
def Tick():
# 绘制表针的动态显示
t = datetime.today()
second = t.second + t.microsecond * 0.000001
minute = t.minute + second / 60.0
hour = t.hour + minute / 60.0
secHand.setheading(6 * second)
minHand.setheading(6 * minute)
hurHand.setheading(30 * hour)
turtle.tracer(False)
printer.forward(65)
printer.write(Week(t), align="center",
font=("Courier", 14, "bold"))
printer.back(130)
printer.write(Date(t), align="center",
font=("Courier", 14, "bold"))
printer.home()
turtle.tracer(True)
# 100ms后继续调用tick
turtle.ontimer(Tick, 100)
def main():
# 打开/关闭龟动画,并为更新图纸设置延迟。
turtle.tracer(False)
Init()
SetupClock(160)
turtle.tracer(True)
Tick()
turtle.mainloop()
if __name__ == "__main__":
main()
那么今天就结束啦,明天见。