python入门及进阶学习记 lesson2
course from https://www.icourse163.org/learn/BIT-1002058035
# TempConvert.py
val = input("请输入带温度表示符号的温度值(例如: 32C): ")
if val[-1] in ['C','c']:
f = 1.8 * float(val[0:-1]) + 32
print("转换后的温度为: %.2fF"%f)
elif val[-1] in ['F','f']:
c = (float(val[0:-1]) - 32) / 1.8
print("转换后的温度为: %.2fC"%c)
else:
print("输入有误")
温度转换
input 提示输出数据 类似java的Scanner
if判定 数据val[-1]最后一位截取 是否 在 C与c 中进行包含
有则: 进行数据计算并打印结果
再进行 elif 判定 (与java中 else if一致) …
最后else: 执行打印.
接下来,阅读教程,并尝试用你的新Python编译器做一些简单的练习。
If you’ve never programmed before, see BeginnersGuide/NonProgrammers for a list of suitable tutorials.
如果你之前没有编程经验,读一下 [[BeginnersGuide/NonProgrammers], 里面有适合你的教程列表。
If you have previous programming experience, consult BeginnersGuide/Programmers, which lists more advanced tutorials.
如果你之前有编程经验,参考 BeginnersGuide/Programmers, 里面列出了更多高级教程。
If English isn’t your first language, you might be more comfortable with a tutorial that’s been translated into your language. Consult python.org’s list of Non-English resources.
如果英语不是你的母语,阅读翻译好的教程更适合你。参考 python.org’s 非英语资源列表.
Most tutorials assume you know how to run a program on your computer.
绝大部分教程都假设你掌握如何在你的电脑上运行程序。
BeginnersGuide/Programmers 在lesson1中已经都测试过了,至于有没有什么太难懂的,在初学者教程中暂时还不算太难.
这里有个比较有趣的题目: 表现出了Python语言的简洁与优雅
# 猴子吃桃问题.
# 猴子第一天摘下若干个桃子,当即吃了一半, 还不过瘾, 又多吃了一个;
# 第二天早上又将剩下的桃子吃掉一半, 又多吃了一个.
# 以后每天早上都吃了前一天剩下的一半多一个.
# 到第五天早上想再吃时, 见只剩下一个桃子了.
# 请编写程序计算猴子第一天共摘了多少桃子.
n = 1
for i in range(5,0,-1):
n = (n+1) << 1
print(n)
画桌面文件
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)
turtle.pencolor("#ff5500")
turtle.fillcolor("green")
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()
画蟒蛇
import turtle
def drawSnake(rad,angle,len,neckrad):
for i in range(len):
turtle.circle(rad,angle)
turtle.circle(-rad,angle)
turtle.circle(rad,angle/2)
turtle.fd(rad)
turtle.circle(neckrad+1,180)
turtle.fd(rad*2/3)
def main():
turtle.setup(1300,800,0,0)
pythonsize = 30
turtle.pensize(pythonsize)
turtle.pencolor("blue")
turtle.seth(-40)
drawSnake(40,80,5,pythonsize/2)
turtle.mainloop()
main()
画金字塔
import turtle
import time
def drawGiza(size,speed,angle):
turtle.speed("fastest")
turtle.pensize(size)
for x in range(100):
turtle.forward(speed*x)
turtle.left(angle)
time.sleep(3)
def main():
drawGiza(2,4,90)
turtle.mainloop()
main()
函数库的引用:
模块索引https://docs.python.org/zh-cn/3/py-modindex.html
函数库调用方式
两种不同的调用方式的区别
第一种 import 需要写原库名.方法
使用第二种 from 库名 import 某方法(模块) 不需要写库名
引入库函数设置别名
类型的概念:
类型是编程语言对数据的一种划分.
Python语言的类型:
数字类型,字符串类型,元组类型,列表类型,文件类型,字典类型
数字类型:
与数学中的整数概念一致,没有取值范围限制
pow(x,y) 函数: 计算
# 求平均数
num1 = input("The first number is :")
num2 = input("The second number is : ")
avg_num = (float(num1) + float(num2)) / 2
print("The average number is %f" % avg_num)