python学习笔记

python学习笔记
python学习笔记

第一课php面向对象

PHP Module层详解

Module层,就是MVC模式中的数据处理层,用来进行数据和商业逻辑的封装,进行他的设计的时候,需要涉及到三个类

1.Model类,实体类,实体类中的字段与数据库中的表字段一一对应,用来包装信息实体的基础类,并且可以验证这条数据的完整性

2.ModelManager类:是实体类的管理类,通常每一个实体类都要有一个对应的管理类,管理类可以用来管理实体类里面的数据记录(增,删,改,查),但是管理类不一定要有实体类

3.Db类:用来管理对数据库的连接,管理类所有的对数据的操作,都是通过这个db类来完成的,在整个MVC模式中,只有整个db类可以直接对数据库进行操作,同时也只有管理类可以对db类进行调用。

具体介绍参见https://www.360docs.net/doc/9c18916400.html,/vc/jiaocheng/28806_2.htm

MVC学习https://www.360docs.net/doc/9c18916400.html,/view/d0b233eff8c75fbfc77db2b5.html

Mysq学习笔记https://www.360docs.net/doc/9c18916400.html,/mysql/26.htm

第二课linux下python安装

1.下载源代码

https://www.360docs.net/doc/9c18916400.html,/ftp/python/2.5.2/Python-2.5.2.tar.bz2

2.安装

$ tar –jxvf Python-2.5.2.tar.bz2 √

$ cd Python-2.5.2 √

$ ./configure

$ make

$ make install

3. 测试

在命令行下输入python,出现python解释器即表示已经正确安装。

在suse10或rhel5(es5)下系统默认已经装了python但版本是2.4.x;本次安装后在shell中输入

#python

会发现显示结果:

# python

