以解决问题为导向的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编程实践的更多相关文章

  1. Python入门经典. 以解决计算问题为导向的Python编程实践

    Python入门经典. 以解决计算问题为导向的Python编程实践(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1juLsew8UiOErRheQPOuTaw 提取 ...

  2. 《android开发艺术探索》读书笔记(十四)--JNI和NDK编程

    接上篇<android开发艺术探索>读书笔记(十三)--综合技术 No1: Java JNI--Java Native Interface(java本地接口),它是为了方便java调用C. ...

  3. erl_0020 《面对软件错误构建可靠的分布式系统》读书笔记001 “面向并发COPL”

    在现实世界中,顺序化的(sequential)活动非常罕见.当我们走在大街上的时候,如果只看到一件事情发生的话我们一定会感到不可思议,我们期望碰到许多同时进行的活动. 如果我们不能对同时发生的众多事件 ...

  4. erl_0014 《硝烟中的erlang》 读书笔记001 “绪论”

    1.大家听说Erlang,往往是因为其对高并发的良好支持.其实,Erlang的核心特征是容错,从某种程度上讲,并发只是容错这个约束下的一个副产品.容错是Erlang语言的DNA,也是和其他所有编程语言 ...

  5. 你必须知道的.net读书笔记之第二回深入浅出关键字---对抽象编程:接口和抽象类

    请记住,面向对象思想的一个最重要的原则就是:面向接口编程. 借助接口和抽象类,23个设计模式中的很多思想被巧妙的实现了,我认为其精髓简单说来就是:面向抽象编程. 抽象类应主要用于关系密切的对象,而接口 ...

  6. 读书笔记 effective c++ Item 48 了解模板元编程

    1. TMP是什么? 模板元编程(template metaprogramming TMP)是实现基于模板的C++程序的过程,它能够在编译期执行.你可以想一想:一个模板元程序是用C++实现的并且可以在 ...

  7. 【读书笔记】Linux命令行与Shell脚本编程大全

    Linux命令行与Shell脚本编程大全 5.2 shell 的父子关系 命令分组 Command Grouping 主要有两种形式: 一种以小括号包括,命令之间以冒号分隔.也被称为 进程列表: 注意 ...

  8. #Python学习笔记:1-3章 (基于《python编程,从入门到实践)

    第1-3章 这个文档是记录我学习python时一些学习笔记以及一些想法也可以称作复习笔记 第一章:起步这一章主要是从第一个"hello world"程序到python环境的搭建与配 ...

  9. Python入门经典 以解决计算问题为导向的Python编程 待完好

    1.4.2:python将代码分为两类:表达式和语句  表达式和语句::  表达式(值和运算符的结合,将产生新值--返回值. 假设在python shell中输入表达式将显示返回值.也就是说,假设x的 ...

随机推荐

  1. ubuntu安装mysql 并对外暴露3306端口

    安装 sudo apt-get install mysql-client mysql-server vi /etc/mysql/mysql.conf.d/mysqld.cnf bind 127注掉 m ...

  2. Ubuntu管理员密码设置

    最近学习嵌入式编程,首先准备搭建一个嵌入式开发环境. 由于想省钱,就准备搭建一个虚拟的arm系统用于测试学习. 虚拟系统搭建与linux系统上,暂定使用Ubuntu+qemu进行环境搭建. 在进行Ub ...

  3. bigdecimal解决小数间的加减乘除

    public class bigdecimal { public static BigDecimal div(double v1,double v2){ BigDecimal b1=new BigDe ...

  4. 1.3 React 组件

    1.3.1 React 组件介绍 在 React 中组件是第一元素,是 React 的基础,一个 React 应用就是基于 React 组件的组合而成.前面的 JSX 练习过后,大家应该对 React ...

  5. 使用uc进行手机页面调试

    最近使用uc浏览器的时候发现了,一个有趣的现象,就是uc会处理h5web app为全屏,并屏蔽一些手机上的操作,这样就会使web app更加接近本地应用.所以就研究 了一下uc的手机调试. 1.准备工 ...

  6. 剑指offer——72圆圈中最后剩下的数字

    题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈.然后,他随机指 ...

  7. angularJS 上传multipart/form-data

    var fd = new FormData();fd.append('file', vm.file);CommodityViewImport.post(fd, onSaveSuccess, onSav ...

  8. C# WinfForm 控件之dev图表 ChartControl

    dev 图表控件 学习连接 新建一个winformApp form1上放一个button 再放一个chartControl Name 为cct 直接上代码 private void button1_C ...

  9. 关于Swagger @ApiModel 返回内容注释不显示问题

    今天做了一天@ApiModel希望Swagger生成的文档出现返回的内容注释,发现需要用到@ApiModel注解到你需要返回的类上 @ApiModelProperty作为字段的描述 例如  之后文档还 ...

  10. 对TextVIew中特定字符串设定onTouchEvent方法

    上面是Iphone备忘录的图,笔者之前接到一个需求是实现点击文本框里的数字,弹出一个类似上图的按钮,显示出复制,要求是这个按钮的位置必须是根据你点击的位置进行定位(为什么这么说,是因为我们不可能把按钮 ...