一. Python基础(1)--语法

1. 应用程序

1.1 什么是计算机(Computer)?

组成

①运算器 arithmetic unit;

※ Arithmetic unit and control unit are collectively called as CPU.

②控制器 control unit;

③存储器 memory unit;

·内部存储器 (内存) internal memory/internal storage; also called: main memory (主存)

·外部存储器 external memory/external storage: disk 磁盘: hard disk (硬盘), soft disk (软盘); CD-ROM(Compact Disc Read-Only Memory,只读光盘)

④输入设备 input unit/devices;

⑤输出设备 output unit /devices.

 

祖师爷

①Alan Turing 艾伦·图灵: father of computer science & father of artificial intelligence 计算机科学之父&人工智能之父

②Von Neumann 冯·诺依曼: father of the modern computer & father of Game Theory现代计算机之父&博弈论之父

 

1.2 什么是操作系统(Operating System)?

用于控制计算机硬件之间, 软件之间, 以及硬件和软件之间的数据交互(data exchange):

Windows

Linux (Unix-like)

    Macintosh (Unix-like)

 

1.3 什么是应用程序?(应用软件-application software)

软件包括:

应用软件和系统软件 software: application software & system software

 

应用软件的概念

A program that gives a computer instructions that provide the user with tools to accomplish a task

 

2. 介绍Python和编程语言

2.1 编程语言分类

① 根据语言被翻译的方式:

--编译型(compiling): C, C#, Java(也有Java是解释型语言的说法)

--解释性(interpreting): Python, PHP

② 根据执行效率:

--快: C语言→机器码

--慢: Python, Java, PHP, C#→字节码→机器码

③ 根据易学性, 易用性

--Python

--其它

 

※ 区别:

--编译型语言:整个程序在执行之前需要一个专门的编译过程,即把程序编译成为机器语言的文件;再次运行时不需要重新翻译,直接使用已经编译好的结果就行了。程序执行效率较高,依赖编译器,跨平台性较差。

--解释型语言:程序是在执行的时候才一句一句地翻译,因此,解释性语言的程序每执行一次就要翻译一次。程序执行效率较低,跨平台性较好。


实际上,解释型现在有更宽泛的定义,详见:https://en.wikipedia.org/wiki/Interpreter_(computing)

 

 

※ 知识补充

编程语言

低级语言和高级语言low-level language & high-level language

① 低级语言 low-level language: 机器语言(machine language) & assembly language 汇编语言

② 高级语言high-level language: C/C++, Java, Python


若一种程序语言不依赖于机器硬件,则称为高级语言 A programming language independent from hardware is a high-level language.

 

2.2编程语言处理程序

① 编译程序(编译器)→compiler

② 解释程序(解释器/直译器) →interpreter

 

※ 知识补充

● 语言之间的翻译形式 translation modes among languages:

① 汇编 assemble: convert assembly language into machine language

② 编译 compile: convert source language into assembly language or machine language. (一般指的就是翻译成机器语言)

③ 解释 interpret: convert source language into intermediate code, e.g., bytecode, statement by statement, and then machine language

 

● 机器码 & 字节码 & 汇编语言

和1组成的二进制序列,有时也被称为原生码(Native Code),是电脑的CPU可直接解读的数据, 是执行速度最快的代码。

②字节码(bytecode)是一种中间码,它比机器码更抽象,需要解释器转换成机器码。

③机器码和汇编语言之间是一一对应的关系, 汇编程序中存有汇编指令(助记符)和机器码(机器指令)之间一一对应关系的对照表, 例如机器码B8对应汇编语言的MOV AX.

 

● 汇编语言包括指令和伪指令(伪指令是为了编程方便,对部分指令做的封装)。Java或Python首先将源码编译(compile)为字节码(bytecode),这里的字节码就是上述的伪指令(Java的字节码保存在.class文件里; Python的字节码保存在.pyc文件里);然后JVM或PVM会一句一句(statement by statement)地来解释(interpret)这些伪指令,把它们翻译成相应的二进制的机器码(machine code)来执行。

注意:

①实际上很多解释器(如python.exe)内部是以"编译器+虚拟机"的方式来实现的。

②Java通过"Java Compiler"实现源码到字节码的转换,Python通过Cpython来实现源码到字节码的转换。

③Python在 import 别的 .py 文件时,那个. py 文件会被保存一份 pyc , 从而加速下次装载; 而主文件因为只需要装载一次就没有自动保存 pyc, 而运行Java程序时, 必须首先将源码编译成.class文件(通过javac命令)才可执行,这种编译方法称为"即时编译(Just-in-time compilation)"。

 

● Python 虚拟机(PVM):
一旦python程序编译成字节码或者字节码从已经存在的pyc 文件中载入,字节码会被发送到Python虚拟机(Python Virtual Machine)中来执行。PVM 就是迭代运行字节码指令的一个大循环,一个接一个地完成操作。
这步操作也就是Python 解释器的最后步骤。

 