Python 2.4.3 (#1, Dec 11 2006, 11:38:52)

[GCC 4.1.1 20061130 (Red Hat 4.1.1-43)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>>

版本还是2.4.x的

解决办法:

#cd /usr/bin

#ll |grep python //查看该目录下python

#rm -rf python

#ln -s PREFIX/Python-2.5.2/python ./python //PREFIX为你解压python 的目录

#python

# python

Python 2.5.2 (#1, Dec 11 2006, 11:38:52)

[GCC 4.1.1 20061130 (Red Hat 4.1.1-43)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>>

OK!问题解决!

第三课套接字

套接字是一张具有通讯端点概念的计算机网络数据结构,网络化得应用程序在开始任何通讯之前都必需要创建套接字,就像电话插口一样,没有它就完全没办法通讯。

基于网络的套接字AF_INET 或叫“地址家族:Internet”。还有一种地址家族AF_INET6 被用于网际协议的第6 版(IPv6)寻址

一种是面向连接的套接字:实现这种连接的主要协议就是传输控制协议(即TCP),要创建TCP 套接字就得在创建的时候,指定套接字类型为SOCK_STREAM,TCP 套接字采用SOCK_STREAM 这个名字,表达了它做为流套接字的特点

由于这些套接字使用Internet协议(IP)来查找网络中的主机,这样形成的整个系统,一般会有这两个协议(TCP/IP)来提及,及TCP/IP

第四课Eclipse+python环境搭建

本文主要包含两篇文章

第一篇讲在Eclipse中搭建Python开发环境

第二篇,主要讲一些配置。

第一篇:

在Eclipse中搭建Python开发环境

前言

笔者最近迷上了Python,但是一直没有找到满意的IDE。虽然使用Vim编辑器+命令行的方式比较酷,然而一个优秀的IDE确实能让开发速度提升不少。于是笔者想到Eclipse——一个神一样的利器。经过一番曲折,终究修成正果。整理成文,希望对热爱的Python的童鞋有所帮助。

正文

首先我们需要明白一点——Eclipse作为一个灰常优秀的开发工具,它可被用作N 多语言的IDE,然而前提是我们需要安装对应的编译器或者解释器。比如常见的Java 开发,就必须JDK。因此要用Eclipse进行Python开发也必须Python的“JDK”,即Python解释器。笔者已安装Python2.7版本的解释器,在本文便Python2.7为示例分步骤说明搭建过程。

基本需求:

·1 Eclipse(版本不要太陈旧)

·2 Python解释器(https://www.360docs.net/doc/9c18916400.html,)

步骤1:

下载用于在Eclipse中开发Python的插件PyDev。

文件名:org.python.pydev.feature-1.6.1.2010080312.zip。

下载地址:https://www.360docs.net/doc/9c18916400.html,/projects/pydev/files/

说明:截至到2010-8-20,上述文件为最新版本。

步骤2:

解压org.python.pydev.feature-1.6.1.2010080312.zip。将解压后的features和plugins文件夹中的内容拷贝到Eclipse安装目录下相同的文件夹中即安装PyDev 插件成功。

步骤3:

打开Eclipse(如果已经打开,则重启Eclipse)。选择window——》Presences,设置如图:

展开PyDev,选择Interpreter - Python,单击New...按钮,在弹出的Select interpreter窗口中单击Browse...按钮,找到已经安装的Python解释器。单击Select interpreter窗口中单击OK按钮,在弹出的Selection Needed窗口中单击Select All 按钮,然后单击OK按钮完成设置。然后在Preferences窗口中选择Apply——》OK完成设置。如图:

以下几步Python 3.x必选,Python 2随意。我比较习惯Unicode,所以一次性在这儿设定了。

2、General->Editors->Text Editors->Spelling,Encoding改成Other:UTF-8

3、General->Workspace,Text file encoding改成Other:UTF-8

4、找到安装目录下的\plugins\org.python.pydev.debug_x.x.x.yyyymmddhh\pysrc\pydevd.py,920行的encoding = Non改成encoding = "UTF-8",保存

至此,PyDev的配置就完成了。

步骤4:

选择File——》New——》Other。在弹出的New窗口中,按下图操作:

步骤5:

在弹出的窗口中,依次填写Project name(工程名)——》为工程选择Directory(目录)——》选择Project type(工程类型)——》选择版本号(如果没有自己正在使用的版本号,则选择比自己版本号老一些的版本号)——》选择Interpreter(解释器)——单击Finish按钮完成设置。如图:

注:上图中,因为自己安装的python是3.1版本,所以grammer version选择3.0.

步骤6:

现在可以在已创建的工程中新建模块了,如图:

我们在src包中建立一个空的HelloWorld模块,如图:

步骤7:

按下图所示,编写一个简单的HelloWorld脚本并运行之。

以上便是全部内容,如有疑问欢迎留言讨论。

2010-8-20于深圳来自: https://www.360docs.net/doc/9c18916400.html,/hqwfreefly/blog/item/2543181d0afd9604314e150e.html

第二篇:

三、配置Python这也是重点

Py3默认采用utf-8编码。取消u' ...'形式的unicode文本表示,保存文本的数据类型是str,保存数据的数据类型是bytes。由于默认采用utf-8编码,只要保持.py文件的字符编码也为utf-8格式,不用再在头部声明程序的编码类型,即不用写# -*- coding: utf-8 -*-,测试的确可以如此。所以PyDev的编码方式也要改成UTF-8:

1、在Eclipse IDE 下,打开Window->Preferences...对话框,从右侧的树形列表

中选择“ PyDev”->“Interpreter Python”,点击New或Auto Config按钮,从Python

的安装路径下选择Python.exe,然后会弹出一个对话框让你勾选System PYTHONPATH,我是都选了,应该无所谓。最后点Ok,退出。

2、改编码方式:

a):选择“General>>Editors>>Text Editors>>Spelling”把Encoding设置成UTF-8:

b)设置Workspace的编码方式为:UTF-8:

好了现在就安装完成了。但这样还不行,如果Python代码中有中文时,调试代码会出错:

于是我们打开

\eclipse\plugins\org.python.pydev.debug_1.4.7.2843\pysrc\pydevd.py 找到713行:obj = compile(open(file).read(), file, 'exec')

由于Windows默认的编码方式是GBK的,然我们用Eclipse编码的*.py文件的编码方式是UTF-8的,而open(file)是使用操作系统默认编码(即GBK),所以我们要给它使用UTF-8来读文件。

所以我们把这行代码改成:obj =

compile(open(file,encoding="UTF-8").read(), file, 'exec')

这样就没有问题了。

第五课LINUX目录

主要目录

/bin

/sbin

/etc

/root

/lib

/dev

/tmp

/boot

/mnt

/proc

/usr

/var

/home

/dev

目录树可以分为小的部分,每个部分可以在自己的磁盘或分区上。主要部分是根、/usr 、/var 和/home 文件系统。每个部分有不同的目的。

每台机器都有根文件系统,它包含系统引导和使其他文件系统得以mount所必要的文件,根文件系统应该有单用户状态所必须的足够的内容。还应该包括修复损坏系统、恢复备份等的工具。

/usr 文件系统包含所有命令、库、man页和其他一般操作中所需的不改变的文件。/usr 不应该有一般使用中要修改的文件。这样允许此文件系统中的文件通过网络共享,这样可以更有效,因为这样节省了磁盘空间(/usr 很容易是数百兆),且易于管理(当升级应用时,只有主/usr 需要改变,而无须改变每台机器) 即使此文件系统在本地盘上,也可以只读mount,以减少系统崩溃时文件系统的损坏。

/var 文件系统包含会改变的文件,比如spool目录(mail、news、打印机等用的),log 文件、formatted manual pages和暂存文件。传统上/var 的所有东西曾在/usr 下的某个地方,但这样/usr 就不可能只读安装了。

/home 文件系统包含用户家目录,即系统上的所有实际数据。一个大的/home 可能要分为若干文件系统,需要在/home 下加一级名字,如/home/students 、/home/staff 等。虽然上面将不同的部分称为文件系统,但它们不必是真的分离的文件系统。如果系统是小的单用户系统,而用户希望简单化,可以很容易地放在一个文件系统中。根据磁盘容量和不同目的所需分配的空间,目录树也可以分到不同的文件系统中。重要的是使用标准的名字,即使/var 和/usr 在同一分区上,名字/usr/lib/libc.a 和/var/adm/messages 必须能工作,例如将/var 下的文件移动到/usr/var ,并将/var 作为/usr/var 的符号连接。Unix文件结构根据目的来分组文件,即所有的命令在一个地方,所有的数据在另一个地方,所有的文档又在一个地方,等等。另一个方法是根据属于的程序分组文件,即所有Emacs 文件在一个目录中,所有TeX文件在另一个中,等等。后一种方法的问题是文件难于共享(程序目录经常同时包含静态可共享的和动态不可共享的文件),有时难于查找(例如man页在极大数量的地方,使man程序查找它们极其困难)。

根文件系统

根文件系统一般应该比较小,因为包括严格的文件和一个小的不经常改变的文件系统不容易损坏。损坏的根文件系统一般意味着除非用特定的方法(例如从软盘)系统无法引导。

根目录一般不含任何文件,除了可能的标准的系统引导映象,通常叫/vmlinuz 。所有其他文件在根文件系统的子目录中。

/bin ,引导启动所需的命令或普通用户可能用的命令(可能在引导启动后)。

/sbin ,类似/bin ,但不给普通用户使用,虽然如果必要且允许时可以使用。

/etc ,特定机器的配置文件。

/root ,root用户的家目录。

/lib .根文件系统上的程序所需的共享库。

/lib/modules 核心可加载模块,特别是那些恢复损坏系统时引导所需的(例如网络和文件系统驱动)。

/dev 设备文件。

/tmp 临时文件。引导启动后运行的程序应该使用/var/tmp ,而不是/tmp ,因为前者可能在一个拥有更多空间的磁盘上。

/boot 引导加载器(bootstrap loader)使用的文件,如LILO。核心映象也经常在这里,而不是在根目录。如果有许多核心映象,这个目录可能变得很大,这时可能使用单独的文件系统更好。另一个理由是要确保核心映象必须在IDE硬盘的前1024柱面内。

/mnt 系统管理员临时mount的安装点。程序并不自动支持安装到/mnt 。/mnt 可以分为子目录(例如/mnt/dosa 可能是使用MSDOS文件系统的软驱,而/mnt/exta 可能是使用ext2文件系统的软驱)。

/proc , /usr , /var , /home 其他文件系统的安装点。

/etc目录/etc 目录包含很多文件。许多网络配置文件也在/etc 中。

/etc/rc or /etc/rc.d or /etc/rc*.d 启动、或改变运行级时运行的scripts或scripts的目录。

/etc/passwd 用户数据库,其中的域给出了用户名、真实姓名、家目录、加密的口令和用户的其他信息。

/etc/fdprm 软盘参数表。说明不同的软盘格式。用setfdprm 设置。

/etc/fstab 启动时mount -a命令(在/etc/rc 或等效的启动文件中)自动mount的文件系统列表。Linux下,也包括用swapon -a启用的swap区的信息。

/etc/group 类似/etc/passwd ,但说明的不是用户而是组。

/etc/inittab init 的配置文件。

/etc/issue getty 在登录提示符前的输出信息。通常包括系统的一段短说明或欢迎信息。内容由系统管理员确定。

/etc/magic file 的配置文件。包含不同文件格式的说明,file 基于它猜测文件类型。

/etc/motd Message Of The Day,成功登录后自动输出。内容由系统管理员确定。经常用于通告信息,如计划关机时间的警告。

/etc/mtab 当前安装的文件系统列表。由scripts初始化,并由mount 命令自动更新。需要一个当前安装的文件系统的列表时使用,例如df 命令。

/etc/shadow 在安装了影子口令软件的系统上的影子口令文件。影子口令文件将/etc/passwd 文件中的加密口令移动到/etc/shadow 中,而后者只对root可读。这使破译口令更困难。

/etc/login.defs login 命令的配置文件。

/etc/printcap 类似/etc/termcap ,但针对打印机。语法不同。

/etc/profile , /etc/csh.login , /etc/csh.cshrc 登录或启动时Bourne或C shells执行

的文件。这允许系统管理员为所有用户建立全局缺省环境。

/etc/securetty 确认安全终端,即哪个终端允许root登录。一般只列出虚拟控制台,这样就不可能(至少很困难)通过modem或网络闯入系统并得到超级用户特权。

/etc/shells 列出可信任的shell。chsh 命令允许用户在本文件指定范围内改变登录shell。提供一台机器FTP服务的服务进程ftpd 检查用户shell是否列在/etc/shells 文件中,如果不是将不允许该用户登录。

/etc/termcap 终端性能数据库。说明不同的终端用什么"转义序列"控制。写程序时不直接输出转义序列(这样只能工作于特定品牌的终端),而是从/etc/termcap 中查找要做的工作的正确序列。这样,多数的程序可以在多数终端上运行。

/dev目录/dev 目录包括所有设备的设备文件。设备文件用特定的约定命名。

/usr文件系统/usr 文件系统经常很大,因为所有程序安装在这里。/usr 里的所有文件一般来自Linux distribution;本地安装的程序和其他东西在/usr/local 下。这样可能在升级新版系统或新distribution时无须重新安装全部程序。

/usr/X11R6 X Window系统的所有文件。为简化X的开发和安装,X的文件没有集成到系统中。X自己在/usr/X11R6 下类似/usr 。

/usr/X386 类似/usr/X11R6 ,但是给X11 Release 5的。

/usr/bin 几乎所有用户命令。有些命令在/bin 或/usr/local/bin 中。

/usr/sbin

根文件系统不必要的系统管理命令,例如多数服务程序。

/usr/man , /usr/info , /usr/doc 手册页、GNU信息文档和各种其他文档文件。

/usr/include C编程语言的头文件。为了一致性这实际上应该在/usr/lib 下,但传统上支持这个名字。

/usr/lib 程序或子系统的不变的数据文件,包括一些site-wide配置文件。名字lib来源于库(library); 编程的原始库存在/usr/lib 里。

/usr/local 本地安装的软件和其他文件放在这里。

/var文件系统/var 包括系统一般运行时要改变的数据。每个系统是特定的,即不通过网络与其他计算机共享。

/var/catman 当要求格式化时的man页的cache。man页的源文件一般存在/usr/man/man* 中;有些man页可能有预格式化的版本,存在/usr/man/cat* 中。而其他的man页在第一次看时需要格式化,格式化完的版本存在/var/man 中,这样其他人再看相同的页时就无须等待格式化了。(/var/catman 经常被清除,就象清除临时目录一样。)

/var/lib 系统正常运行时要改变的文件。

/var/local /usr/local 中安装的程序的可变数据(即系统管理员安装的程序)。注意,如果必要,即使本地安装的程序也会使用其他/var 目录,例如/var/lock 。

/var/lock 锁定文件。许多程序遵循在/var/lock 中产生一个锁定文件的约定,以支持他们正在使用某个特定的设备或文件。其他程序注意到这个锁定文件,将不试图使用这个设备或文件。

/var/log 各种程序的Log文件,特别是login (/var/log/wtmp log所有到系统的登录和注销) 和syslog (/var/log/messages 里存储所有核心和系统程序信息。/var/log 里的文件经常不确定地增长,应该定期清除。

/var/run 保存到下次引导前有效的关于系统的信息文件。例如,/var/run/utmp 包含当前登录的用户的信息。

/var/spool mail, news, 打印队列和其他队列工作的目录。每个不同的spool在/var/spool 下有自己的子目录,例如,用户的邮箱在/var/spool/mail 中。

/var/tmp 比/tmp 允许的大或需要存在较长时间的临时文件。(虽然系统管理员可能不允许/var/tmp 有很旧的文件。)

/proc文件系统/proc 文件系统是一个假的文件系统。它不存在在磁盘某个磁盘上。而是由核心在内存中产生。用于提供关于系统的信息(originally about processes, hence the name)。下面说明一些最重要的文件和目录。

/proc/1 关于进程1的信息目录。每个进程在/proc 下有一个名为其进程号的目录。

/proc/cpuinfo 处理器信息,如类型、制造商、型号和性能。

/proc/devices 当前运行的核心配置的设备驱动的列表。

/proc/dma 显示当前使用的DMA通道。

/proc/filesystems 核心配置的文件系统。

/proc/interrupts 显示使用的中断,and how many of each there have been.

/proc/ioports 当前使用的I/O端口。

/proc/kcore 系统物理内存映象。与物理内存大小完全一样,但不实际占用这么多内存;it is generated on the fly as programs access it. (记住:除非你把它拷贝到什么地方,/proc 下没有任何东西占用任何磁盘空间。)

/proc/kmsg 核心输出的消息。也被送到syslog 。

/proc/ksyms 核心符号表。

/proc/loadavg 系统"平均负载";3个指示器指出系统当前的工作量。

/proc/meminfo 存储器使用信息,包括物理内存和swap。

/proc/modules 当前加载了哪些核心模块。

/proc/net 网络协议状态信息。

/proc/self 到查看/proc 的程序的进程目录的符号连接。当2个进程查看/proc 时,是不同的连接。这主要便于程序得到它自己的进程目录。

/proc/stat 系统的不同状态,such as the number of page faults since the system was booted.

/proc/uptime 系统启动的时间长度。

/proc/version 核心版本。

第六课Linux必须学会的60个命令---文件处理

Linux系统信息存放在文件里,文件与普通的公务文件类似。每个文件都有自己的名字、内容、存放地址及其它一些管理信息,如文件的用户、文件的大小等。文件可以是一封信、一个通讯录,或者是程序的源语句、程序的数据,甚至可以包括可执行的程序和其它非正文内容。Linux文件系统具有良好的结构,系统提供了很多文件处理程序。这里主要介绍常用的文件处理命令。

file

1.作用

file通过探测文件内容判断文件类型,使用权限是所有用户。

2.格式

file [options] 文件名

3.[options]主要参数

-v:在标准输出后显示版本信息,并且退出。

-z:探测压缩过的文件类型。

-L:允许符合连接。

-f name:从文件namefile中读取要分析的文件名列表。

4.简单说明

使用file命令可以知道某个文件究竟是二进制(ELF格式)的可执行文件, 还是Shell Script 文件,或者是其它的什么格式。file能识别的文件类型有目录、Shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、DOS的可执行文件。

5.应用实例

如果我们看到一个没有后缀的文件grap,可以使用下面命令:

$ file grap

grap:English text

此时系统显示这是一个英文文本文件。需要说明的是,file命令不能探测包括图形、音频、视频等多媒体文件类型。

mkdir

1.作用

mkdir命令的作用是建立名称为dirname的子目录,与MS DOS下的md命令类似,它的使用权限是所有用户。

2.格式

mkdir [options] 目录名

3.[options]主要参数

-m, --mode=模式:设定权限,与chmod类似。

-p, --parents:需要时创建上层目录;如果目录早已存在,则不当作错误。

-v, --verbose:每次创建新目录都显示信息。

--version:显示版本信息后离开。

4.应用实例

在进行目录创建时可以设置目录的权限,此时使用的参数是―-m‖。假设要创建的目录名是―tsk‖,让所有用户都有rwx(即读、写、执行的权限),那么可以使用以下命令:$ mkdir -m 777 tsk

grep

1.作用

grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

2.格式

grep [options]

3.主要参数

[options]主要参数:

-c:只输出匹配行的计数。

-I:不区分大小写(只适用于单字符)。

-h:查询多文件时不显示文件名。

-l:查询多文件时只输出包含匹配字符的文件名。

-n:显示匹配行及行号。

-s:不显示不存在或无匹配文本的错误信息。

-v:显示不包含匹配文本的所有行。

pattern正则表达式主要参数:

:忽略正则表达式中特殊字符的原有含义。

^:匹配正则表达式的开始行。

$: 匹配正则表达式的结束行。

:到匹配正则表达式的行结束。

[ ]:单个字符,如[A]即A符合要求。

[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求。

。:所有的单个字符。

* :有字符,长度可以为0。

正则表达式是Linux/Unix系统中非常重要的概念。正则表达式(也称为―regex‖或―regexp‖)是一个可以描述一类字符串的模式(Pattern)。如果一个字符串可以用某个正则表达式来描述,我们就说这个字符和该正则表达式匹配(Match)。这和DOS中用户可以使用通配符―*‖代表任意字符类似。在Linux系统上,正则表达式通常被用来查找文本的模式,以及对文本执行―搜索-替换‖操作和其它功能。

4.应用实例

查询DNS服务是日常工作之一,这意味着要维护覆盖不同网络的大量IP地址。有时IP地址会超过2000个。如果要查看nnn.nnn网络地址,但是却忘了第二部分中的其余部分,只知到有两个句点,例如nnn nn..。要抽取其中所有nnn.nnn IP地址,使用[0-9 ]{3 }.[0-0{3}。含义是任意数字出现3次,后跟句点,接着是任意数字出现3次,后跟句点。$grep '[0-9 ]{3 }.[0-0{3}' ipfile

补充说明,grep家族还包括fgrep和egrep。fgrep是fix grep,允许查找字符串而不是一个模式;egrep是扩展grep,支持基本及扩展的正则表达式,但不支持q模式范围的应用及与之相对应的一些更加规范的模式。

dd

1.作用

dd命令用来复制文件,并根据参数将数据转换和格式化。

2.格式

dd [options]

3.[opitions]主要参数

bs=字节:强迫ibs=及obs=。

cbs=字节:每次转换指定的。

conv=关键字:根据以逗号分隔的关键字表示的方式来转换文件。

count=块数目:只复制指定的输入数据。

ibs=字节:每次读取指定的。

if=文件:读取内容,而非标准输入的数据。

obs=字节:每次写入指定的。

of=文件:将数据写入,而不在标准输出显示。

seek=块数目:先略过以obs为单位的指定的输出数据。

skip=块数目:先略过以ibs为单位的指定的输入数据。

4.应用实例

dd命令常常用来制作Linux启动盘。先找一个可引导内核,令它的根设备指向正确的根分区,然后使用dd命令将其写入软盘:

$ rdev vmlinuz /dev/hda

$dd if=vmlinuz of=/dev/fd0

python学习笔记

1、python中的函数以def来定义,利用缩进来表示函数的完整性,Python 函数没有明显的begin和end, 没有花括号, 用于标函数的开始和结束。唯一的分隔符是一个冒号(:), 接着代码本身是缩进的。如: def hello(): print “Hello,world\n” hello() #调用hello函数 2、所有的Python 模块都是对象并且有几个有用的属性。您可以使用这些属性方便地测试您所书写的模块。下面是一个使用if__name__的技巧。 if __name__ == "__main__": 3、d = {"server":"mpilgrim", "database":"master"} Python中的hash表,利用key来进行查询值 当使用dictionary 时, 您需要知道: dictionary 的key 是大小写敏感的。 Del d[key]:删除某个值 d.clear:清空整个hash队列 4、li = ["a", "b", "mpilgrim", "z", "example"] Python中的数组 li[0:3]:表示从0-2,结果为:['a', 'b', 'mpilgrim'] append 向 list 的末尾追加单个元素。 insert 将单个元素插入到 list 中。数值参数是插入点的索引。请注意, list 中的元素不必唯一, 现在有两个独立的元素具有 'new' 这个值, li[2] 和li[6]。 extend 用来连接 list。请注意不要使用多个参数来调用 extend, 要使用一个 list 参数进行调用。在本例中, 这个 list 有两个元素。 extend (扩展) 与append (追加)的差别 >>> li = ['a', 'b', 'c'] >>> li.extend(['d', 'e', 'f']) >>> li ['a', 'b', 'c', 'd', 'e', 'f'] >>> len(li) 6 >>> li[-1] 'f' >>> li = ['a', 'b', 'c'] >>> li.append(['d', 'e', 'f']) >>> li ['a', 'b', 'c', ['d', 'e', 'f']] >>> len(li) 4 >>> li[-1] ['d', 'e', 'f'] Lists 的两个方法 extend 和 append 看起来类似, 但实际上完全不同。 extend 接受一个参数, 这个参数总是一个 list, 并且添加这个 list 中的

python笔记

Python语言脚本与开发 1.Python环境 python-decorator-3.4.0-3.el7.noarch python-dmidecode-3.10.13-11.el7.x86_64 python-sss-murmur-1.13.0-40.el7.x86_64 python-netaddr-0.7.5-7.el7.noarch python-dns-1.12.0-1.20150617git465785f.el7.noarch python-ply-3.4-10.el7.noarch python-enum34-1.0.4-1.el7.noarch abrt-addon-python-2.1.11-36.el7.centos.x86_64 python-libs-2.7.5-34.el7.x86_64 cryptsetup-python-1.6.7-1.el7.x86_64 libsemanage-python-2.1.10-18.el7.x86_64 python-pyblock-0.53-6.el7.x86_64 python-pyasn1-0.1.6-2.el7.noarch rpm-python-4.11.3-17.el7.x86_64 python-ethtool-0.8-5.el7.x86_64 python-di-0.3-2.el7.noarch python-backports-ssl_match_hostname-3.4.0.2-4.el7.noarch python-inotify-0.9.4-4.el7.noarch python-dateutil-1.5-7.el7.noarch speech-dispatcher-python-0.7.1-15.el7.x86_64

Python常用内置函数总结

Python常用内置函数总结 一、数学相关 1、绝对值:abs(-1) 2、最大最小值:max([1,2,3])、min([1,2,3]) 3、序列长度:len('abc')、len([1,2,3])、len((1,2,3)) 4、取模:divmod(5,2)//(2,1) 5、乘方:pow(2,3,4)//2**3/4 6、浮点数:round(1)//1.0 二、功能相关 1、函数是否可调用:callable(funcname),注意,funcname变量要定义过 2、类型判断:isinstance(x,list/int) 3、比较:cmp('hello','hello') 4、快速生成序列:(x)range([start,] stop[, step]) 三、类型转换 1、int(x) 2、long(x) 3、float(x) 4、complex(x) //复数 5、str(x) 6、list(x) 7、tuple(x) //元组 8、hex(x) 9、oct(x) 10、chr(x)//返回x对应的字符,如chr(65)返回‘A' 11、ord(x)//返回字符对应的ASC码数字编号,如ord('A')返回65 四、字符串处理 1、首字母大写:str.capitalize 复制代码代码如下:

>>> 'hello'.capitalize() 'Hello' 2、字符串替换:str.replace 复制代码代码如下: >>> 'hello'.replace('l','2') 'he22o' 可以传三个参数,第三个参数为替换次数 3、字符串切割:str.split 复制代码代码如下: >>> 'hello'.split('l') ['he', '', 'o'] 可以传二个参数,第二个参数为切割次数 以上三个方法都可以引入String模块,然后用string.xxx的方式进行调用。 五、序列处理函数 1、len:序列长度 2、max:序列中最大值 3、min:最小值 4、filter:过滤序列 复制代码代码如下: >>> filter(lambda x:x%2==0, [1,2,3,4,5,6]) [2, 4, 6] 5、zip:并行遍历 复制代码代码如下:

黑马程序员python基础班教程笔记使

爬?基本原理 爬?是模拟?户在浏览器或者App应?上的操作,把操作的过程、实现?动化的程序 当我们在浏览器中输??个url后回?,后台会发?什么? 简单来说这段过程发?了以下四个步骤: 查找域名对应的IP地址。 浏览器?先访问的是DNS(Domain Name System,域名系统),dns的主要 ?作就是把域名转换成相应的IP地址 向IP对应的服务器发送请求。 服务器响应请求,发回??内容。 浏览器显示??内容。 浏览器是如何发送和接收这个数据呢? HTTP协议(HyperText Transfer Protocol,超?本传输协议)?的是为了提供?种发布和接收HTML(HyperText Markup Language)??的?法。 HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为?标的HTTP通道,简单讲是HTTP的安全版。 使?urllib爬取数据 1.urlopen( ) 打开?个url的?法,返回?个?件对象,然后可以进?类似?件对象的操作 2.urlretrieve( ) urlretrieve?法将url定位到的html?件下载到你本地的硬盘中。 如果不指定filename,则会存为临时?件。 urlretrieve()返回?个?元组(filename,mine_hdrs) 2.1 不指定路径 说明:清除由于urllib.urlretrieve()所产?的缓存 2.2 指定路径

2.3 urlencode( ) 上?的程序演示了最基本的??抓取,不过,现在?多数?站都是动态? ?,需要你动态地传递参数给它,它做出对应的响应。所以,在访问时,我们需要传递数据给它。最常?的情况是什么?对了,就是登录注册的时候呀。把数据?户名和密码传送到?个URL,然后你得到服务器处理之后的响应,这个该怎么办?下?让我来为?伙伴们揭晓吧!数据传送分为POST和 GET两种?式两种?式有什么区别呢?最重要的区别是GET?式是直接以链接形式访问,链接中包含了所有的参数,当然如果包含了密码的话是?种不安全的选择,不过你可以直观地看到 ??提交了什么内容。 POST则不会在?址上显示所有的参数,不过如果你想直接查看提交了什么就不太?便了,?家可以酌情选择。 这?可以与urlopen结合以实现post?法和get?法: GET?法

Python3基础教程二(个人整理)

Python3 基本数据类型 Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所 指的内存中对象的类型。 等号(=)用来给变量赋值。 等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。 多个变量赋值 Python允许你同时为多个变量赋值。例如: 以上实例,创建一个整型对象,值为 1,从后向前赋值,三个变量被赋予相同的数值。 您也可以为多个对象指定多个变量。例如: 以上实例,两个整型对象 1 和 2 的分配给变量 a 和 b,字符串对象 "zzzzz" 分配给变量 c。标准数据类型 Python3 中有六个标准的数据类型: ?Number(数字) ?String(字符串) ?List(列表) ?Tuple(元组) ?Set(集合) ?Dictionary(字典)

Python3 的六个标准数据类型中: ?不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);?可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。 Number(数字) Python3 支持int、float、bool、complex(复数)。 在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。像大多数语言一样,数值类型的赋值和计算都是很直观的。 内置的 type() 函数可以用来查询变量所指的对象类型。 此外还可以用 isinstance 来判断: isinstance 和 type 的区别在于: ?type()不会认为子类是一种父类类型。 ?isinstance()会认为子类是一种父类类型。

python函数中文手册

内置函数 一,文档说明 原始文档来自于python v2.7.2 中文译文和用法尚不完全,您可以自由修改和完善, 您可以在文档结尾鸣谢添上您的名字,我们将会感谢您做的贡献! 二,函数列表 1,取绝对值 abs(x)

Return the absolute value of a number. The argument may be a plain or long integer or a floating point number. If the argument is a complex number, its magnitude is returned. 如果你不知道绝对值什么意思,那就要补一下小学数学了! 基本用法 2, all(iterable) Return True if all elements of the iterable are true (or if the iterable is empty). Equivalent to: 3. any(iterable)

Return True if any element of the iterable is true. If the iterable is empty, return False. Equivalent to: 4. basestring() This abstract type is the superclass for str and unicode. It cannot be called or instantiated, but it can be used to test whether an object is an instance of str or unicode. isinstance(obj, basestring) is equivalent to isinstance(obj, (str, unicode)). 是字符串和字符编码的超类,是抽象类型。不能被调用或者实例化。可以用来判断实例是否为字符串或者字符编码。 方法: 5.二进制转换 bin(x) Convert an integer number to a binary string. The result is a valid Python expression. If x is not a Python int object, it has to define an __index__() method that returns an integer.

python笔记题带答案

答:从三个方面来说,一对象的引用计数机制,二垃圾回收机制,三内存池机制 一、对象的引用计数机制 Python内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用计数。 引用计数增加的情况: 1,一个对象分配一个新名称 2,将其放入一个容器中(如列表、元组或字典) 引用计数减少的情况: 1,使用del语句对对象别名显示的销毁 2,引用超出作用域或被重新赋值 ( )函数可以获得对象的当前引用计数 多数情况下,引用计数比你猜测得要大得多。对于不可变数据(如数字和字符串),解释器会在程序的不同部分共享内存,以便节约内存。 二、垃圾回收 1,当一个对象的引用计数归零时,它将被垃圾收集机制处理掉。 2,当两个对象a和b相互引用时,del语句可以减少a和b的引用计数,并销毁用于引用底层对象的名称。然而由于每个对象都包含一个对其他对象的应用,因此引用计数不会归零,对象也不会销毁。(从而导致内存泄露)。为解决这一问题,解释器会定期执行一个循环检测器,搜索不可访问对象的循环并删除它们。 三、内存池机制 Python提供了对内存的垃圾收集机制,但是它将不用的内存放到内存池而不是返回给操作系统。 1,Pymalloc机制。为了加速Python的执行效率,Python引入了一个内存池机制,用于管理对小块内存的申请和释放。 2,Python中所有小于256个字节的对象都使用pymalloc实现的分配器,而大的对象则使用系统的malloc。

3,对于Python对象,如整数,浮点数和List,都有其独立的私有内存池,对象间不共享他们的内存池。也就是说如果你分配又释放了大量的整数,用于缓存这些整数的内存就不能再分配给浮点数。 2.什么是lambda函数?它有什么好处? 答:lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数 lambda函数:首要用途是指点短小的回调函数 lambda [arguments]:expression a=lambdax,y:x+y a(3,11) 里面如何实现tuple和list的转换? 答:直接使用tuple和list函数就行了,type()可以判断对象的类型 4.请写出一段Python代码实现删除一个list里面的重复元素 答: 1,使用set函数,set(list) 2,使用字典函数, a=[1,2,4,2,4,5,6,5,7,8,9,0] b={} b=(a) c=list()) c 5.编程用sort进行排序,然后从最后一个元素开始判断 a=[1,2,4,2,4,5,7,10,5,5,7,8,9,0,3] () last=a[-1] for i inrange(len(a)-2,-1,-1): if last==a[i]:

python3内置函数大全

一、数学相关 1、绝对值:abs(-1) 2、最大最小值:max([1,2,3])、min([1,2,3]) 3、序列长度:len('abc')、len([1,2,3])、len((1,2,3)) 4、取模:divmod(5,2)//(2,1) 5、乘方:pow(2,3,4)//2**3/4 6、浮点数:round(1)//1.0 二、功能相关 1、函数是否可调用:callable(funcname),注意,funcname变量要定义过 2、类型判断:isinstance(x,list/int) 3、比较:cmp('hello','hello') 4、快速生成序列:(x)range([start,] stop[, step]) 三、类型转换 1、int(x) 2、long(x) 3、float(x) 4、complex(x) //复数 5、str(x) 6、list(x) 7、tuple(x) //元组 8、hex(x) 9、oct(x)

10、chr(x)//返回x对应的字符,如chr(65)返回‘A' 11、ord(x)//返回字符对应的ASC码数字编号,如ord('A')返回65 四、字符串处理 1、首字母大写:str.capitalize 复制代码代码如下: >>> 'hello'.capitalize() 'Hello' 2、字符串替换:str.replace 代码如下: >>> 'hello'.replace('l','2') 'he22o' 可以传三个参数,第三个参数为替换次数 3、字符串切割:str.split 代码如下: >>> 'hello'.split('l') ['he', '', 'o']

python基础重点梳理笔记

Python变量和数据类型 变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型。 如果字符串本身包含'怎么办?比如我们要表示字符串I'm OK ,这时,可以用" "括起来表示:"I'm OK" 类似的,如果字符串包含",我们就可以用' '括起来表示:'Learn "Python" in imooc'如果字符串既包含'又包含"怎么办? 这个时候,就需要对字符串的某些特殊字符进行转义,Python字符串用\进行转义:'Bob said \"I\'m OK\".' 字符串前面加个前缀r,表示这是一个raw 字符串,里面的字符就不需要转义了。例如:r'\(~_~)/ \(~_~)/' 表示多行字符串,可以用'''...'''表示: ''' Line 1 Line 2 Line 3''' 还可以在多行字符串前面添加 r ,把这个多行字符串也变成一个raw字符串: Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示, 比如:print u'中文' Python中布尔类型 and 和 or 运算的一条重要法则:短路计算。 1. 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。 2. 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于b,因此返回 b。

Python自学笔记

Python学习笔记 在下面的例子中,我们把一个字符串赋值给变量myString,先用print 来显示变量的内容,之后用变量名称来显示。 >>> myString = 'Hello World!' >>> print myString Hello World! >>> myString 'Hello World!' 程序输入: 下划线(_)在解释器中有特别的含义,表示最后一个表达式的值。所以上面的代码执行之后,下划线变量会包含字符串: >>> _ Hello World! Python 的print 语句,与字符串格式运算符( % )结合使用,可实现字符串替换功能,这一点和C 语言中的printf()函数非常相似: >>> print "%s is number %d!" % ("Python", 1) Python is number 1! %s 表示由一个字符串来替换,而%d 表示由一个整数来替换,另外一个很常用的就是%f,它表示由一个浮点数来替换。 在学习Python 的过程中,如果需要得到一个生疏函数的帮助,只需要对它调用内建函数help()。通过用函数名作为help()的参数就能得到相应的帮助信息: >>> help(raw_input) Help on built-in function raw_input in module __builtin__: 注释: 和大部分脚本及Unix-shell 语言一样,Python 也使用# 符号标示注释,从# 开始,直到一行结束的内容都是注释。 >>> # one comment 运算符: 和其他绝大多数的语言一样,Python 中的标准算术运算符以你熟悉的方式工作 + - * / // % **,加、减、乘、除和取余都是标准运算符。双星号(**)是乘方运算符。 Python 有两种除法运算符: 单斜杠用作传统除法,双斜杠用作浮点除法(对结果进行四舍五入)。 传统除法是指如果两个操作数都是整数的话,它将执行是地板除(取比商小的最大整数),而浮点除法是真正的除法,不管操作数是什么类型,浮点除法总是执行真正的除

python学习笔记(一)

python学习笔记(一) 安装 下载python安装包:https://https://www.360docs.net/doc/9c18916400.html,/downloads/ 找到你的下载位置,双击安装

安装成功后,在开始菜单中就会多出几个图标。好了安装完毕可以开始使用了。 IDLE 是Python 的图形用户界面(GUI );Python 是Python 的命令提示符界面(command line )。它两都是和Python 解释器交互的手段。Module Docs 是模块手册,意思是Python 各种模块的说明书。 现在我们使用Python 3.9(64-bit)即命令提示符界面试一下! 输入:print(“Hello,World!”)回车,输入出结果“Hello ,World !” 当然我们最好使用GUI 界面。 这两外界面都是我们Python 交互解释器,也是我们用来执行语句的界面。

基本常识 1、数字和表达式 Python解释器可以当成一个很强大的计算器。下面我们来试一下! >>> 412+845 1257 >>> 12310-54131 -41821 >>> 1454*1321 1920734 >>> 87/84 1.0357142857142858 >>> >>> 4//3 1 >>> 1%2 1 >>> 4^2 6 >>>

值得注意的是: 长整型:对于大于2 147 483 647(231)就必须在数字后面加上“L”表示长整型数。2进制数:前面加0b(如0b1111就是二进制中的1111) 8进制数:前面加0o(如010就是八进制中的10)。 16进制数:前面加0x(如0xAF就是十六进制中的AF)。 >>> 0o10 8 >>> 0b1111 15 >>> 0o10 8 >>> 0xffff 65535 >>> 2、程序的结构

python入门教程3

B u i l t -i n f u n c t i o n d a t a t y p e 常用内置函数数据类型 4

1Python内置数据类型概述 D a t a t y p e s O v e r v i e w 2常用数据类型 C o m m o n d a t a t y p e s 4算数运算符和位运算符 Arithmetic operators and b i t w i s e o p e r a t o r s CONTENT 3比较关系运算和条 件表达式 P y t h o n O v e r v i e w 6内置标准数学函数 B u i l t i n s t a n d a r d mathematical function 5混合运算和数值类 型转换 Mixed operations and numeric type conversions

3 Python内置数据类型概述 ?Python语言中,一切皆为对象,而每个对象都属于某个数据类型。 ?Python的数据类型包括内置的数据类型、模块中定义的数据类型和用户自定义的类型。 ?数值数据类型(int,bool,float,complex) ?序列数据类型(str,tuple,bytes,list,bytearray) ?集合数据类型(set,frozenset) ?字典数据类型(dict) ?特殊数据类型(NoneType,NotImplementedType,EllipsisType) ?其他数据类型(模块,类,对象,函数)

?整数数据类型(int)是表示整数的数据类型。 ?Python的整数数位可以为任意长度数位(只受限制于计算机内存)。?整型对象是不可变对象。

python基础笔记

列表常用方法 元组常用方法 集合常用方法

字典常用方法

格式转换 循环基本语法 for变量名in列表: ____变量相关操作 range的基本语法 格式1:range(m) 生成0 到m-1 的整数 格式2:range(m,n) 生成m 到n-1 的整数 格式3:range(m,n,s) 生成m 到n-1 的整数,整数间隔为s range的应用场景 1.配合for循环构造指定次数的循环 for _ in range(..): ____循环执行的代码 2.快速创建由连续的整数作为数据的列表、元组、集合对象 list(range(..)) tuple(range(..)) set(range(..)) 公共方法

通用运算符 for…else基本语法for 变量名in 列表: 变量相关操作 else: 循环正常运行结束后执行的操作

推导式 推导式基本语法 基础语法格式:循环变量for循环 范例:list1 = [data for data in range(5)] 数据处理语法格式:表达式for循环 范例:list1 = [data*5 for data in range(5)] 数据过滤语法格式:表达式for循环if判断 范例:list1 = [data for data in range(5) if data > 200] 推导式的作用 推导式可以快速生成数据存储结构中的数据 范例1:创建包含1到100所有整数的列表 list1 = [data for data in range(1,101)] 范例2:创建包含1到10的平方和的列表 list2 = [data**2 for data in range(1,11)]

python常用函数年初大总结

1.常用内置函数:(不用import就可以直接使用) help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像函数一样调用 repr(obj) 得到obj的表示字符串,可以利用这个字符串eval重建该对象的一个拷贝 eval_r(str) 表示合法的python表达式,返回这个表达式 dir(obj) 查看obj的name space中可见的name hasattr(obj,name) 查看一个obj的name space中是否有name getattr(obj,name) 得到一个obj的name space中的一个name setattr(obj,name,value) 为一个obj的name space中的一个name指向vale这个object delattr(obj,name) 从obj的name space中删除一个name vars(obj) 返回一个object的name space。用dictionary表示 locals() 返回一个局部name space,用dictionary表示 globals() 返回一个全局name space,用dictionary表示 type(obj) 查看一个obj的类型 isinstance(obj,cls) 查看obj是不是cls的instance issubclass(subcls,supcls) 查看subcls是不是supcls的子类 类型转换函数 chr(i) 把一个ASCII数值,变成字符 ord(i) 把一个字符或者unicode字符,变成ASCII数值 oct(x) 把整数x变成八进制表示的字符串 hex(x) 把整数x变成十六进制表示的字符串

python2.72内置函数手册

Python2.72内置函数 1、文档说明 中文译文和用法尚待完善。 2、函数列表 1,取绝对值 abs(x) Return the absolute value of a number. The argument may be a plain or long integer or a floating point number. If the argument is a complex number, its magnitude is returned. 如果你不知道绝对值什么意思,那就要补一下小学数学了! 基本用法 2, all(iterable)

Return True if all elements of the iterable are true (or if the iterable is empty). Equivalent to: 3. any(iterable) Return True if any element of the iterable is true. If the iterable is empty, return False. Equivalent to: 4. basestring() This abstract type is the superclass for str and unicode. It cannot be called or instantiated, but it can be used to test whether an object is an instance of str or unicode. isinstance(obj,basestring) is equivalent to isinstance(obj,(str,unicode)). 是字符串和字符编码的超类,是抽象类型。不能被调用或者实例化。可以用来判断实例是否为字符串或者字符编码。 方法: 5.二进制转换 bin(x) Convert an integer number to a binary string. The result is a valid Python expression. If x is not a Python int object, it has to define an __index__() method that returns an integer. 转换成二进制表达 方法: 6.布尔类型 bool([x]) Convert a value to a Boolean, using the standard truth testing procedure. If x is false or omitted, this returns False; otherwise it returns True. bool is also a class, which is a subclass of int. Class bool cannot be subclassed further. Its only instances are False and True 布尔类型的转化

Python学习笔记

第二章变量和简单数据类型 在文档——设置文件编码——Unicode中选择utf-8即可。只是每个文档都需要重新设置。 另外如果你用的字体不支持中文也不行,geany不能给中文和英文分别设置字体。Python 2 首行或第二行用# coding:utf-8 在开头加上#coding=gbk或者#coding=utf-8试试 一.概念 1.变量的命名和使用:5条 2.在程序中可随时改变变量的值,而Python将始终记录变量的最新值。 3.在python中,每一句代码都应该顶格写 4.字符串就是一系列字符。在Python中,用引号扩起的都是字符串。 二.方法——修改字符串的大小写 1.title()以首字母大写的方式显示每个单词;字符串/变量.title() 2.upper()将字符串改为全部大写 3.lower()将字符串改为全部小写 三.合并字符串 1.Python使用加号(+)来合并字符串 2.使用制表符或换行符来添加空白 3.要在字符串中添加制表符,可使用字符组合\t,即在字符串前加\t。 4.要在字符串中添加换行符,可使用字符组合\n,即在字符串前加\t。 四.方法——删除空白 1.要确保字符串末尾没有空白,可使用方法rstrip();字符串/变量.rstrip() 注:然而这种删除是暂时的,要永久删除这个字符串中的空白,必须将删除操作的结果存回到变量中。例如:favorite=’python ’; favorite_language=favorite_language.rstrip() ; print(favorite_language) 2.要确保字符串开头没有空白,可使用方法lstrip();字符串/变量.lstrip() 3.同时删除开头和末尾的空白,可使用方法strip() 五.数字 1.整数(int):在Python中可以对整数执行加减乘除运算。 Python使用两个乘号表示乘方;Python还支持运算次序,即用括号来修改运算次序。 2.浮点数:使用浮点数时无需考虑其行为,你只需输入要使用的数字即可。 3.使用函数str()避免类型错误:在字符串中使用整数(int)时,需要显示地指出你希望Python将这个整数用作字符串。为此,可调用函数str():即str(整数)。 第三章列表简介 一.访问列表元素

python_内置函数_练习3

本练习的重点:通过实现与内置函数相同功能的函数来达到锻炼提升编码能力的目的。 1.abs(x)函数 返回一个数的绝对值。 参数可以是一个整数或浮点数。 如果参数是一个复数,则返 回它的模。 如果 x 定义了 abs(),则 abs(x) 将返回 x.abs()。 2.class complex([real[, imag]]) 函数 返回值为 real + imag*1j 的复数,或将字符串或数字转换为复数。如果第一个形参 是字符串,则它被解释为一个复数,并且函数调用时必须没有第二个形参。 当从字符串转换时,字符串在 + 或 - 的周围必须不能有空格。例如 complex('1+2j') 是合法的,但 complex('1 + 2j') 会触发 ValueError 异常。 3.isinstance(object, classinfo) 函数 如果参数 object 是参数 classinfo 的实例或者是其 (直接、间接或 虚拟) 子类则返回 True。 否则返回 False。 如果 classinfo 是类型对象元组(或由其他此类元组递归 组成的元组),那么如果 object 是其中任何一个类型的实例就返回 True。 如果

classinfo 既不是类型,也不是类型元组或类型元组的元组,则将引发 TypeError 异 常。 In [25]:print(abs(-1)) print(abs(-1.212)) print(abs(complex('1+2j'))) # 返回 sqrt(1+4) a = complex('1+2j') 1 1.212 2.23606797749979 请实现下面的函数,模仿abs函数的功能,返回数字的绝对值。 In [23]:import math # 方法1 def my_abs_1(number): if type(number) == int or type(number) == float: if number < 0: return number*(-1) else: return number elif type(number) == complex: return math.sqrt(number.real**2 + number.imag**2) #方法2 # 判断变量类型,可以使用isinstance函数, # 该函数的第一个参数是需要检查类型的对象, # 第二个参数可以是数据类型,也可以是一个元组, # 元组里是多个数据类型,只要满足其中一个就返回True def my_abs_2(number): if isinstance(number, (float,int)): if number < 0: return number*(-1) else: return number elif isinstance(number, complex): return math.sqrt(number.real**2 + number.imag**2) if __name__ == "__main__": print(abs(-1), end = " ") print(abs(-1.212), end = " ") print(abs(complex('1+2j')), end = " \n") print(my_abs_1(-1), end = " ") print(my_abs_1(-1.212), end = " ") print(my_abs_1(complex('1+2j')), end = " \n") print(my_abs_2(-1), end = " ") print(my_abs_2(-1.212), end = " ") print(my_abs_2(complex('1+2j')), end = " ") 1 1.21 2 2.23606797749979 1 1.21 2 2.23606797749979

(完整版)Python基础学习笔记

Python 基础学习笔记 基于《Python语言程序设计基础(第2版)》 第一部分初识Python语言 第1章程序设计基本方法 1.1 计算机的概念 ?计算机是根据指令操作数据的设备,具备功能性和可编程性两个基本特性。 ?计算机技术发展阶段: 1. 第一阶段:1946-1981年,“计算机系统结构阶段”。 2. 第二阶段:1982-2007年,“计算机网络和视窗阶段”。 3. 第三阶段:2008年至今,“复杂信息系统阶段”。 4. 第四阶段:月20年后某个时期开始,“人工智能阶段”。 1.2程序设计语言 1.2.1程序设计语言概述 ?机器语言:直接使用二进制代码表达指令,可被计算机硬件直接识别和执行。不同计算机结构的机器指令不同。 ?汇编语言:使用助记符对应机器语言中的指令,可直接操作计算机硬件。不同计算机结构的汇编指令不同。 机器语言和汇编语言都直接操作计算机硬件并基于此设计,统称“低级语言”。

?高级语言:用更接近自然语言的方式描述计算问题。代码只与编程语言有关,与计算机结构无关。 1.2.2编译和解释 高级语言按执行方式可分为采用编译执行的静态语言和采用解释执行的脚本语言。 ?编译是将源代码转换成目标代码的过程。 ?解释是将源代码逐条转换成目标代码同时逐条运行目标代码的过程。 1.2.3计算机编程 ?我学习Python的原因: 1. 通过编程实现自动化,提高效率。 2. 通过编程了解一个新的广阔世界。 ?学习一门编程语言(重点在于练习) 1. 掌握该语言的语法 2. 结合问题设计程序结构 3. 掌握解决问题的能力 1.3Python语言概述 1.3.1 Python语言的发展 Python语言是一个语法简洁、跨平台、可扩展的开源通用脚本语言。 ?Python语言诞生于1990年,创世人为Guido。 ?2000年10月,Python 2.0正式发布,2010年,Python 2.x系列发布最后一版(2.7)。

python内嵌函数列表

本节介绍的函数在解释器中总是可用的,他们被包含在 __builtin__ 模块里.另外每个模块的 __builtins__ 属性经常指的是这个模块(除了当在restricted execution环境下运行时). _(下划线) 默认情况下,变量 _ 用于在交互模式下表示最近一个表达式的运行结果. 参阅 sys.displayhook (118) __import__(name [, globals [, locals [, fromlist]]]) import语句通过调用这个函数来导入模块. name是包含模块名字的字符串, globals是一个可选的定义全局名称空间的字典, locals是定义局部名称空间的字典, fromlist是from语句目标的列表.例如, import spam语句会调用 __import__('spam', globals(), locals(), []) ,而from spam import foo 语句会调用 __import__('spam', globals(), locals(), ['foo']). 如果模块名在包名字之后(如foo.bar)而且fromlist为空时,就返回对应的模块对象.如果fromlist不为空,则只会返回最顶级的包. 这个函数是一个低等级的模块载入接口.它并不执行import语句的所有步骤(通常情况下局部名称空间并不会随模块中包含对象的名称引用的改变而改变.这个函数可以由用户来重新定义,这样为import语句加入新的行为.默认的执行并不会检查locals参数,而globals只用于决定包的内容(这些参数可以使 __import__()能够完整地访问全局和局部名称空间) abs(x) 返回x的绝对值 apply(func [, args [, keywords]]) 对可调用对象func执行函数调用. args是一个包含固定位置参数的元组, keywords是包含关键参数的字典. apply()函数也可以写做 func(*args ,**keywords ). buffer(sequence [, offset [, size]]) 创建一个新的缓冲器对象.缓冲器通常是一个序列(如字符串)的字节导向序列.缓冲器和字符串在许多地方是相同的,但是它不支持字符串方法,而且也不能使用string模块的函数. callable(object) 当object为可调用对象时返回True,否则返回False

相关文档
最新文档