<读书笔记>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.第三章:算法和程序开发
什么是算法?
算法:计算或其他解决问题的操作需要遵循一个过程或者一套规则(解决问题的方法)
后面似乎没有从解决问题的角度去描述问题了,只是单纯的介绍了一些基本概念
<读书笔记>001-以解决问题为导向的python编程实践的更多相关文章
- Python入门经典. 以解决计算问题为导向的Python编程实践
Python入门经典. 以解决计算问题为导向的Python编程实践(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1juLsew8UiOErRheQPOuTaw 提取 ...
- 《android开发艺术探索》读书笔记(十四)--JNI和NDK编程
接上篇<android开发艺术探索>读书笔记(十三)--综合技术 No1: Java JNI--Java Native Interface(java本地接口),它是为了方便java调用C. ...
- erl_0020 《面对软件错误构建可靠的分布式系统》读书笔记001 “面向并发COPL”
在现实世界中,顺序化的(sequential)活动非常罕见.当我们走在大街上的时候,如果只看到一件事情发生的话我们一定会感到不可思议,我们期望碰到许多同时进行的活动. 如果我们不能对同时发生的众多事件 ...
- erl_0014 《硝烟中的erlang》 读书笔记001 “绪论”
1.大家听说Erlang,往往是因为其对高并发的良好支持.其实,Erlang的核心特征是容错,从某种程度上讲,并发只是容错这个约束下的一个副产品.容错是Erlang语言的DNA,也是和其他所有编程语言 ...
- 你必须知道的.net读书笔记之第二回深入浅出关键字---对抽象编程:接口和抽象类
请记住,面向对象思想的一个最重要的原则就是:面向接口编程. 借助接口和抽象类,23个设计模式中的很多思想被巧妙的实现了,我认为其精髓简单说来就是:面向抽象编程. 抽象类应主要用于关系密切的对象,而接口 ...
- 读书笔记 effective c++ Item 48 了解模板元编程
1. TMP是什么? 模板元编程(template metaprogramming TMP)是实现基于模板的C++程序的过程,它能够在编译期执行.你可以想一想:一个模板元程序是用C++实现的并且可以在 ...
- 【读书笔记】Linux命令行与Shell脚本编程大全
Linux命令行与Shell脚本编程大全 5.2 shell 的父子关系 命令分组 Command Grouping 主要有两种形式: 一种以小括号包括,命令之间以冒号分隔.也被称为 进程列表: 注意 ...
- #Python学习笔记:1-3章 (基于《python编程,从入门到实践)
第1-3章 这个文档是记录我学习python时一些学习笔记以及一些想法也可以称作复习笔记 第一章:起步这一章主要是从第一个"hello world"程序到python环境的搭建与配 ...
- Python入门经典 以解决计算问题为导向的Python编程 待完好
1.4.2:python将代码分为两类:表达式和语句 表达式和语句:: 表达式(值和运算符的结合,将产生新值--返回值. 假设在python shell中输入表达式将显示返回值.也就是说,假设x的 ...
随机推荐
- 基于V8的JsonMapper
<dependency> <groupId>com.eclipsesource.j2v8</groupId> <artifactId>j2v8_win3 ...
- CentOS 搭建dns服务器 解析任意域名
DNS服务器IP地址:192.168.1.219 服务器版本:centos6.6一:软件安装 [root@localhost ~]# yum -y install bind* 二:修改主配置文件 [r ...
- Codeforces 1191B Tokitsukaze and Mahjong
题目链接:http://codeforces.com/problemset/problem/1191/B 题意:类似于麻将,三个一样花色一样数字的,或者三个同花顺就赢了,新抽的能当任何类型,问至少几个 ...
- 面向对象(五)——isinstance与issubclass、反射、内置方法
isinstance与issubclass.反射.内置方法 一.isinstance与issubclass方法 1.isinstance是用来判断对象是否是某个类 isinstance(obj,cla ...
- 基础补充(四)——流程控制之if、while、for,break与continue
流程控制 一.流程控制之if……else…… if 条件1: 缩进的代码块 elif 条件2: 缩进的代码块 elif 条件3: 缩进的代码块 ...... else: 缩进的代码块 二.流程控制之 ...
- Java控制台
Console类的目的是使Java程序和控制台之间的交互更容易.Console类是java.io包中的一个实用程序类,用于访问系统控制台.控制台不能保证在所有机器上的Java程序中可访问. 例如,如果 ...
- webpack 配置之入门一
webpack 是一个现代 Javascript 应用程序的模块打包器(module bundler ),它里面的功能比较多,核心模块可分为模块打包.代码分割与按需加载.这里只简单讲解下 webpac ...
- D3.js绘制 颜色:RGB、HSL和插值 (V3版本)
颜色和插值 计算机中的颜色,常用的标准有RGB和HSL. RGB:色彩模式是通过对红(Red).绿(Green).蓝(Blue)三个颜色通道相互叠加来得到额各式各样的颜色.三个通道的值得范围都 ...
- 【单调队列优化】[CF372C] Watching Fireworks is Fun
突然发现我可能单调队列都打不来了...我太菜了... 这道题显然有$$f[i][j]=min\{f[i-1][k]+\vert j-a[i] \vert\}$$ 则$ans=\sum_{i=1}^{m ...
- PHP算法之有效的括号
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合.左括号必须以正确的顺序闭合.注意空字符串可被认为是 ...