笔记
- 程序设计语言
程序设计语言也叫编程语言,是计算机能够理解和识别操作的一种交互体系。
最好的程序语言是人类的自然语言,但是自然语言存在表达歧义和文学色彩浓厚的问题。 - 程序设计语言的种类
机器语言:01代码,CPU认识的语言
汇编语言:在机器语言上增加了人类可读的助记符
高级语言:像自然语言靠近的语言 - 编译和解释两种执行模式
编译:将高级语言源代码转换成目标代码(机器语言),程序便可运行。
好处:①目标代码执行速度更快②目标代码在相同操作系统上使用灵活
编译执行的编程语言叫做静态语言,如C、Java语言等。
解释:将源代码逐条转化成目标代码同时逐条运行,每次运行程序都需要源代码和解释器。
好处:①便于维护源代码②良好的可移植性
解释执行的编程语言叫做脚本语言,如PHP、JavaScript等 - Python语言
是通用语言、脚本语言、开源语言、跨平台语言、多模型语言 - 程序的基本编写方法
IPO模式:I:Input输入,程序的输入
P:Process处理,程序的主要逻辑
O:Output输出,程序的输出 - 程序编写的步骤
分析问题:分析问题的计算部分
确定问题:将计算部分划分为确定的IPO三部分
设计算法:完成计算部分的核心处理方法
编写程序:实现整个程序
调试测试:使程序在各种情况下都能够正确运行
升级维护:使程序长期正确运行,适应需求的微小变化 - 温度转换实例
- Initial-print模板
初始变量:运算需要的初始值
运算部分:根据算法实现
结果输出:print()输出结果 - 蟒蛇绘制
- 函数库引用
① 第一种方式在程序头部增加:
Import<库名>
② 第二种引用方式
from<库名>import<函数名>
from<库名>import*
课后练习
第一单元
#第一题
#字符串拼接。用户输入两个字符串,将它们组合后输出。
a1=input("请输入一个人的名字:")
a2=input("请输入一个国家名字:")
print("世界这么大,{}想去{}看看。".format(a1,a2))
#第二题
#整数序列求和。用户输入一个正整数N,计算从1到N(包含1和N)相加之后的结果
N=input("请输入一个正整数:")
t=0
for i in range(int(N)+1):
t=t+i
print("1到N求和的结果为:{}".format(t))
#第三题
#九九乘法表输出,工整打印出常用的九九乘法表,格式不限
for i in range(1,10):
for j in range(1,i+1):
print("{}*{}={}".format(j,i,i*j),end=" ")
print(" ")
#第四题
#阶乘计算,前n阶阶乘求和
t=1
s=0
N=input("请输入一个正整数:")
for i in range(1,int(N)+1):
t=t*i
s=s+t
print(t,s)
#第五题
'''猴子吃桃,猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半多一个。
到第五天早上想再吃的时候,见只剩下一个桃子了。请编写程序计算猴子一天共摘了多少桃子?'''
#自己的答案
n=1
for i in range(1,5):
n=(n+1)*2
print(n)
#这个是给的答案,感觉有点问题,多了一个循环,改成正确的了
n=1
for i in range(5,1,-1):
n=(n+1)<<1
print(n)
#第六题
#食谱输出。列出5种不同的食材,请输出它们可能组成的所有菜式名称
meal=["吮指原味鸡","脆皮炸鸡","安格斯厚牛堡","榴莲芝士披萨","肥宅快乐水"]
for i in range(0,5):
for j in range(0,5):
if i!=j:
print("今天吃{}和{}".format(meal[i],meal[j]))
print("")
#第七题
#五角星绘制,绘制一个红色的五角星图形
import turtle as t
t.fillcolor("red")
t.begin_fill()
while True:
t.forward(300)
t.right(144)
if abs(t.pos())<1:
break
t.end_fill()
#第八题
#太阳花的绘制
import turtle as t
t.pencolor("red")
t.fillcolor("yellow")
t.begin_fill()
while True:
t.forward(200)
t.right(170)
if abs(t.pos())<1:
break
t.end_fill()
#第九题
#螺旋线绘制,绘制一个螺旋线的图形
import turtle as t
t.pencolor("yellow")
t.pensize(2)
t.speed("fastest")
for i in range(500):
t.forward(2*i)
t.left(90)
#第十题
#彩色螺旋线的绘制,绘制一个彩色螺旋线
import turtle as t
t.speed("fastest")
t.pensize(2)
t.bgcolor("black")
colors=["pink","yellow","blue","purple"]
#t.tracer(False)
for i in range(600):
t.forward(2*i)
t.color(colors[i%4])
t.left(91)
第二单元
#第一题
#练练手,温度转换与蟒蛇绘制
#温度转换程序
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("输入有误")
'''
'''
#pyhon蟒蛇绘制
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)
main()
#第二题
#温度转换程序新编,采用eval()函数替换温度转换程序中的float()函数,观察运行结果。
val=input("请输入带温度表示符号的温度值(例如:32C):")
if val[-1]in["C","c"]:
f=1.8*eval(val[0:-1])+32
print("转换后的温度为:%.2fF"%f)
elif val[-1]in["F","f"]:
c=(eval(val[0:-1])-32)/1.8
print("转换后的温度为:%.2fC"%c)
else:
print("输入有误")
#第三题
#彩色蟒蛇绘制,使Python蟒蛇各个部分采用不同的颜色
import turtle
def drawsnake(rad,angle,len,neckrad):
colors=["red","pink","yellow","blue","purple"]
for i in range(len):
turtle.circle(rad,angle)
turtle.circle(-rad,angle)
turtle.color(colors[i%5])
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.seth(-40)
turtle.color("green")
drawsnake(40,80,5,pythonsize/2)
main()
#第四题
#修改蟒蛇绘制中seth()函数的参数值
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(-50)
drawsnake(40,80,5,pythonsize/2)
main()
#第五题
#绘制等边三角形,使用turtle库中turtle.fd()函数和turtle.seth()函数绘制一个等边三角形
import turtle as t
for i in range(1,4):
t.fd(200)
t.seth(i*120)
#第六题
#(一)中(7)(8)程序的含义
#答:两者类似,不同点是两者绘制时转过的角度不同,所需角度要能够使得终点与初始点重合。
我也很奇怪为什么学完基础课才开始学零基础先修课
可能是因为强迫症(?)