一闪一闪亮晶晶,满天都是小星星,挂在天上放光明,好像许多小眼睛。不要问我为什么喜欢这首歌,我不会告诉你是因为有人用口琴吹给我听。
一、Python学习文档与资料
一般来说文档的资料总是最权威,最全面的,可是很少有人能认真的从头到尾把文档或者帮助手册看一遍,毕竟太枯燥了,就像java api 文档一样,正确的用法当然是把它当做一个工具书,想到用什么,就去查,当然最好还是能大概看一遍,这样心中有个印象找东西也方便。
最权威的当然是官方文档,地址在:https://docs.python.org/3/。推荐阅读英文的,但是如果真的想看中文的也是有地方的:http://python.usyiyi.cn/translate/python_352/index.html。如果想看书,那就推荐一本我觉得比较适合的书:《Python编程快速上手》,这本书真的很不错。
当然按照我博客的顺序阅读也是可以的,这也算是我学习过程。
二、Python基础知识
虽然学习东西应该一步一步来,但是很多知识到深了都会相互关联的,所以先从表象简单介绍下所有的知识点,然后依次深入,本篇只是概括。
2.1 全局函数(内置函数)
我喜欢叫它全局函数,因为可以在任何地方调用,从这个角度来看,Python和JavaScript还是有些相似的,都有一些全局的函数。Python也有很多直接使用方法,例如可以直接写print(1)来在控制台打印一个1。
2.2 基本数据类型
Python不像Java是强类型语言那样要在使用的时候就要确定变量类型,这点依然和js比较相似,Python数据类型分为,整型、浮点型、字符串、布尔型、对象。
2.2.1 整型
Python的整型和Java一样也有一样的运算。
1232,0,-10,0x22
像上面那样的都是整数,十六进制也是以0x开头。
2.2.2 浮点型
浮点型和js语言相似。
3.17,-12.9,2.3e10,6.2e-8
浮点型都是带小数的也支持科学计数法。
2.2.3 字符串
字符串也和js相似,可以用单引号或者双引号或者三引号(三个单引号或三个多引号)引起来。当然字符串本质上也是字符的不可变数组。
'hello',"yiwangzhibujian"
看个人习惯,单双引号都可以使用。
2.2.4 布尔型
Python的布尔型写法比较特殊,为True和False,首字母分别要大写,这一点感觉很奇怪,然后布尔型的与或非运算符则为,and、or、not
2.2.5 None值
这是一个不代表任何值的值
2.3 变量
不需要提前定义,也不需要指定类型。就是这么方便。当然变量名也是有要求的:
- 只能是一个词
- 只能包含字母数字和下划线
- 不能以数字开头
name='yiwangzhibujian' print('hello',name) ========控制台输出======== hello yiwangzhibujian
不用定义比js用起来还爽。
2.3 类和对象
Python中也是有类和对象的,熟悉Java的都了解,学习Java的大部分时间都是在学习类的使用方法。
2.3.1 list
列表就是java中的List,但是表示形式有点不一样,用中括号引起来的一系列元素:
[1,2,3,4,5] ['yiwangzhibujian','laizhezhikezhui',35]
基本方法也都和Java相似,后续会详细讲解。
2.3.2 tuple
不可变的list,使用一对小括号:
('hello','yiwangzhibujian')
操作和list一样,除了不能对其进行修改。
2.3.3 range
range是一个特殊的对象,简单来说就是一个数字序列,一般用来遍历,例如range(0,10)即代表0,1,2,3,4,5,6,7,8,9的序列,使用起来很方便。
2.3.4 set
不可重复的集合和Java的Set一个性质。除了使用构造方法以外,也可以使用大括号来表现:
{'hello','yiwangzhibujian'}
还有一种不可变的set叫做frozenset,就像list和tuple的关系一样,不再单独介绍。
2.3.5 dict
字典表就是Java中的Map,是键值对的集合,表现形式和json很像,都是大括号括起来的键值对:
{'name':'yiwangzhibujian','num':'3','sex':'no'}
使用方法依然和Map相似,后续会进行详细介绍。
2.3.6 其他对象
像IO、时间等对象会在后续进行学习,亦可以自己参考文档学习里面的基本用法。
2.4 控制流
说到控制流就要了解Python的一大特点,Python的作用域不是以两个大括号引起来,而是使用统一的缩进来表示,在要缩进的地方加上冒号表示一下,虽然觉得不适应,但是习惯就好。例如:
if True: print('true') else: print('false')
基本用法和Java一样,注意格式即可。
2.4.1 分支
分支是最常见的控制流,通过boolean型的表达式来判断程序的走向。
2.4.2 循环
熟悉while和for即可,同样支持continue和break,while和for的示例
2.5 函数或方法
使用def来定义,就像js使用function来定义一样,基本示例如下:
def my_add(x,y): return x+y
这个是很重要的知识点,后面也会进行详解。
2.6 作用域
作用域简单的分为全局作用域和局部作用域,基本使用规则和Java一样。
2.7 异常处理
Python也是有异常处理的,使用try和exception来实现。一个下面给出一个简单的示例,如果不进行异常捕获,异常会被抛出程序会停止运行:
print(1/0)
print(1/1) =======控制台输出======= Traceback (most recent call last): File "D:workspaceeclipse_neonpython-hellosrc est.py", line 7, in <module> 1/0 ZeroDivisionError: division by zero
如果进行捕获:
try: print(1/0) except ZeroDivisionError: print('除数不能为0') print(1/1) =========控制台输出========= 除数不能为0 1.0
使用的方法和Java一样,该捕获的就捕获,不该捕获的就抛出。
2.8 注释和缩进
所有以#开头的都会被当做注释,多行注释可以利用三引号来实现:
#这是一个注释 """ 这是多行注释 这是多行注释 """
写程序多用注释,不然一段时间后会忘记当初写这个是干嘛用的。
2.9 模块
为了方便组织不同功能的代码,都是用模块来组织,引用的地方也使用import来引入,例如:
import sys
简单介绍了下,基础知识只是为了了解这个语言的大概情况,以后会有详细说明的。