Python使用基础
1) 基本概念
1.1 常量
Python没有提供常量保留字,需要自行扩展一个常量类来实现常量功能
class _const:
class ConstError(TypeError):pass
def __setattr__(self,name,value):
if self.__dict__.has_key(name):
raise self.ConstError,"Can't rebind const (%s)"% name
self.__dict__[name]=value
import sys
sys.modules[__name__]=_const()
1.2 数字
类型:整数(int), 长整(long), 浮点(float), 复数
PS: 没有double类型
代码段:
i = 1234
print type(i)
i = 1234l
print type(i)
i = float(i)
print type(i)
i = 1234312515431643643613615
print type(i)
i = 213.432151
print type(i)
i = 34131251325125312441241421415.125125315
print type(i)
运行结果:
<type 'int'>
<type 'long'>
<type 'float'>
<type 'long'>
<type 'float'>
<type 'float'>
1.3 字符串
单引号'abc', 双引号"abc", 三引号"""abc""""或'''abc''', 三者效果相同,都是str类型
例子:'ab"abc"d'实际上是字符串ab"abc"d
"""作用有三:
a. 字符串;b. 块注释(多行注释); c. 文档字符串(help)
反斜杠用作转义字符\, 如果字符串前使用r"hello world!\n"会忽略里面的转移字符\n,类似C#中的@
eval(字符串),把字符串当作是表达式进行计算
1.4 变量
变量名大小写敏感,首字母必须为字母或下划线
1.5 数据类型
数值
字符串
线性容器
字符串也算一种线性容器
List
tuple
Hash容器:Dict, set
None类型
布尔类型(True, False),所有非零值都默认为True,0为False
1.6 逻辑行和物理行
一个物理行使用多个逻辑行,应使用分号;隔开
一个逻辑行分多个物理行表示,应使用反斜杠\分割
1.7 缩进
缩进错误会导致执行错误,建议用四个空格作为缩进(不要混用空白和Tab作为缩进)
2) 运算符与表达式
2.1 运算符
位运算:基本和C#相同:&与, |或, ^异或, <<左位移, >> 右位移 以及特殊的~按位翻转
比较操作: <, >, <=, >=, ==, !=
逻辑比较操作: not, and, or,这是和C#不同的
2.2 运算符优先级
略过
2.3 表达式
字符串表达式
数值表达式
逻辑表达式
函数式表达式
例子:
a= lamua x:x+1
a(2) #输出值为3
3) 逻辑控制结构
if/elif/else
if <表达式>:
命令行1
命令行n
elif <表达式>:
命令行
else:
命令行
for
for 变量 in <tuple类型变量>:
print 变量
其中tuple变量可以来自range函数或xrange函数,range和xrange函数的格式是:range(起点值, 终点值, 步长)
else
在Python中else除了可以出现在if中,还可以出现在for还while中,else只在整个循环完全执行的情况下执行,如果循环被break语句终止,则不会执行else分支
while
4) 函数
使用def定义函数,支持缺省参数
例子:
def function(a=1, b=2, c=3):
print a
print b
print c
function() #将输出1,2,3
函数允许有多个返回值
例子:
def function():
return 1, 2, 3
c, d, e = function()
print c
print d
print e
# 打印1,2,3
函数可赋值指向某个变量,在Python中函数也是一个对象
例子:
def function(a):
print a
f = function
f("Hello") #等同于执行function("Hello")
Lambda表达式
闭包
5) 面向对象编程
类的定义
例子:
class a:
def __init__(self): #__init__(self)是缺省构造函数
self.m = 1 #定义属性m为1
class b(a): # 定义类b从类a继承
"""这是类b的注释"""
def __init__(self):
a.__init__(self) # Python不会自动调用基本类的constructor,你得亲自专门调用它
self.n = 2
self.__nn = 3 # 私有属性__nn
def sum(self, num): # 必须添加self关键字表明是类成员
"""这是类b中sum方法的注释"""
print self.m + self.n + num
def __privateMethod(self): # 定义类b的私有方法,外部不可见
print "It's a private method with prefix :__"
objB = b()
objB.sum(5) # 输出8
print type(objB) # 输出<type 'instance'>,说明是一个实例
print type(b) # 输出<type 'classobj'>, 说明是一个类
print objB.__doc__ # 输出类b的注释:这是类b的注释
print objB.sum.__doc__ # 输出:这是类b中sum方法的注释
私有成员(属性、方法)
一个 Python 函数,类方法,或属性的名字以两个下划线开始(但不是结束),它是私有的;其它所有的都是公有的。
专有成员(属性、方法)
专有方法是以__开始和结尾的公开方法,是在特殊情况下或当使用特别语法时由 Python 替你调用的,而不是在代码中直接调用(象普通的方法那样)
需要特别注意的是,Python中的类属性,可以在类中定义,也可以在类之外定义,甚至允许在实例上定义
例子:
class Personality:
def __init__(self, name = "William"):
self.Name = name
self.Sex = True
self.__Money = 0.0
william = Personality()
william.Nickname = "Wind" # 在实例上增添属性Nickname, 从此该实例上有Nickname这个属性
print william.Nickname
Personality.Age = 32 # 在类之外增添属性Age, 所有Personality的实例上都将有Age=32,包括此前实例化的william
print william.Age
6) 异常处理
例子:
class Personality:
def __init__(self, name = "William"):
self.Name = name
self.Sex = True
self.__Money = 0.0
def Test(self):
try:
i = 1/0
except Exception, e:
print e
def Test2(self):
pass # 关键字pass, 占位符todo
wc = Personality()
wc.Test()
# 将输出:integer division or modulo by zero
7) 模块与包
通过在文件首行插入#coding=UTF-8标示编码类型
使用#!/usr/bin/python27,来指定Python的位置
8) 文件和目录操作
open函数
read, readline, seek, write, writeline
os包中的os.listdir和os.walk函数
Python使用基础的更多相关文章
- Python文件基础
===========Python文件基础========= 写,先写在了IO buffer了,所以要及时保存 关闭.关闭会自动保存. file.close() 读取全部文件内容用read,读取一行用 ...
- 3.Python编程语言基础技术框架
3.Python编程语言基础技术框架 3.1查看数据项数据类型 type(name) 3.2查看数据项数据id id(name) 3.3对象引用 备注Python将所有数据存为内存对象 Python中 ...
- Python爬虫基础
前言 Python非常适合用来开发网页爬虫,理由如下: 1.抓取网页本身的接口 相比与其他静态编程语言,如java,c#,c++,python抓取网页文档的接口更简洁:相比其他动态脚本语言,如perl ...
- 小白必看Python视频基础教程
Python的排名从去年开始就借助人工智能持续上升,现在它已经成为了第一名.Python的火热,也带动了工程师们的就业热.可能你也想通过学习加入这个炙手可热的行业,可以看看Python视频基础教程,小 ...
- Python爬虫基础之requests
一.随时随地爬取一个网页下来 怎么爬取网页?对网站开发了解的都知道,浏览器访问Url向服务器发送请求,服务器响应浏览器请求并返回一堆HTML信息,其中包括html标签,css样式,js脚本等.我们之前 ...
- 零基础学Python--------第2章 Python语言基础
第2章 Python语言基础 2.1 Python语法特点 2.11注释 在Python中,通常包括3种类型的注释,分别是单行注释.多行注释和中文编码声明注释. 1.单行注释 在Python中,使用 ...
- Python学习基础笔记(全)
换博客了,还是csdn好一些. Python学习基础笔记 1.Python学习-linux下Python3的安装 2.Python学习-数据类型.运算符.条件语句 3.Python学习-循环语句 4. ...
- Python数据分析基础教程
Python数据分析基础教程(第2版)(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1_FsReTBCaL_PzKhM0o6l0g 提取码:nkhw 复制这段内容后 ...
- Python数据分析基础PDF
Python数据分析基础(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1ImzS7Sy8TLlTshxcB8RhdA 提取码:6xeu 复制这段内容后打开百度网盘手 ...
- Python的基础语法(一)
0. 前言 最近正在重新整理Python的基础知识,以便更好地学习新知识.这一部分主要是讲述Python基础语法的演示.下面的语法都是基于Python3的语法. 1. 注释 注释:Python的注释方 ...
随机推荐
- linux enc28j60网卡驱动移植(硬件spi和模拟spi)
本来想移植DM9000网卡的驱动,无奈硬件出了点问题,通过杜邦线链接开发板和DM9000网卡模块,系统上电,还没加载网卡驱动就直接崩溃了,找不到原因...刚好手上有一个enc28j60的网卡模块,于是 ...
- android 读取根目录下的文件或文件夹
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setC ...
- devtmpfs文件系统创建设备节点
分类: LINUX 原文地址:devtmpfs文件系统创建设备节点 作者:wangbaolin719 http://blog.chinaunix.net/uid-27097876-id-4334356 ...
- hadoop2.6---windows下开发环境搭建
一.准备插件 1.自己编译 1.1 安装Ant 官网下载Ant,apache-ant-1.9.6-bin.zip 配置环境变量,新建ANT_HOME,值是E:\apache-ant-1.9.6:PAT ...
- emacs 新手笔记(一) —— 阅读【emacs tutorial】
ilocker:关注 Android 安全(新入行,0基础) QQ: 2597294287 [emacs tutorial]是熟悉 emacs 的入门资料.一共几十个命令,不需硬记,勤练即可. 翻页命 ...
- Brackets(bestcoder)
Brakerts 每次询问一个区间都根据最开始的线段树在询问的区间重建一棵线段树 view code#include <iostream> #include <cstdio> ...
- ubuntu 安装配置jdk+eclipse+android sdk
共5步: 1.安装jdk 2.安装eclipse 3.安装android-sdk 4.安装adb 5.在eclipse中安装ADT 1.安装jdk 之前已经安装好了. 用下面的命令安装,只需一些时间, ...
- [转]菜鸟程序员之Asp.net MVC Session过期异常的处理
本文转自:http://www.cnblogs.com/JustRun1983/p/3377652.html 小赵是刚毕业的计算机专业方面的大学生,4年的大学时间里面,他读过了很多编程方面的数据,也动 ...
- 学习shell中遇到的一些基础问题总结
今天入门Shell脚本编程:今天的目标是完成冒泡排序,遇到了很多问题,总结了一下: 我从c转到shell遇到了这样的一些情况: 1:首先这几个符号非常重要 $变量:把变量的值拿出来使用(所以赋值语句应 ...
- ImageMagick Remote Command Execute
CVE ID: CVE-2016-3714 我挺纠结应该用中文写博客还是应该用英文写博客.英文吧作用挺明显的,可以锻炼自己的英语表达能力,但是可能会阻碍和一些英文不好的朋友交流. It's upset ...