河南师范大学python+学习笔记1 程序设计基本方法

吃水不忘挖井人
首先对河南师范大学的各位老师们说声谢谢。他们是:
张磊老师、张倩倩老师、刘金金老师、郭凌云老师、李晓艳老师、李志先老师、陶华亭老师、周雪燕老师、王爱菊老师、陈劲松老师、黄晓巧老师、夏辉丽老师

第一章 程序设计基本方法

为什么开设《Python+》课程

编程 :训练思维 增加认识 带来乐趣 提高效率 帮助就业

   语法简洁  平台无关   粘性扩展   开源理念   通用灵活  强制可读   
   支持中文  模式多样   类库丰富   

1.1.1 程序设计语言概述

程序设计语言( 编程语言)是计算机能够理解和识别用户操作意图的一种交互体系,
它按照特定规则组织计算机指令,使计算机能够自动进行各种
运算处理。

按照程序设计语言规则组织起来的一组计算机指令称为计算机程序。

(1)机器语言
机器语言是一种二进制语言,它直接使用二进制代码表达指令,
是计算机硬件可以直接识别和执行的程序设计语言。

例如:执行数字2和3的加法,16位计算机上的机器 指令为:
			11010010 00111011,

不同计算机结构的机器指令不同。

(2)汇编语言
使用助记符与机器语言中的指令进行逐一对应,
在计算机发展早期帮助程序员提高编程效率。

例如:执行数字2和3的加法,汇编语言指令为: add 2, 3, result,
运算结果写入result。   

机器语言和汇编语言都直接操作计算机硬件并基于此设计,所以它们统称为低级语言。

(3)高级语言
高级语言区别于低级语言在于,高级语言是接近自然语言的一种计算机程序设计语言,
能够更容易地描述计算问题并利用计算机解决计算问题(与 计算机硬件无关)。

 例如:执行数字2和3加法的高级语言代码:                 
		result = 2 + 3 

1.1.2 编译和解释
高级语言按照计算机执行方式的不同 可分成两类

扫描二维码关注公众号,回复: 11756466 查看本文章
	静态语言	采用编译执行       
	脚本语言	采用解释执

例如,C语言是静态语言,Python语言是脚本语言。
无论那种执行方式,用户使用方法可以是一致的,
例如,都可以通过双击文件名执行一个程序。
(1)编译
编译是将源代码转换成目标代码的过程,通常源代码是高级语言代码,
目标代码是机器语言代码,执行编译的计算机程序称为编译器。编译过程(2)解释
解释是将源代码逐条转换成目标代码的同时逐条运行目标代码的过程。
执行解释的计算机程序称为解释器。

解释过程

编译是一次性地翻译,一旦程序被编译,不再需要编译程序或者源代码。
 对于相同源代码,编译所产生的目标代码执行速度更快。
 目标代码不需要编译器就可以运行,在同类型操作系统上使用灵活。

解释则在每次程序运行时都需要解释器和源代码。
 解释执行需要保留源代码,程序纠错和维护十分方便。
 只要存在解释器,源代码可以在任何操作系统上运行,可移植性好。

1.1.3 计算机编程
——为什么要学习计算机编程?
——因为“编程”是当今众多行业技术升级和发展的主要手段!
——因为“编程”是件很有趣的事儿”,能启发思维!

计算思维是区别于以数学为代表的逻辑思维和以物理为代表的实证思维的第三种思维模式。
编程是一个利用计算机求解实际问题的过程。
(1)首先需要分析问题,抽象内容之间的交互关系;
(2)设计利用计算机求解问题的确定性方法;
(3)进而通过编写和调试代码解决问题,这是从抽 象问题到解决问题的完整过程

1.2.1 Python语言的发展

2000年10月,Python 2.0
2008年12月,Python 3.0
Python 起源于1989年末
Python语言创立者 Guido van Rossum

1.2.1 Python语言的发展

更高级别的3.x系列不兼容早期2.x系列。  

2008年至今,版本更迭带来大量库函数的升级替换,Python语言的版本更迭痛苦且漫长;
到今天,Python 3.x系列已经成为主流。

1.2.2 Python最小程序
使用Python语言编写的最小程序只有一行代码

 print(“Hello World”) 
 >>> print("Hello World")
 Hello World 

第一行的“>>>”是Python语言运行环境的提示符 第二行是Python语句的执行结果 