※ Python 代码的运行速度介于传统的编译语言和传统的解释语言之间。

 

 

2.3 Python的种类

cpython,jpython,ironpython,rubypython,pypy ....


用c语言开发的叫做CPython,用java开发的叫做Jpython…一般我们用的是CPython

※ pypy是用python实现的python; pypy不会将脚本编译成字节码,而是用JIT(Just-In-Time, 和Java的编译技术一样)技术编译成机器码,在执行过程中会动态的优化。


为什么Pypy没有取代CPython?

第一点,就像其他人提到的,PyPy有很弱的C 语言扩展性。它支持C语言扩展,但是比Python本身的速度还慢。因此,很多模块本身就要求使用CPython.。

 

CPython 上的Numpy的数据处理性非常好,满足了那些既要求速度又大量使用Pandas, SciPy等数据分析任务的库的人。

 

所以,Pypy 要么不支持或者很弱支持C语言扩展,要么减慢了那些数据处理的速度。完全无法比拟既可以满足速度要求又简单易用的CPyhon。

 

第二点,Python 3的支持在现阶段还是实验期。那些使用最新版本的Python新功能的人,现在应该还不愿意扔掉那些还在新鲜期的新奇功能。

 

第三点,PyPy 并不是真正的脚本快,而大多数使用Python 的人就是在用脚本。这些脚本就是一些简短的程序。 PyPy 的最大优点是它针对长时间运行的简单数字处理的即时 (JIT) 编译器。直白地说, PyPy的先编译处理时间比CPython长的多。

 

第四点,惰性。转移到PyPy需要重新装备机器。这对很多用户或者使用机构来说,都是太多的额外工作了。

 

 

2.4 Python的版本

--Python2.7    

--Python3.x

 

2.5 Python不同版本的安装/环境变量的设置/在cmd命令行程序下执行python脚本


注意我们可以指定绝对路径来指定不同版本的Python解释器.


在设置环境变量时, 系统变量之一的Path变量中的"%JAVA_HOME%\bin"中的"%JAVA_HOME%"指的是另一个系统变量JAVA_HOME的路径, 例如: "C:\Program Files (x86)\Java\jdk1.6.0_25"

 

2.6 Python基本语法

①输出: print()函数

注意: Python2基于ASCII编码, 而Python3基于UTF-8编码

 

②输入: input()函数

name = input("Please input your name:")

print(name)

 

注意: 在Python2下, 对于 input() ,它希望能够读取一个合法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 SyntaxError 。

不过, 如果用raw_input()函数就没有这个限制了.

 

③变量(variable)

基础: 变量名 = 值

变量名命名规则:

--只能包含字母, 数字, 下划线

--变量名开头不能是数字

--不能是Python的关键字: 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield'

--见名知义

--尽量不要使用python中已经使用的

 

④初识数据类型(data type)

整数类型(integer)

字符串类型(string)

布尔类型(Boolean)

 

⑤条件语句(conditional statement)

形式一:

if condition:

    statement

else:

    statement

形式二:

if condition1:

    statement1

elif condition2:

    statement2

elif condition3:

    statement3

else:

    statement4

 

⑥循环语句(loop statement)

形式一:

while condition:

    statement

 

形式二:

while condition:

    statement1

else:

    statement2

 

※ break, continue, pass

--break 的作用是结束整个循环(跳出循环体),执行后面的程序。

--continue 的作用是结束此次循环,进行下一次循环;

--pass表示不做任何事情,一般用做占位语句。

 

※ 不要忘记给while true限定终止循环的条件,例如:

# 依次打印1,2,3,4,5,6,8,9(三种实现方式)

start = 1

while start < 11:

    if start == 7:

        pass

    else:

        print(start)

    start += 1 # 该语句一定要与if...else语句并列

 

print("=============================")

 

value = 1

while value < 11:

    if value == 7:

        value += 1 # 一定不要缺少这一句,
否则程序会无法终止

        continue

    else:

        print(value)

    value += 1

    

print("=============================")

 

begin = 0

while True:

    begin += 1

    if begin <= 10:

        if begin != 7:

            print(begin)

    else:

        break # 一定要设置这个终止循环的条件

 

3. 知识补充

3.1 在Python shell中清屏

import os     #加载os模块

os.system("cls") # windows上执行cls命令

os.system("clear") # linux上执行clear命令

 

3.2 两种ASCII码

ASCII码分别"7位版"和"8位版", 前者的码点(code point)范围是0-127, 后者的码点范围是128-255.

 

3.3 python源程序的编码

# -*- coding:utf-8 -*-

# coding:utf-8

# coding=utf-8

更简单的写法: # encoding: utf-8

# Python解释器默认源码采用ASCII编码。

# 上面的注释告诉Python解释器:该源码采用utf-8编码。

