python入门学习

来源:互联网 发布:处理数据 英文 编辑:程序博客网 时间:2024/06/16 18:45

python是一种解释型、面向对象、动态数据类型的高级程序设计语言。

python是一种解释型语言:开发过程中没有了编译这个环节

python是交互式语言:在python提示符直接互动执行写你的程序

python智齿面向对象的风格或代码封装在对象的编程技术

python是初学者的语言:python对初级程序员而言,是一种伟大的语言,它智齿广发的应用程序开发,从简单的文字处理到www

浏览器再到游戏


以单下划线_foo的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能from xxx import *而导入

以双下划线开头的__foo代表类的私有成员,以双下划线开头和结尾的__foo__代表python里特殊方法专用的标识,

__init__()代表类的构造方法


python的代码块不适用{}来控制类,函数以及其他逻辑判断

python最具特色的就是用缩进来写代码


变量存储在内存中的值,意味着在创建变量时会在内存中开辟一个空间

基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存只能怪

因此,变量可以指定不同的数据类型,这些变量可以存储整书,小数或者字符


python有五个标准的数据类型:

Number(整数)

String(字符串)

List(列表)

Tuple(元组)

Dictionary(字典)


数字数据类型用于存储数值,这是不可改变的数据类型,改变数字类型会分配一个新的对象


字符串或穿是由数字,字母,下划线组成的一串字符


List是python中使用最频繁的数据类型,它智齿幅,数字,字符串深知可以包含列表


元组是另一个数据类型,类似于List(列表)。
元组用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。


字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。
两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典用"{ }"标识。字典由索引(key)和它对应的值value组成。


有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。
以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。

函数描述

int(x [,base])

将x转换为一个整数

long(x [,base] )

将x转换为一个长整数

float(x)

将x转换到一个浮点数

complex(real [,imag])

创建一个复数

str(x)

将对象 x 转换为字符串

repr(x)

将对象 x 转换为表达式字符串

eval(str)

用来计算在字符串中的有效Python表达式,并返回一个对象

tuple(s)

将序列 s 转换为一个元组

list(s)

将序列 s 转换为一个列表

set(s)

转换为可变集合

dict(d)

创建一个字典。d 必须是一个序列 (key,value)元组。

frozenset(s)

转换为不可变集合

chr(x)

将一个整数转换为一个字符

unichr(x)

将一个整数转换为Unicode字符

ord(x)

将一个字符转换为它的整数值

hex(x)

将一个整数转换为一个十六进制字符串

oct(x)

将一个整数转换为一个八进制字符串

python函数

函数时组织好的,课重复使用的,用来实现单一或相关联功能的代码段

函数代码块以def关键词开头,后接函数标识符名称和圆括号

任何传入参数和自变量必须放在圆括号中间,圆括号之间可以定义参数

函数的第一行语句可以选择性低使用文档字符串——用于存放函数说明

函数内容一冒号其实,并且缩进

调用函数时可是要ongoing的正式参数类型:

必备参数:以正确的顺序传入函数,调用时的数量必须和申明时一样

关键字参数:使用关键字允许函数调用时参数的顺序和声明时不一致

默认参数:缺省参数的值如果没有传入,则被认为是默认值

不定长参数:加了*号的变量名会存放所有未命名的变量参数


匿名函数
python 使用 lambda 来创建匿名函数。
lambda只是一个表达式,函数体比def简单很多。
lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率


python模块

python模块是一个python文件,以.py结尾,包含了python对象定义和Python语句

模块让你能够有逻辑组织python代码段

让相关的代码分配到一个模块里能够让代码更好用,更容易懂

模块能定义函数,类和变量,模块里能包含可执行的代码

import语句:模块定义好后,我们可以使用import语句来引入模块:模块名.函数名

from……import:从模块中导入一个人指定的部分到当前命名空间中


包是分层次的文件目录结构,它定义了一个由模块及字包,和子包下的自爆等组成的python的应用环境

简单来说,包是一个文件夹,但改文件下必须存在__init__.py文件,该文件的内容可以为空


python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘

raw_input

input


类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。
方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
实例变量:定义在方法中的变量,只作用于当前实例的类。
继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。
实例化:创建一个类的实例,类的具体对象。
方法:类中定义的函数。
对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。


面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。继承完全可以理解成类之间的类型和子类型关系。

需要注意的地方:继承语法 class 派生类名(基类名)://... 基类名写在括号里,基本类是在类定义的时候,在元组之中指明的。

在python中继承中的一些特点:

  • 1:在继承中基类的构造(__init__()方法)不会被自动调用,它需要在其派生类的构造中亲自专门调用。
  • 2:在调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数变量。区别于在类中调用普通函数时并不需要带上self参数
  • 3:Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。(先在本类中查找调用的方法,找不到才去基类中找)。

如果在继承元组中列了一个以上的类,那么它就被称作"多重继承" 。



Python 多线程

多线程类似于同时执行多个不同程序,多线程运行有如下优点:

  • 使用线程可以把占据长时间的程序中的任务放到后台去处理。
  • 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度
  • 程序的运行速度可能加快
  • 在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等。

线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

每个线程都有他自己的一组CPU寄存器,称为线程的上下文,该上下文反映了线程上次运行该线程的CPU寄存器的状态。

指令指针和堆栈指针寄存器是线程上下文中两个最重要的寄存器,线程总是在进程得到上下文中运行的,这些地址都用于标志拥有线程的进程地址空间中的内存。

  • 线程可以被抢占(中断)。
  • 在其他线程正在运行时,线程可以暂时搁置(也称为睡眠) -- 这就是线程的退让。

原创粉丝点击