以解决问题为导向的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. LIBRARY_PATH是编译时候用的,LD_LIBRARY_PATH是程序运行是使用的

    LD_LIBRARY_PATH与LIBRARY_PATH的区别 看起来很像,但是完全是两码事. LIBRARY_PATH is used by gcc before compilation to se ...

  2. libvert开启TCP监听

    1.设置libvirtd 编辑/etc/libvirt/libvirtd.conf listen_tls = 0 listen_tcp = 1 auth_tcp="none" tc ...

  3. jmter 5.1 中文

    一.jmeter5.0下载解压后,默认的界面是英文版的,许多人觉得不方便,想要汉化,jmeter是不需要安装汉化包的,通过修改配置文件即可:1.找到jmeter解压后的文件夹,例如我是安装在D:\De ...

  4. vue-lic脚手架中引入font-awesome

    1.安装font-awesome npm i font-awesome --production 2.在main.js中引用 import 'font-awesome/css/font-awesome ...

  5. 前端(二)—— CSS的引入方式、长度与颜色单位、常用样式、选择器

    CSS的引入方式.长度与颜色单位.常用样式.选择器 一.CSS的三种引入方式 1.行间式 <!doctype html> <html> <head> <met ...

  6. 一份完整的 Java 成神路线图,值得收藏!

    Java,是现阶段中国互联网公司中,覆盖度最广的研发语言. 有不少朋友问,如何深入学习Java后端技术栈,今天分享一个,互联网牛人整理出来的完整的Java成神路线图. 一:常见模式与工具 学习Java ...

  7. 牛客网多校训练第九场H Cutting Bamboos

    题目链接:https://ac.nowcoder.com/acm/contest/889/H 题意:给出n颗竹子的高度,q次询问,每次询问给出l,r,x,y,每次选取[l,r]中的竹子,砍y次砍掉所有 ...

  8. 令人清爽的异步函数async、await

    1.什么是async.await? async用于声明一个函数是异步的.而await从字面意思上是"等待"的意思,就是用于等待异步完成.并且await只能在async函数中使用; ...

  9. python--常用模块:collections 、time、random

      一.collections 模块 1:nametuple 生成可以用名字访问内容的元祖 from collections import namedtuple point=namedtuple('p ...

  10. HTML 自定义元素教程

    组件是 Web 开发的方向,现在的热点是 JavaScript 组件,但是 HTML 组件未来可能更有希望. 本文就介绍 HTML 组件的基础知识:自定义元素(custom elements). 文章 ...