# 注意, 保存源码文件时也必须采用utf-8编码, 否则报错.

一. Python基础(1)--语法的更多相关文章

  1. 六. Python基础(6)--语法

    六. Python基础(6)--语法 1 ● Python3中, Unicode转字节的方法 print(bytes("李泉", encoding = 'utf-8')) prin ...

  2. 五. Python基础(5)--语法

    五. Python基础(5)--语法 1 ● break结束的是它所在的循环体, continue是让它所在的循环体继续循环 # 打印: 1 10 2 10 3 10 4 10 5 10 6 10 7 ...

  3. 四. Python基础(4)--语法

    四. Python基础(4)--语法 1 ● 比较几种实现循环的代码 i = 1 sum = 0 while i <= 10: # 循环10-1+1=10次     sum += i     i ...

  4. 三. Python基础(3)--语法

    三. Python基础(3)--语法 1. 字符串格式化的知识补充 tpl = "我是%s,年龄%d,学习进度100%" %('Arroz',18) print(tpl) # 会提 ...

  5. 二. Python基础(2)--语法

    二. Python基础(2)--语法 1.实现一个简单的登录系统 '''# 形式1 n = 1 while n < 4:     name = input("请输入姓名\n" ...

  6. Python基础:语法基础(3)

    本篇主要介绍Python中一些基础语法,其中包括:标识符.关键字.常量.变量.表达式.语句.注释.模块和包等内容. 1. 标识符和关键字 1.1 标识符 标识符是变量.常量.函数.属性.类.模块和包等 ...

  7. Python基础__Python语法基础、条件、循环

    之前主要讨论的是Python的对象,这本节将第一次走进Python的语言之旅,将会介绍条件与循环.本节我们将会涉及到复合语句,简要介绍一下Python的语法规则是有必要的Python语法规则 1.语句 ...

  8. Python基础系列----语法、数据类型、变量、编码

    1.基本语法                                                                                        Python ...

  9. [Python基础]003.语法(2)

    语法(2) 运算符 数学运算 比较运算 逻辑运算 位运算 赋值运算 其他运算 代码规范 代码缩进 多行 注释 流程控制 pass if while for break continue 运算符 数学运 ...

随机推荐

  1. 生成pyd文件时提示“Unable to find vcvarsall.bat”的问题

    本文内容 Unable to find vcvarsall.bat的问题描述 问题分析 总结 一.问题描述 我们在windows下通过pip安装一些外部Python 模块(比如,pycrypto)时通 ...

  2. Arduino 开关控制小灯持续亮之具体思路

    Arduino 开关控制小灯持续亮之具体思路 为什么写这篇文章: 我们用开关控制灯的亮灭的时候,希望只需要按一下按键就可以做到灯一直亮着.而在<Arduino魔法书>中——有弹性的按键这一 ...

  3. C语言流控制命令的总结

    C语言流控制命令的总结 基本概念: C语言中,自顶向下的的代码的流程叫做程序流. 能够改变程序流顺序的语句叫做流控制命令. 我为什么要写这篇文章 在学习C语言的过程中,经常会用到条件语句和循环语句这些 ...

  4. C#复习题(概念) --C#学习笔记

    第一章 1.公共语言架构(CLI)由哪几部分组成? (1)通用类型系统:定义了一套类型系统的框架,规定了数据类型的声明.使用和管理方法. (2)公共语言规范:一组语言规则的集合 (3)通用中间语言:一 ...

  5. 一款好用的取色工具TakeColor

    简介:TakeColor,一款还算好用的取色软件,一个很小很简洁的exe文件,无需安装 使用:打开exe文件后,使用“Alt + C” 组合键即可在鼠标悬停的位置上获取到颜色值,可以获取HTML.RG ...

  6. LeetCode--374--猜数字大小

    问题描述: 我们正在玩一个猜数字游戏. 游戏规则如下: 我从 1 到 n 选择一个数字. 你需要猜我选择了哪个数字. 每次你猜错了,我会告诉你这个数字是大了还是小了. 你调用一个预先定义好的接口 gu ...

  7. Nginx安装与使用 及在redhat 中的简单安装方式

    首先说下在redhat中的安装方法, 正常安装nginx 需要安装很多的依赖,最后再安装nginx,而且很容易出错. 在nginx官方上有这么一段描述: Pre-Built Packages for ...

  8. win10+cpu+tensorflow+pycharm

    1.安装64位的python3.5 选择windowsx86-64 executable installer安装 2.安装tensorflow cmd->进入到安装python的Scripts文 ...

  9. Symmetric Tree leetcode java

    问题描述: Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). ...

  10. day32 通道 数据共享 进程池

    1.管道 格式: conn1,conn2 = Pipe() 管道的两端可以进行全双工通信   如图 进程2创建了管道,它就拥有管道两端的信息,每个端点都能收发信息,它把端点信息传给进程1和进程3 ,它 ...