---恢复内容开始---
Python学习之路基础篇(一)
本节内容
- Python简介
- 变量
- 运算符
- Python第一程序 hello worl
- if语句
- wher循环以及continue和break
- for循环
- 字符编码
一 Python简介
Python的作者,Guido von Rossum,荷兰人。1982年,Guido从阿姆斯特丹大学获得了数学和计算机硕士学位。1989年,他创立了Python语言。
1 目前Python主要应用领域:
- 云计算: 云计算最火的语言, 典型应用OpenStack
- WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
- 科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas
- 系统运维: 运维人员必备语言
- 金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测
- 图形GUI: PyQT, WxPython,TkInter
2 Python在一些公司的应用:
- 谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬虫、Google广告等项目都在大量使用Python开发
- CIA: 美国中情局网站就是用Python开发的
- NASA: 美国航天局(NASA)大量使用Python进行数据分析和运算
- YouTube:世界上最大的视频网站YouTube就是用Python开发的
- Dropbox:美国最大的在线云存储网站,全部用Python实现,每天网站处理10亿个文件的上传和下载
- Instagram:美国最大的图片分享社交网站,每天超过3千万张照片被分享,全部用python开发
- Facebook:大量的基础库均通过Python实现的
- Redhat: 世界上最流行的Linux发行版本中的yum包管理工具就是用python开发的
- 豆瓣: 公司几乎所有的业务均是通过Python开发的
- 知乎: 国内最大的问答社区,通过Python开发(国外Quora)
- 春雨医生:国内知名的在线医疗网站是用Python开发的
3 Python是一种什么样的语言
Python是一种面向对象解释型动态类高级计算机编程语言,他具有开发效率高,语法简洁可移植性高的特点。所谓解释型是指代码在运行时无需提前进行编译成二进制格式而是依赖于解释器对代码一行一行进行解析,这样的好处是代码的可移植性高并且修改方便,但缺点是相比较编译型语言它的运行速度会比较慢。动态类语言是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构。
二 变量
变量是在内存空间中存储一段可变的数据,以方便在程序中需要的地方进行调用。表现形式为VARIABLE = VALUE. 变量的命名相当于是在数据存储在内存空间的一个门牌号,在Python中,只有当所有的门牌号全部被删除时才会将内存空间回收。
变量的命名规则:
- 不能与数字开头
- 不能保护特殊字符与空格
- 变量的命名要见名知意
- 保留的字符不能被使用
name = "张三" 赋值给name name2 = name 将name值赋给name2 name = "李四" 再给name重新赋一个值 print(name,name2) 此时输出的应该为“李四”,“张三”,因为name和name2只是相当指向同一内存空间的门牌号,name2不会因为name的变化而变化
三 Python中的算术运算符
1 布尔逻辑运算
布尔逻辑运算测试条件为“真”还是为“假”,计算机中1代表真,0代表假。
AND运算表示前后两个条件都为“真”运算结果才为“True”
OR运算表示两个条件中如果有一个为“真”即为“True”,如果第一个条件位置就会忽略后面的计算结果
NOT运算取反,条件为真即为“False”,条件为假即为“True”
2 算术运算
a=10 b=20
+ 加法运算 a+b=30
- 减法运算 a-b=-10
* 乘法运算 a*b= 200
/ 除法运算 b/a= 2
% 取模运算 10%5=0 10%3=1 20%7=6
** 幂运算 2**8 256
// 取整除 9//2得 4
运算符
= 将右边值赋给左边 c=a+b c=30
+= 自加运算 c+=a 相当 c=c+a
-= 自减运算 c-=a 相当 c=c-a
*= 自乘运算 c*=a 相当 c=c*a
3 按位运算(二进制运算)
运算符 & 与运算 两个二进制必须都为真 | 或运算 两个二进制有一个为真即为真 ^ 亦或运算 两组二进制数据不相同为真 << 左移运算 左移运算,将a整体向左移2位 >> 右移运算 右移运算,将a整体向右移2位
四 Python hello world 程序
Python中的语法时分简介,只需调用print()函数打印“hello world” 即可
五 if-esle 语句基本语法
if-else语句可分为单分支,双分支语句以及多分支语句。
标准的单分支if语句语法如下:
if expression :
代码分支
else:
代码分支
当if后面的表达式的值非0或者布尔值为True时便会执行下面的代码,如果条件不满足则执行else下面的代码
1 一个if-else猜数字的示例
3 My_age = '30' 4 guess = input("Guess my age:") 5 if guess == My_age: 6 print("your guess is right") 7 elif guess > My_age: 8 print("Too big,think smaller") 9 else: 10 print('Too small. think bigger')
六 while循环语句
1 while语句与if语句相同,后面也需要跟一个表达式进行判断,如果条件满足会一只循环里面的代码,直到无法满足条件后使用break退出
while expression:
执行代码


