关于版本的选择
按照网上的说法,如果python是为了在工作中使用,选择2.7版本的。这里我选择2.7.9版本的来进行学习;
Python是什么?
是一种高级的计算机程序设计语言。应用范围比较广,google等名企都在使用。
Python 英文的意思是 巨蟒,脚本;
缺点:
1,执行速度慢,因为是高级语言,翻译成机器语言的成本限制,似得速度相对其它语言来说慢;
2,无法对代码加密,因为是解释性的语言;
安装python
系统类型 | 安装方法 | 说明 |
MaxOS | Osx 10.8以上自带python | |
Linux | 基本软件的安装方法 | |
Windows | 设置到path中 |
Python的解释器
解释器版本 | 说明 |
cpython | 官方的解释器,c语言编写,命令行下运行的python就是这本 |
ipython | 交互式的解释器,基于cpython,在交互式上有提升 |
pypy | 关注执行速度,基于jit技术 |
jython | 运行在java平台的python解释器 |
ironpython | Dotnet平台的python解释器 |
使用最广泛的是cpython,如果要和java和dotnet平台交互使用网络调用来交互比较好。
第一个python程序
打开命令行,输入python,进入了cpython的解释器;
命令 | 说明 |
100+200 | 简单计算 |
print ‘hello,world’ | 输出字符串 |
exit() | 退出python解释器 |
也可以使用文本编辑器,推荐使用notepad++,注意编码类型保存为utf-8无BOM格式;
print ‘hello, python’; a=100+200 print a ; exit() |
运行命令:
python hello.py |
运行效果:
输入和输出
输出方法 print ‘字符串’,使用逗号隔开多个字符串 ,逗号相当于一个空格;
输入:raw_input(‘输入提示文字’);得到的是字符串;
Python基础
Python采用缩进方式,#开头的语句数注释;当语句以冒号结尾:,缩进的语句为代码块;对大小写敏感;
数据类型
Python可以直接处理的数据类型有一下集中
类型 | 说明 | |
整型 | 任意大小的,正负的 | 分为十进制和十六进制ox |
浮点数 | 含有小数 | 可以采用科学计数法 |
字符串 | 使用”或者””括起来的任意字符 | 使用\来标识转义字符 多行可以使用”’…”’来标识 |
布尔值 | 指游True,False两种值 | 可以进行布尔运算,and,or,not |
Patyon还提供列表,字典等多种数据类型,还支持自定义的数据类型 | ||
空值 | None标识,不能表示0 | |
变量 | 可以是任意类型,直接通过赋值符号定义,变量其实就是定义了一个指针或者说地址 | Python是动态语言,java是静态语言 |
常量 | 不能变的变量 |
字符串编码
编码 | 范围 | 字节数 | 优势 |
ASCII | 英文字母和数字 | 1个字节 | 简单,存储空间小 |
Unicode | 所有语言的字符 | 4个字节 | 覆盖面广 |
UTF8 | 所有语言的字符 | 根据实际情况,字母和数字使用1个字节,其它字符根据需要使用字节数 | 节省空间 |
文件处理过程: 加载到内存显示使用Unicode编码,保存到文件使用UTF8编码;
浏览器处理过程:服务器端到网页传输通过UTF8编码;
ASCII相关的函数:
函数 | 功能说明 | |
ord(‘B’) | 得到对应的数字 | |
chr(65) | 得到对应的字符 |
Unicode字符 u’你好’
转换成utf8编码:encode(‘utf-8’)
获取字符串长度 len(‘字符串’)
转换成unicode编码 decode(‘utf-8’)
常用注释
#!/usr/bin/env python
# -*- coding: utf-8 -*-
第一行是告诉Linux/os系统,Python是可执行程序,windows忽略;
第二行是告诉Python解释器,按照UTF-8编码读取源文件,否则可能有中文乱码
格式化:
占位符 | 类型 |
%d | 整数 |
%f | 浮点数 |
%s | 字符串 |
%x | 十六进制数 |
常用数据结构
数据结构 | 特征 | 常见操作 | 初始化方法 |
list | 长度可变的有序数组,可以构造多位数组 | Append, 追加元素 Pop 删除最后一个,或者指定位置的元素 Insert 某个位置插入元素 Len 获取长度 a【i】 获取某个元素,当i为负数表示取得倒数的 | [‘a’,123,’shit’] |
tuple | 长度,指向不可变的有序数组,更安全一些 | b【i】按照位置取值 | (’a’,789,[1,’end’]) |
dict | Map,查询效率高,但是存储效率低 | In 是否存在 Get 得到元素 Pop【key】 删除元素 C[‘key’]根据key得到值或者增加值 | {’name’:’carter’,’age’:27} |
set | 代数里的集合 | Add 增加元素 Remove 删除元素 | Set([1,2,3,4]) |
不变对象 | 就是对象不可以改变,指向可以改变 |
条件和循环判断
种类 | 格式 | 说明 |
条件判断 | If If … Else If…elif…else | Elif 从上往下判断 只要 x是非零数字,非空字符串,非空list,条件即可True |
循环判断 | For var in array: While(condition): | |
#-*- coding:utf-8 -*–*- age=3 if age >= 18: print ‘adult’ else: print ‘teenager’ sum = 0 for x in range(101): sum+=x; print sum; sum = 0 n = 99 while n>0: sum +=n n-=2 print u’100以内的偶数相加得到’,sum |
range(num) 一个从0到num-1的list
int(‘字符串’) 把字符串转换为整数