(python语言程序设计教程)自学一
文章目录
- 前言
- 一、计算机基础概述
- 1. 计算机硬件组成
- 2. 计算机软件与程序设计语言
- 二、python语言简介
- 三、turtle库
- 3.1. 画布设置:
- 3.2. 基本方法
- 3.3. 基本图形绘制
- 四、课后习题
- 4.1. 求圆柱体体积
- 4.2. 绘制一个内嵌了一个正三角形的圆
- 4.3. 绘制多个具有公共交点的圆
- 4.4. 猜数游戏
- 总结
前言
本系列文章,主要是对学校开设的python课程进行总结,教科书为:python语言程序设计
一、计算机基础概述
1. 计算机硬件组成
2. 计算机软件与程序设计语言
从最开始的机器语言到汇编语言,再到现在绝大多数程序设计者都在使用的高级语言,如python、Java、C++等。程序代码只是对某个问题解决方案的计算机实现。学会如何思考,才是最有价值的。
例题:
# 抓小偷问题
zheng_jia = []
thiefs = ["A", "B", "C", "D"]
for thief in thiefs:
if thief == "A":
A = False
B = False
C = False
D = True
zheng_jia.append([A, B, C, D])
elif thief == "B":
A = True
B = False
C = False
D = True
zheng_jia.append([A, B, C, D])
elif thief == "C":
A = True
B = True
C = False
D = True
zheng_jia.append([A, B, C, D])
else:
A = True
B = False
C = True
D = False
zheng_jia.append([A, B, C, D])
print(zheng_jia)
result = []
for i, sublist in enumerate(zheng_jia):
true_count = sublist.count(True)
fasle_count = sublist.count(False)
if true_count == 3 and fasle_count == 1:
result.append(i)
print(result)
mubiao_sublist = [zheng_jia[i] for i in result]
print(mubiao_sublist)
zhen_thief = [thiefs[i] for i in result]
print(zhen_thief)
#结果:
[[False, False, False, True], [True, False, False, True], [True, True, False, True], [True, False, True, False]]
[2]
[[True, True, False, True]]
['C']
由此可知,C为小偷
二、python语言简介
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。. Python 的设计具有很强的可读性,在TIOBE官网中我们可以看到python语言在诸多编程语言中位居榜首
python语言是一门“胶水语言”,有极好的扩展性,当然它也有缺点:执行效率不高。
python语言也被预言将成为AI时代的第一语言。
总之,“人生苦短,我用python”
三、turtle库
首先介绍一下turtle库:turtle是Python标准库之一,是入门级图形绘制函数库。
3.1. 画布设置:
import turtle
#画布位置及大小设置
turtle.setup(width= 600,height= 600,startx= 200,starty=200)
#画布大小、颜色设置
turtle.screensize(canvwidth= 400,canvheight=400,bg= "white")
turtle.getscreen()
3.2. 基本方法
3.3. 基本图形绘制
- 绘制90°夹角折线段
turtle.pendown() #落笔,移动时绘图
turtle.forward(100) #水平向右为前进方向
turtle.right(90) #前进方向向右转90°
turtle.forward(100)
# 保持画布显示
turtle.done()
- 绘制黑色粗边框、红色填充三角形
# 绘制黑色粗边框、红色填充三角形
turtle.color("black",'red')
turtle.pensize(3) #设置画笔宽度
turtle.setheading(60) #设置当前角度方向
turtle.begin_fill() #开始填充图形
turtle.forward(100)
turtle.right(120)
turtle.forward(100)
turtle.right(120)
turtle.forward(100)
turtle.end_fill()
# 保持画布显示
turtle.done()
- 其它
#绘制半径为100像素的圆
turtle.circle(100)
#绘制半径为100像素、圆心角为90°的圆弧
turtle.circle(100,90)
#绘制半径为100像素的内接八边形
turtle.circle(radius= 100,steps=8)
#绘制直径为20像素的红色圆点
turtle.dot(20,"red")
# 保持画布显示
turtle.done()
- 绘制奥运五环
import turtle
turtle.pensize(3)
# 绘制蓝色圆环
turtle.pencolor('blue')
turtle.circle(50)
# 绘制黑色圆环
turtle.penup() #提笔准备平移
turtle.forward(110) #前进(向右)110像素,平移至点2
turtle.pencolor('black')
turtle.pendown()
turtle.circle(50)
#绘制红色圆环
turtle.penup()
turtle.forward(110)
turtle.pencolor('red')
turtle.pendown()
turtle.circle(50)
# 绘制黄色圆环
turtle.penup()
turtle.backward(170) #后退170像素
turtle.right(90) #向右旋转 90°,准备下移
turtle.forward(50) #向下移动50像素,移至点4
turtle.setheading(0) #前进方向重新设置为0°,即水平向右
turtle.pencolor('yellow')
turtle.pendown()
turtle.circle(50)
# 绘制绿色圆环
turtle.penup()
turtle.forward(110)
turtle.pencolor('green')
turtle.pendown()
turtle.circle(50)
turtle.done()
四、课后习题
4.1. 求圆柱体体积
import math
r = eval(input("请输入圆柱体的半径:"))
h = eval(input("请输入圆柱体的高度:"))
volume= math.pi*r*r*h
print("半径为{}高为{}的圆柱体体积为:{:.2f}".format(r,h,volume))
#或者
import numpy as np
r = int(input())
h = int(input())
volume = np.pi *r*r *h
print(volume)
4.2. 绘制一个内嵌了一个正三角形的圆
import turtle as t
import math
t.pensize(2) #设置画笔宽度
t.right(90)#画笔方向向右旋转 90°,从向右转为向下
t.penup() #抬起画笔,下移时不绘制线条
t.forward(200)#画笔下移 200 像素
t.pendown()# 放下画笔,准备绘制线条
t.left(90) # 画笔方向向左旋转 90°,从向下转为向右
# 绘制圆形
r=200
t.circle(r)
# 绘制内嵌正三角形
len= r*math.sqrt(3)
t.left(60)
t.forward(len)
t.left(120)
t.forward(len)
t.left(120)
t.forward(len)
t.done()
4.3. 绘制多个具有公共交点的圆
import turtle as t
t.color("green")
t.speed("fast")
for i in range(20):
t.shape("turtle")
t.circle(100,360)
t.left(18)
t.done()
4.4. 猜数游戏
import random as rd
target = rd.randint(1,100)
print("==========================")
count = 0
while True:
guess = eval(input("请输入猜测的数值:"))
count +=1
if guess>target:
print("大了")
elif guess<target:
print("小了")
else:
print(f"恭喜你,第{count}次就答对了")
break
#改进一下这个猜数游戏:
import random
target = random.randint(0, 100)
# print("随机数:", target)
count = 1
success = False
#设置次数限制为10次
while count <= 10:
print("*" * 20)
num = input(f"第{count}次,您输入的数字为:")
if num == "quit":
break
if not str(num).isnumeric():
print("不可以哦,您输入的不是数字,请继续吧")
continue
num = float(num)
if num == target:
print("恭喜您答对了,数字是:", target)
success = True
break
elif num < target:
print("您猜小了")
else:
print("您猜大了")
count += 1
if not success:
print("很遗憾,您没有猜对,正确数字是:", target)
总结
本篇文章总结了该书的第一章,之后也会继续学习后面的章节。
天下皆知美之为美,斯恶矣;皆知善之为善,斯不善矣。
–2023-9-14 筑基篇