python入门
一、基础概念
python的特点:优雅、明确、简单。
python适合的领域:web网站和各种网络服务
系统工具和脚本
作为“胶水”语言把其他语言开发的模块包装起来方便使用
python不适合的领域:贴近硬件的代码(首选C)
移动开发:iOS/Android有各自的开发语言(ObjC,Swift/Java)
游戏开发:C/C++
python和其他语言对比:
类型 | 运行速度 | 代码量 | |
C | 编译为机器码 | 非常快 | 非常多 |
Java | 编译为字节码 | 快 | 多 |
Python | 解释执行 | 慢 | 少 |
python源码不能加密。
python是一个可以跨多个平台(如mac、windows、linux)的语言。
二、下载安装
去python官网https://www.python.org/,下载windows的Python2.7.15版本。2.7版和3.7版不兼容,但本次学习以2.7版本为例,但Python 2.7将于2020年1月1日终止支持。
下载好,安装完,并在系统变量中配置python的环境变量(不过本人在实际使用中未配置环境变量的情况下也能在命令提示符中直接使用python)。
三、运行python
1、直接在命令提示符中使用。
打开命令提示符,输入python,即可输入命令行直接使用。如:print ‘hello,world’ 回车后显示hello,world。
2、在Notepad等代码编辑器中进行编辑,文件保存为.py结尾的格式。
打开命令提示符;
切换到相应的盘(如D:);
查看D盘文件夹下的目录(dir);
切换到存放python文件的目录(cd \python);
输入以.py结尾的文件名即可运行该文件。
(在Notepad中设置“语言”为Python,可以在代码显示的时候将代码高亮。)
四、变量和数据类型
1、整数
python可以处理任意大小的整数,当然包括负整数。
计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例:0xff00。
2、浮点数
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的。
整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差。
3、字符串
字符串是以''
或""
括起来的任意文本。
4、布尔值
在Python中,直接用True
、False
表示布尔值(请注意大小写),也可以通过布尔运算计算出来。
布尔值可以用and(与)
、or(或)
、not(非)
运算。
5、空值
空值是Python里一个特殊的值,用None
表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
此外,Python还提供了列表、字典等多种数据类型,还允许创建自定义数据类型。
6、输出—print语句
1)print ‘要显示的内容’;
2)print后面跟上多个字符串,用逗号“,”隔开,print会依次打印每个字符串,遇到逗号“,”会输出一个空格;
3)print后面直接加上数学运算,如print 100+300或print '100 + 300 =',100+300。
7、python的注释
以 #
开头,后面的文字直到行尾都算注释。
8、变量
变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。
1)Java是静态语言,赋值语句如下(// 表示注释):
int a = 123; // a是整数类型变量 a = "mooc"; // 错误:不能把字符串赋给整型变量
2)python中的变量是动态的,比较灵活。
变量是用一个变量名表示,变量名必须是大小写英文、数字和下划线(_)的组合,且不能用数字开头,比如: a = 1 变量a
是一个整数。
等号=
是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量。
理解变量在计算机内存中的表示也非常重要。当我们写:a = 'ABC'
时,Python解释器干了两件事情:
1. 在内存中创建了一个'ABC'
的字符串;
2. 在内存中创建了一个名为a
的变量,并把它指向'ABC'
。
也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据,例如下面的代码:
a = 'ABC' b = a a = 'XYZ' print b
9、字符串
字符串是用''
或者""
括起来表示
字符串本身包含'
时,可以用" "
括起来表示:"I'm OK"
字符串包含"
,就可以用' '
括起来表示:'Learn "Python" in imooc'
字符串既包含'
又包含"
时,就需要对字符串的某些特殊字符用\
进行“转义”。如:要表示字符串 Bob said "I'm OK".可写为:
'Bob said \"I\'m OK\".'
常用的转义字符还有:
\n 表示换行 \t 表示一个制表符 \\ 表示 \ 字符本身
10、raw字符串与多行字符串
单行字符串:‘this is a single line’或”this is a single line“
多行字符串 '''Line 1
Line 2
Line 3'''
在字符串前面加个前缀r
,表示这是一个 raw 字符串,里面的字符就不需要转义了。
11、unicode字符串
Unicode把所有语言都统一到一套编码里,通常用两个字节表示一个字符。
如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释:
# -*- coding: utf-8 -*-
目的是告诉Python解释器,用UTF-8编码读取源代码。然后用Notepad++ 另存为... 并选择UTF-8格式保存。
12、运算
Python支持对整数和浮点数直接进行四则混合运算,运算规则和数学上的四则运算规则完全一致。
使用括号可以提升优先级,注意只能使用小括号,但是括号可以嵌套很多层。
1)整数运算结果仍然是整数;1 + 2 # ==> 整数 3
2)整数除法除不尽的时候,结果是整数,余数直接扔掉;11 / 4 # ==> 2
3)整数取余%;11 % 4 # ==> 3
4)浮点数运算结果仍然是浮点数;1.0 + 2.0 # ==> 浮点数 3.0
5)整数和浮点数混合运算的结果就变成浮点数;
1 + 2.0 # ==> 浮点数 3.0
11.0 / 4 # ==> 2.75
6)布尔运算
与运算:只有两个布尔值都为 True 时,计算结果才为 True。
或运算:只要有一个布尔值为 True,计算结果就是 True。
非运算:把True变为False,或者把False变为True:
在Python中,布尔类型还可以与其他数据类型做 and、or和not运算,请看下面的代码:
a = True print a and 'a=T' or 'a=F'
计算结果不是布尔类型,而是字符串 'a=T',这是因为Python把0
、空字符串''
和None
看成 False,其他数值和非空字符串都看成 True。
要解释上述结果,又涉及到 and 和 or 运算的一条重要法则:短路计算。
1. 在计算 a and b
时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。
2. 在计算 a or b
时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。
所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。
注:python对缩进要求严格,故首行不能有空格。