基础知识

了解计算机硬件

CPU

  • 多核,核心频率(X86、Arm)

内存

  • 数据,载入内存可以修改
  • 指令,载入内存可以跳转

GPU

  • 深度学习训练数据
  • 大型游戏

存储

  • U盘

  • 硬盘(固态、非固态)

  • 光盘

输入输出设备

  • 输入设备(鼠标、键盘)
  • 输出设备(摄像头、显示器、打印机)

通信设备

  • 网卡(无线网卡、有线网卡、蓝牙)

了解计算机软件

系统软件

  • Android
  • iOS
  • Windows
  • Linux
  • Unix
  • MacOS

应用软件

  • QQ
  • weixin
  • office

编程语言编年史

机器语言与汇编语言

  • 适合导弹控制

快速开发,C语言

  • 编译
  • 运行

解释性语言

  • java
  • python
  • 解释并运行

语音类型

  • 100000 000001 000001 机器语言
  • ADD 1 2 汇编语言
  • 1+1 高级语言
  • 解释器(编译,执行)
  • .c 编译 exe 执行

学习方法

  • 用到才能记忆深刻
  • 大量练习写代码
  • 养成良好的精确思维方式
  • 结网,不断练习

代码编程

理解什么是IDE

  • VScode
  • pycharm
  • subtext

理解python-helloworld

  • “”用于单行字符串
  • ''''''用于多行字符串

python简单数学表达式

  • +、-、*、/、()
print(1)
print(1+2)
print(3-2)
print(3*2)  
print((1+2)/3)
print("15/4")#字符串 print(15/4)#除法结果精确,算数表达式

理解注释

  • 单行注释#
  • 多行注释用''''''

理解系统自带模块

os主要用于操作系统

import os  #导入,操作系统
os.system("calc")
os.system("taskkill /f  /im  feiQ.exe")
os.system("ipconfig") #执行系统指令

turtle用于绘图

import  turtle
turtle.color("blue")#颜色
turtle.circle(100)#绘制圆形
turtle.penup()#笔抬起
turtle.goto(-200,0)#移动到位置
turtle.pendown()#笔放下
turtle.color("red")#颜色
turtle.circle(100)#半径100
turtle.done()#程序继续执行

常见代码错误

逻辑错误

  • python严格区分大小写
  • print(5//2) #/ 精确除法, //整除

语法错误

  • python代码需要严格对齐
  • print("hello world) #SyntaxError 语法错误,少写双引号

运行错误

  • print(5/0) #ZeroDivisionError: division by zero 运行错误

输入错误

  • python不接受中文字符输入

python软件工程规范

以动手实践为荣 , 以只看不练为耻;
以打印日志为荣 , 以单步跟踪为耻;
以空格缩进为荣 , 以制表缩进为耻;
以单元测试为荣 , 以人工测试为耻;
以模块复用为荣 , 以复制粘贴为耻;
以多态应用为荣 , 以分支判断为耻;
以Pythonic为荣 , 以冗余拖沓为耻;
以总结分享为荣 , 以跪求其解为耻。

python程序运行方式

交互式执行
脚本运行

  • python3代码文件编码必须是UTF-8

python相关常识

python发展史

Python2.x->python3.x->诞生于1989

python成功案例

Python经常被用于Web开发。 比如,通过mod_wsgi模块,Apache可以运行用Python编写的Web程序。Python定义 了WSGI标准应用接口来协调Http服务器与基于Python的Web程序之间的通信。

一些Web框架,如Django、TurboGears、web2py、Zope等,可以让程序员轻松地开发和管理复杂的Web程序。

在很多操作系统里,Python是标准的系统组件。 大多数Linux发行版以及NetBSDOpenBSDMac OS X都集成了Python,可以在终端下直接运行Python。有一些Linux发行版的安装器使用Python语言编写,比如UbuntuUbiquity安装器,Red Hat LinuxFedoraAnaconda安装器。Gentoo Linux使用Python来编写它的Portag e包管理系统。Python标准库包含了多个调用操作系统功能的库。通过pywin32这个第三方软件包,Python能够访问WindowsCOM服务及其它Windows API。使用IronPythonPython程序能够直接调用.Net Framework。一般说来,Python编写的系统管理脚本在可读性、性能、代码重用度、扩展性几方面都优于普通的shell脚本。

NumPy、SciPy、Matplotlib可以让Python程序员编写科学计算程序。

PyQt、PySide、wxPython、PyGTKPython快速开发桌面应用程序的利器。

Python对于各种网络协议的支持很完善,因此经常被用于编写服务器软件、网络爬虫。第三方库Twisted支持异步网络编程和多数标准的网络协议(包含客户端和服务器),并且提供了多种工具,被广泛用于编写高性能的服务器软件。

很多游戏使用C++编写图形显示等高性能模块,而使用Python或者Lua编写游戏的逻辑、服务器。相较于PythonLua的功能更简单、体积更小;而Python则支持更多的特性和数据类型。 YouTube、Google、Yahoo!、NASA都在内部大量地使用PythonOLPC的操作系统Sugar项目的大多数软件都是使用Python编写。

python优点与缺点

优点

  • 简单:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。
  • 易学:就如同你即将看到的一样,Python极其容易上手。前面已经提到了,Python有极其简单的语法。
  • 免费、开源:Python是FLOSS(自由/开放源码软件)之一。简单地说,你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。这是为什么Python如此优秀的原因之一——它是由一群希望看到一个更加优秀的Python的人创造并经常改进着的。
  • 高层语言:当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
  • 可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就可以在下述任何平台上面运行。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有PocketPC、Symbian以及Google基于linux开发的Android平台!
  • 解释性:这一点需要一些解释。一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。当你运行你的程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。事实上,由于你不再需要担心如何编译程序,如何确保连接转载正确的库等等,所有这一切使得使用Python更加简单。由于你只需要把你的Python程序拷贝到另外一台计算机上,它就可以工作了,这也使得你的Python程序更加易于移植。
  • 面向对象:Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。
  • 可扩展性:如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
  • 可嵌入性:你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
  • 丰富的库:Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可用的。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。
  • 概括:Python确实是一种十分精彩又强大的语言。它合理地结合了高性能与使得编写程序简单有趣的特色。
  • 规范的代码:Python采用强制缩进的方式使得代码具有极佳的可读性。

缺点

  • 运行速度,有速度要求的话,用C++改写关键部分吧。
  • 中文资料匮乏(好的python中文资料屈指可数)。
  • 托社区的福,有几本优秀的教材已经被翻译了,但入门级教材多,高级内容还是只能看英语版。
  • 构架选择太多(没有像C#这样的官方.net构架,也没有像ruby由于历史较短,构架开发的相对集中。RubyonRails构架开发中小型web程序天下无敌)。不过这也从另一个侧面说明,python比较优秀,吸引的人才多,项目也多。