Python学习(一)基础语法
一、学习网站
廖雪峰 Python入门 慕课网:点击打开
二、安装
1、python安装:
脚本解释型语言。
Windows下安装 www.python.org 下载 安装。
2、python注意:
跨平台运行(Windows Linux mac),2.7版和3.3版不兼容。
python对缩进要求很严格,首行不能有空格开头。
代码页最顶部要加一句 #coding=utf-8 确保能显示中文。
3、伴随一生
三个内置必须用熟练:type(),help(),dir()。
4、python2.x 和python3.x 版本区别
具体点击链接查看:点击阅读
三、基础知识
1、数据类型
a、整数
python 可以处理任意大小的整数,包括负整数,整数的表示方法和数学上的写法一样,如1,100,-800
等;
b、浮点数
即小数,整数运算永远是精确的,浮点数运算可能会有四舍五入的误差。
c、字符串
字符串以 ""
或 ""
包裹起来的任意文本, ""
或 ""
只是一种表示方式,不是字符串的一部分。
d、布尔值
只有True
和 False
,布尔值和布尔代数的表示一致,并且不而且可以通过布尔运算计算出来,如使用 and
、or
、和not
运算。and
运算和与运算,只有所有都为True
,and
运算的结果才是True
;or
运算是或运算,只要其中有一个为True
,or
运算结果就是True
;not
运算是非运算,他是一个单目运算,把True
变成False
,把False
变成True
;
e、空值
空值是python中一个特殊值,用None
表示,None
不能理解为0
,因为0
有意义,而None
是一个特殊的空值。
2、print语句
语法 : print "hello,world!"
注意 :
1、print输出多个字符串,要用逗号“,”隔开,连成一串输出。并且遇到逗号,
会输出成一个空格。
1 | print "hello","leo","cool~" |
3、注释语句
程序运行时,python解释器会直接忽略掉注释,所以注释不会影响程序的执行结果,只是会影响别人会不会看得懂你的代码。
a、单行注释
1 | # 这一行全是注释 |
b、多行注释
1 | def fun(): |
4、变量
变量的概念基本和初中代数的方程变量一致。
在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。必须是大小写英文、数字和下划线(_)的组合
,且不能用数字开头,如:
1 | a = 1 ; # a是一个整数 |
python中,等号=
是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同数据类型的变量,如:
1 | a = 123; # a是整数 |
这种变量本身类型不固定的语言称之为动态语言
,与之对应的是静态语言
。
静态语言
在定义变量时必须指定变量类型,如果赋值时类型不匹配,则报错。例如Java就是静态语言
,赋值语句如下(//表示注释)
1 | int a = 123; # a是整数类型变量 |
动态语言如:javascript
;
当我们写 a = "ABC"
时,Python解释器做了两件事:
第一,在内存中创建了 "ABC"
的字符串;
第二,在内存中创建了 a
的变量,并且指向 "ABC"
。
若把变量a赋值给变量b,则实际是把变量b指向变量a的数据,如下:
1 | a == "ABC"; |
5、定义字符串
如果本身包含 "
,则可以用 ""
包裹起来表示,反之也可以,如:
1 | "I"m leo!"; |
6、字符串和多行字符串
如果一个字符串含很多需要转义的字符,则每个转义会很麻烦,我们可以在字符串前面添加前缀 r
,表示这是一个 raw
字符串,里面字符不用转义了,如:
1 | r"\(~_~)/\(~_~)/" |
但是: r"..."
不能表示多行字符串,也不能表示包含 "
和 "
的字符串。
表示多行字符串可以使用 """..."""
表示:
1 | """Line1 |
还可以在多行字符串前面添加 r
,把多行字符串也变成一个 raw
字符串:
1 | r""" my name is "leo" |
7、Unicode字符串
由于计算机只能处理数字,如需处理文本,需要转换成数字才能处理。
ASCII编码:0-255
用来标识大小写英文字母、数字和一些符号。如:字母A
的编码是65
,小写字母z
的编码是122
。
GB2312编码:包含中文编码。
Unicode编码:把所有语言统一到一套编码,这样就不会在有乱码问题。通常采用两个字节表示一个字符,原因有的英文编码从单字节变成双字节,只需把高字节全部填为0
就可以。
在python中,以 Unicode
表示的字符串用 u"..."
表示,比如:
1 | print u"中文"; # 中文 |
注意,不加 u".."
中文就不能正常显示。
Unicode字符串只是多了个 u
,与普通字符串相同,转义字符和多行表示法仍然有效:
1 | u"中文\n日文\n韩文" # 转义 |
如果中文字符串在python环境下遇到 UnicodeDecodeError
,这是因为 .py
文件保存格式有问题,只需在第一样添加注释
1 | # -*- coding: utf-8 -*- |
目的是告诉python解释器采用 UTF-8编码
读取源代码。
8、整数和浮点数
支持对整数和浮点数直接四则混合运算,运算规则和数学一致。
基本运算:
1 | 1 + 2 + 3 # 6 |
整数和整数运算 浮点数和浮点数
1 | 1 + 2 # 整数 3 |
整数和浮点数
1 | 1 + 2.0 # 3.0 |
注意:整数和整数运算,结果只保留整数,如果需要取得精确值,则需要把其中一个数值变成浮点数。
按照“整数和浮点数混合运算的结果是浮点数”的法则
9、布尔类型
与运算
:只有两个都是True
,计算结果才是True
1 | True and True # ==> True |
或运算
:只要有一个是True
,计算结果就是True
1 | True or True # ==> True |
非运算
:把True
变成False
,把False
变成True
1 | not True # ==> False |
注意:python把
0
、空字符串 ""
和none
看成False
,其他数值和非空字符串看成true
1 | True and "a=T" # "a=T" |
这涉及到 and
和 or
运算的一条重要法则:短路计算。
1 | 1. 计算 a and b 时, |
所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。