<读书笔记>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的 ...
随机推荐
- (转)OpenFire源码学习之十七:HTTP Service插件
转:http://blog.csdn.net/huwenfeng_2011/article/details/43457645 HTTP Service插件 这里的http接口插件是神马? Openfi ...
- mysql笔试题大餐---2、exists加一些查询
mysql笔试题大餐---2.exists加一些查询 一.总结 一句话总结: 实践:我之前的mysql真的学的太浅了,这种情况下,依据实践(做题)才是唯一能把它学好的方式 1.MySQL中EXISTS ...
- SPSS聚类分析:K均值聚类分析
SPSS聚类分析:K均值聚类分析 一.概念:(分析-分类-K均值聚类) 1.此过程使用可以处理大量个案的算法,根据选定的特征尝试对相对均一的个案组进行标识.不过,该算法要求您指定聚类的个数.如果知道, ...
- 1、siege安装
1.下载最新版本的siege wget http://download.joedog.org/siege/siege-latest.tar.gz 2.解压并进入siege路径 tar -zxvf si ...
- ICPC Asia Nanning 2017 F. The Chosen One (高精度运算)
题目链接:The Chosen One 比赛链接:ICPC Asia Nanning 2017 题意 \(t\) 组样例,每组给出一个整数 \(n(2\le n\le 10^{50})\),求不大于 ...
- webpack中代理配置(proxyTable)
注:用axios请求 1,下载axios npm i axios --save 2,在config文件下的index.js中配置代理地址 参考:https://vuejs-templates.gith ...
- String、StringBuffer、StringBuilder有什么区别?
1.在字符串不经常发生变化的业务场景优先使用String(代码更清晰简洁).如常量的声明,少量的字符串操作(拼接,删除等). 2.在单线程情况下,如有大量的字符串操作情况,应该使用StringBuil ...
- Django框架(三)—— orm增删改查、Django生命周期
目录 orm增删改查.Django生命周期 一.orm介绍 二.orm增删改字段 三.Django生命周期 orm增删改查.Django生命周期 一.orm介绍 1.什么是orm ORM即Object ...
- 调用API接口,查询手机号码归属地(3)
从mysql数据库获取电话号码,查询归属地并插入到数据库 #!/usr/bin/python # -*- coding: utf-8 -*- import json, urllib, sys, pym ...
- 基于角色访问控制的OA系统的设计与实现
摘要:随着电子政务的快速发展和全面普及,办公自动化(OA)系统的安全性显得越来越重要.对基于Web 的B/S 结构的OA 系统结构和安全需求进行了分析,为了增强用户身份鉴别和授权控制的安全性,分析了基 ...