通过while循环打印九九乘法表 j = 0 while j <= 9: i = 1 while i <= j: print(i,'*',j,'=',i*j,end=' ''\t') i+=1 print(' ') j+=1
2 continue的用法
continue:在while语句的循环体中如果想提前本轮循环可使用continue语句,可以实现跳出本轮循环直接进入到下一轮循环。
1 使用示例: 2 当i小于10时进入循环,判断如果i=5 就进入下一轮循环,所以输出数字:1 2 3 4 6 7 9 10,没有5 3 4 i = 0 5 while i <10 : 6 i += 1 7 if i == 5: 8 continue 9 print(i)
3 break的用法
与continue不同,使用break后不会再进入下一轮循环,而是退出该循环体
1 i = 0 2 while i <10: 3 if i == 5: #当i的值为5是就会执行break。因此输出为0 1 2 3 4 4 break 5 print(i) 6 i+=1
七 字符编码
1 什么是字符编码
在计算中所能识别仅仅只有二进制(0|1),为了能够让人类的语言被计算机所理解,因此字符编码就是将字符对二进制进行映射。
2 字符编码类型
(1) ASCLL编码:ASCLL又称为美国(国家)信息交换标准(代)码,一种使用7个或8个二进制位进行编码的方案,最多可以给256个字符ASCII(包括字母、数字、标点符号、控制字符及其他符号)分配(或指定)数值。
(2)gb2312:由于ASCLL最多只有8位主要用来标识英文字母的因此无法支持中文字符,为了能够让计算机支持汉语中国国家标准总局1980年发布gb2312,基本集共收入汉字6763个和非汉字图形字符682个。
(3)GBK:GBK仅仅只是将原来gb2312支持的汉字提升至了2万字,后续有出现了GB18030可支持2万7个汉字
(4)Unicode:Unicode又被称为万国码,为了解决不同国家的文字,Unicode为每种语言中的每个字符设定了统一并且唯一的二进制编码。一个字符占4byte。
(5)UTF-8:UTF-8仅仅这是Unicode的一个扩展集,由于Unicode每个字符都要占4bytes,因此UTF-8中规定如果字符是英文还是按照ASCLL码一个字符1byte,如果字符是中文则占3bytes
注意:在Python3中默认编码是Unicode,在Python2中使用编码是ASCLL,如果让Python2支持中文还需声明“#-*- coding:utf-8 -*-”
3 Python字符编码和解码
1 python2 示例
(1)Pyehon2 中默认的编码为ascll,需要先声明为utf-8“# _*_ coding:utf-8 _*_”
(2)如果转为GBK要先将utf-8 decode位Unicode
(3)再将Unicode encode为GBK
(4)Python2中字符str类型==bytes类型 字符串类型为Unicode
注意:utf-8无法在Windows终端正常显示,另外在Python2中以GBK UTF-8...编码的代码加载到内存并不会转为Unicode
1 #!/bin/env python 2 # _*_ coding:utf-8 _*_ 3 s = "你好,我是python" 4 print(s) 6 ascll_to_uncode=s.decode("utf-8") #先通过解码将unf-8转换为Unicode 8 uncode_gbk=ascll_to_uncode.encode("gbk") #将unico转为GBK 9 print(uncode_gbk)
2 Python3
在Python3中字符的数据类型做了明显区分,str就等于是Unicode。 可以通过encode方法可以转换bytes类型(也是‘utf8’, ‘gbk’’等等)
s = '路飞' s_to_gbk = s.encode('gbk') # 将字符串转为gbk print(s_to_gbk) b'\xc2\xb7\xb7\xc9' s_to_utf8 = s_to_gbk.decode('gbk').encode('utf8') # 转为UTF8需要先解码为Unicode后再编码为utf8 print(s_to_utf8) b'\xe8\xb7\xaf\xe9\xa3\x9e'
常见的编码问题
1 Python解释器的默认编码
2 Python源文件文件编码
3 Terminal使用的编码
4 操作系统的语言设置