<读书笔记>001-以解决问题为导向的python编程实践

以解决问题为导向的python编程实践

0.第0章:计算机科学

  • 思考:计算机科学是否为计算机编程的简称?
  • 编程的困难点:1.同时做2件事(编程语言的语法、语义+利用其解决问题)  2.什么是好程序(解决问题+普遍适用+优美如诗)
  • python的出发点:使得程序猿的效率更高
  • 什么是计算?计算是人类或机器对数据进行操作
  • 。。。(剩下的就是基础普及)

1.第一章:开始编程

  • 编程规则:规则1:编写前深思熟虑  规则2:可读性+解决问题  规则3:实践是提高编程能力和问题解决能力的最好办法

  问题1:计算圆的周长

  • 1、提示用户输入半径
  • 2、利用公式计算周长和面积
  • 3、输出结果给用户看

  1,写python代码     计算周长面积.py  

import math
r = int(input("请输入半径:"))
c = 2*math.pi*r
s = math.pi*r*r
print("周长是%s,面积是%s"%(c,s))
input()

  2.打包成可执行文件

pyinstaller -F 计算周长面积.py

  

  3.执行文件

   问题2:海龟绘图(Turtle Graphics)之画一个五角星

  • 1.导入turtle模块,画一个五角星
  • 2.打包成一个可执行程序
  • 3.根据可执行程序存在的问题,做一定的修改

1.海龟视图01.py

import turtle
import time

turtle.forward(100)
turtle.right(144)
turtle.forward(100)
turtle.right(144)
turtle.forward(100)
turtle.right(144)
turtle.forward(100)
turtle.right(144)
turtle.forward(100)

time.sleep(2)

2.打包成可执行程序(CMD-将路径移动到文件所在的文件夹下)

pyinstaller -F 海龟视图01.py

  

3.执行,查看效果

 

2.第二章:控制语句

  问题3:篮球运动多少领先才安全

1.篮球运动多少领先才安全.py

# 基于Bill James的算法
'''
	1.获取领先一队的分数
	2.减去三分
	3.如果当前是领先队控球,那么加上0.5分;反之,减去0.5分(若数字小于0则将其变成0)
	4.计算平方后的结果
	5.如果得到的结果比当前比赛剩下的时间的秒数更大,那么这个领先是安全的
'''

pointsStr = int(input("请输入领先一队的分数:"))
points = pointsStr - 3

has_ball = input("当前是否为领先队控球(1代表是,0代表否,请输入1或0):")
if has_ball == '1':
	points = points + 0.5
else:
	points = points - 0.5

if points < 0:
	points = 0

points = points ** 2

seconds = int(input("请输入比赛剩余的秒数:"))

if points > seconds:
	print("这个领先是安全的!")
else:
	print("这个领先不安全!")

input()

  

2.打包成可执行文件

pyinstaller -F 篮球运动多少领先才安全.py

  问题4:冰雹序列

1.冰雹序列.py

# Collatz在1937年提出的数学猜想
'''
	1.如果数字是偶数,除以2
	2.如果数字是奇数,乘以3,再加1.
	3.如果数字等于1,退出程序
'''

from pylab import *

number = int(input("请输入你需要验证的数字(正整数):"))
# 接收坐标值
Y = []

Y.append(number)
while number > 1:
	if number % 2:
		number = number * 3 + 1
		Y.append(number)
	else:
		number = number / 2
		Y.append(number)
if number == 1:
	print("该数满足冰雹序列,图像如下")
	X = np.arange(1, len(Y) + 1, 1)
	plt.plot(X, Y)
	plt.show()
else:
	print("该数不满足冰雹序列!")

2.打包

pyinstaller -F 冰雹序列.py

这个画图包打包起来太大了,打包完300M+,真的6,以后少干这种事(以后可以研究,怎么样打包占用空间少

3.运行

 

3.第三章:算法和程序开发

  什么是算法?

算法:计算或其他解决问题的操作需要遵循一个过程或者一套规则(解决问题的方法)

 后面似乎没有从解决问题的角度去描述问题了,只是单纯的介绍了一些基本概念

posted @ 2019-08-12 12:56  水墨黑  阅读(332)  评论(0编辑  收藏  举报