C语言的对应程序 
#include <stdio.h> 
int main(void) 
{ printf("Hello World\n");   
	return 0;
 }    

一般来说,同样功能的程序,Python语言实现的代码行数仅相当于C语言的1/5至1/10,
简洁程度取决于程序的复杂度和规模。
Python语言支持中文等非西文字符的直接使用,
带中文的Python最小程序在运行环境中的执行 效果如下:
>>> print(“人生苦短,Python当歌!”)
人生苦短,Python当歌!

1.2.3 Python语言的优缺点

(1) Python语言的优势
脚本语言 + 语句执行

例: print(“Hello World") 
例: sum = 99999 * 99999      
     print(sum) 

简洁 + 强制可读性

例:def mean(numbers):     
	s = 0.0     
	for num in numbers:         
		s = s + num     
	return s / len(numbers)
    nums = [0,1,2,3,4,5,6,7,8,9] 
    print(mean(nums)) 

跨平台 + 开源

http://pypi.python.org/ 

目前有93561个开源库,覆盖各类计算问题

例: from random import random rnd = random()*10 print(rnd) 

面向过程 + 面向对象

灵活介绍程序设计理念

图形界面

Windows窗口 在这里插入图片描述
玫瑰花

(2) Python语言的缺点

运行速度慢。  
代码不能加密。 
用缩进来区分语句关系的方式还是给很多初学者带来了困惑。

即便是很有经验的 Python程序员也可能陷入陷阱当中。
最常见的情况是tab和空格的混用会导致错误。

1.3 Python开发环境配置
备注(强烈建议使用Anaconda,sublime text3,PyCharm等。对此感兴趣可另找教程)
Python解释器
有两个重要的工具:
 Pip:Python第三方库安装工具,用来在当前计算机上安装第三方库。
 IDLE:Python集成开发环境,用来编写和调试Python代码;

1.3.2 Python程序的编辑方式

通过IDLE启动交互式Python运行环境Python Shell 输出数据。

打开IDLE,点击Ctrl+N或选择菜单命令打开一个IDLE提供的代码编辑器窗口,
它具备Python语法高 亮辅助功能,用来编写几百行以内的代码十分合适。
输入完成后保存成Python文件,扩展名为“.py”。

从“Run”菜单中选择“Run Module”菜单项或使用快捷键F5即可运行程序。

IDLE常用编辑功能

IDLE的快捷键
可以在特定界面下快速完成某些具体功能,相比用鼠标操作更快捷。
简单IDLE的快捷键如下:
Ctrl+N:在IDLE交互界面下,用来启动IDLE代码编辑器
Ctrl+Q:退出 Python Shell或IDLE代码编辑器
Alt+3:在IDLE代码编辑器内,注释选定区域文本
Alt+4:在IDLE代码编辑器内,解除注释选定区域文本
Alt+Q:在IDLE编辑器内,将 Python代码进行格式化布局
F5:在IDLE代码编辑器内,执行 Python程序

IDLE常用编辑功能
对于“Edit”菜单,常用的选项及解释如下所示:
undo:撤销上一次的修改
Redo:重复上一次的修改
Cut:将所选文本剪切至剪贴板
Copy:将所选文本复制到剪贴板
Paste:将剪贴板的文本粘贴到光标所在位置
Find:在窗口中查找单词或模式
Find in files:在指定的文件中查找单词或模式
Replace:替换单词或模式
Go to line:将光标定位到指定行首

IDLE常用编辑功能
对于“Format”菜单,常用的选项及解释如下所示:
Indent region:使所选内容右移一级,即增加缩进量。
Dedent region:使所选内容组左移一级,即减少缩进量。
Comment out region:将所选内容变成注释。
Uncomment region:去除所选内容每行前面的注释符。
New indent width:重新设定制表位缩进宽度,范围2~16, 宽度为2相当于1个空格。
Expand word:单词自动完成。
Toggle tabs:打开或关闭制表位。

在IDLE中调试程序
在Python Shell窗口中单击“Debug”菜单中的 “Debugger”菜单项,
就可以启动IDLE的交互式调试器。

并在“Python Shell” 窗口中输出“[DEBUG ON]”并后跟一个“>>>”提示符。
这样,我们就能像平时那样使用这个“Python Shell”窗 口了,只不过现在输入的任何命令都是允许在调试器下。
在“Debug Control”窗口查看局部变量和全局变量等有 关内容。

1.3.3 Python程序的运行方式
Python程序有两种运行方式:交互式和文件式。

交互式利用Python解释器即时响应用户输入的代码,给出输出结果。

启动IDLE所显示的环境是Python交互式运行环境,

在>>>提示符后输入代码即可运行,输入 exit()或者quit()可以退出,
没有>>>的行表示运行结果。

文件式将Python程序写在一个或多个文件中, 启动Python解释器批量执行文件中的代码。 通过Windows命令行(cmd.exe)运行Python程序。

在图形化操作系统中,可以通过鼠标点击文件图标 直接运行Python程序。

没有安装Python解释器的操作系统无法直接运行 Python程序,需要将Python源代码打包变成可执行文件,这个过程叫做“程序发布”。

Python程序员通常选用第三方集成开发环境(IDE,Integrated Development Environment)进行程序设计。
常用的IDE 有Notepad++,PyScripter,PyCharm, Eclipse with PyDev,Komodo,Wing IDE 等,它们通常具有一些自动代码完成、参数 提示、代码错误检查等功能。

1.4 程序的基本编写方法

1.4.1 理解问题的计算部分

 计算机程序只能解决计算问题,不能解决非计算问题,

因此分析并理解问题的计算部分是利用计算机解决问题的前提。对问题计算部分的不同理解将产生不同的求解方法,
也将产生不同功能和复杂度的程序。

理解问题的计算部分需要结合当代计算机发展水平和实际技术能力,

如何有效地利用计算机解决实际问题,不只是编写程序的问题,更重要的是思维问题。

1.4.2 IPO程序编写方法

程序统一的运算模式:

IPO方法

输入数据                     
处理数据                     
输出数据 

(1)输入数据
输入(Input)是一个程序的开始。
程序要处理的数据有多种来源,形成了多种输入方式,包括:
文件输入、网络输入、控制台 输入、交互界面输入、随机数据输入、内部 参数输入等。
(2)处理数据
处理(Process)是程序对输入数据进行计 算产生输出结果的过程。
计算问题的处理方法统 称为“算法”,它是程序最重要的组成部分。
可以说,算法是一个程序的灵魂。

(3)输出数据
输出(Output)是程序展示运算成果的方式。程序的输出方式包括:
控制台输出、图形输出、文件输出、网络输出、操作系统内部变量输出等。

是否存在没有输入输出的程序?
存在,

例如:无限循环,代码如下: 
 	  1  while(True):  
	  2     a=1 

无限循环程序有价值吗?
有价值,不间断执行快速消耗CPU的计算资源,辅助测试CPU或系统性能。

编写程序的目的是利用计算机解决问题,步骤如下:
( 1 ) 分析问题,分析问题的计算部分
( 2 ) 划分边界,划分问题的功能边界
( 3 ) 设计算法,设计问题的求解算法
( 4 ) 编写程序,编写问题的计算程序
( 5 ) 调试测试,调试和测试程序
( 6 ) 升级维护,适应问题的升级维护

本章所学程序

#累加
n=input('请输入正整数:')
sum = 0
for i in range(int(n)):
	sum += i+1
print('1到N的求和结果是:',sum)

#五星红旗
from turtle import *
color('red','red')
begin_fill()
for i in range(5):
	fd(200)
	rt(144)
end_fill()
done()

#圆面积的计算
#CalCircleArea.py
r = 25   #圆的半径
area = 3.1415 * r *r
print(area)
print("{:.2f}".format(area))		#只输出两位小数

#斐波那契数列的计算(0~1000)
#F(0) = 0 , F(1) = 1,
#F(n) = F(n-2)+F(n-1),其中n>=2
#CalFibonacci.py
a,b = 0,1
while a < 1000:  #输出不大于1000的序列
	print(a,end=',')
	a,b = b,a+b

#绘制七彩圆圈
#DrawSevenColorfulCircles.py
import turtle
colors = ['red','orange','yellow','green','indigo','purple']
for i in range(7):
	c = colors[i]
	turtle.color(c,c)
	turtle.begin_fill()
	turtle.rt(360/7)
	turtle.circle(50)
	turtle.end_fill()
turtle.done()

猜你喜欢

转载自blog.csdn.net/qq_41952762/article/details/102857016