天天向上-leanter

11月 17, 2007

Python学习笔记-3

归类于: Python学习 — 标签: — daydayup @ 10:33 pm

数值类型

Python中的数值型有4种

一般整数(C语言中的long型) 1234,-24,0,0112,0×9A,0X23FA
长整数(无限大),以”L”或“l”结尾 99L,99201989l
浮点数(C语言中的double型) 1.23,3.2e-10,4e20,4.0e+210
复数 3+4j,2.0+4.0J,3j

8进制数和16进制数

对于一般整数,以数字“0”开头的是8进制数,而以“0x”或“0X”打头的则是16进制数。

>>> 076,010,0xff,0x10
(62, 8, 255, 16)
>>> oct(64),hex(64),hex(254) #内置函数 oct,hex 把整数转化为字串
('0100', '0x40', '0xfe')
>>> int('0100'),int('0100',8),int('100',16),int('0x40',16) # int 把字串变为整数,
...                                                        # 后面的参数表示进制
(100, 64, 256, 64)
>>> eval('0100'),eval('100'),eval('0x40') # eval 函数把输入的字串当作python的命令
(64, 100, 64)
>>> "%o %x %X" % (64,64,255)  # 这是字串的格式化,后面会介绍
'100 40 FF'
>>>

数学函数

Python的数学函数放在模块math中,如sin,cos等

>>> cos(3.24)    #直接使用是没有的
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    cos(3.24)
NameError: name 'cos' is not defined
>>> abs(-2.3)    #还有pow等,它们是内置函数
2.2999999999999998
>>> int(2.3),round(3.4),round(2.3451,3)
(2, 3.0, 2.3450000000000002)
>>> import math
>>> math.cos(2.3) #现在,你可以计算cos了
-0.6662760212798241
>>>

基本运算

>>> 2+3,2.0+3,3*4,3.0**3,2**3,2.3**1.2
(5, 5.0, 12, 27.0, 8, 2.716898432499149)
>>> 2.0-3
-1.0
>>>

Python中的除法,其中的“/”与C语言中的除法一样,当两个整数相除时,会得到一个最大的整数,还有种除法“//”,它对浮点数,也会产生同样的效果

>>> 5/2,5/2.0,5/-2,5/-2.0
(2, 2.5, -3, -2.5)
>>> 5//2,5//2.0,5//-2,5//-2.0
(2, 2.0, -3, -3.0)
>>> 9/3,9.0/3,9//3,9//3.0
(3, 3.0, 3, 3.0)
>>>

其它的还包括,“>,<,>=,<,==,<>,!=”等比较操作,对整数的位操作“x|y,x&y,x^y,x<<y,x>>y”,和取模“%”

>>> 34.0 % 5.0 , 34 %4 , 34 %4.0
(4.0, 2, 2.0)
>>> 3.0>2.0 , 3<2 , 2.0<=3 , 2.0<>3 , 3.0==3
(True, False, True, True, True)
>>> 3|5 , 3&5 , 3^5
(7, 1, 6)
>>> 30<<4 , 128>>4
(480, 8)
>>>

Python学习笔记-2

归类于: Python学习 — 标签: — daydayup @ 10:30 pm

Hello World

不知道是哪个牛人的杰作,几乎所有语言都从这个句子开始。它让你对这种语言有第一眼的认识。

>>> print 'hello world'
hello world
>>>

内置的数据类型

Python的内置数据类型有6种,为

对象类型 例子 Numbers 3.1234, 1234,99L,3+4j
Strings ’spam’,”Leon’s bag”
Lists [1,2,[3,'four']]
dictionaries {’food’:’spam’,'taste’:'yum’}
Tuples (1,’spam’,4,’U')
Files text=open(’egg’,'r’).read()

Python中的变量

Python中,不需要象C++似的,先声名变量的类型,才能使用。Python中的变量有如下特点:

  • 变量在第一次赋值的时候被创建
  • 在表达式中,变量被它的值所代替
  • 变量在使用前,必须要先赋值
  • 变量指向一个对象,不需要事先声名

如:

>>> a=3    #给a赋值为数字对象“3”
>>> a+ 4.0 #计算表达式,a用对象“3”代替
7.0
>>> a='str-ing' # a 又被指向了string对象“str-ing“
>>> print a
str-ing
>>> print b    # b 没有被赋值过,因此出错
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
NameError: name 'b' is not defined
>>> b=a       # b 指向了 a 指向的对象,即string对象“str-ing"
>>> a=99l     # a 变为了指向数值对象99l
>>> print a,b # 此时,b 并没有改变它指向的对象
99 str-ing
>>> a=['1',2,"34"] # a 指向了list型对象
>>> b=a            # b 也是
>>> a[0]=34        # 改变了 a 指向的对象的第1个元素的值
>>> print a,b      # 当然 b 与 a 指向同一个list对象,
[34, 2, '34'] [34, 2, '34']
>>>

Python中有个不同的地方,变量只是对象的 别名 ,而不是真正对象。因此,你可以在任意时候,给变量指向任意类型的对象。

Python学习笔记

归类于: Python学习 — 标签: — daydayup @ 10:28 pm

这是本人学习Python的笔记,不是个Python语言的教程,因此,只记录适合自己 的思路。参考文献: 《Learning Python》,O’Reilly,东南大学出版社,是英文的影印本。 还有就是几个网站,如http://python.cn和Python的doc文档

Python简介

Python是一种面向对象的解释型编程语言。Python的官方介绍是:

Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程。Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发。

它是开源的,可以到http://www.python.org下载并安装,而一般的Linux下都会安装过了。

Python的运行,你可以采用交互方式,如在命令行下敲入

%python
Python 2.4.4 (#2, Apr  5 2007, 20:11:18)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

其中”>>>”就是提示符了,你可以输入Python语法,若是”…”则表示续行,如:

>>>print """hi
...   world"""
hi
  world
>>>

或者使用GUI界面,如IDLE,你可以在这里找到很多。也可以把你的命令写入文本文件,如a.py,然后输入

%python a.py

Python的特色

Python确实是一种十分精彩又强大的语言。它合理地结合了高性能与使得编写程序简单有趣的特色。

简单
Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。
易学
就如同你即将看到的一样,Python极其容易上手。前面已经提到了,Python有极其简单的语法。
免费、开源
Python是FLOSS(自由/开放源码软件)之一。简单地说,你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自 由软件中。FLOSS是基于一个团体分享知识的概念。这是为什么Python如此优秀的原因之一——它是由一群希望看到一个更加优秀的Python的人创 造并经常改进着的。
高层语言
当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
可移植性
由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有 Python程序无需修改就可以在下述任何平台上面运行。 这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、 BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有PocketPC!
解释性
这一点需要一些解释。 一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器 和不同的标记、选项完成。当你运行你的程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。 而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码 运行 程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。事实上,由于你不再需要担心 如何编译程序,如何确保连接转载正确的库等等,所有这一切使得使用Python更加简单。由于你只需要把你的Python程序拷贝到另外一台计算机上,它 就可以工作了,这也使得你的Python程序更加易于移植。
面向对象
Python即支持面向过程的编程也支持面向对象的编程。在 面向过程 的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在 面向对象 的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++和Java相比,Python以一种非常强大又简单的方式实现面向对象 编程。
可扩展性
如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
可嵌入性
你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
丰富的库
Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、 XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这 些功能都是可用的。这被称作Python的“功能齐全”理念。 除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。

Hello world!

归类于: Uncategorized — daydayup @ 12:27 am

Welcome to 学习者网志. This is your first post. Edit or delete it, then start blogging!

Powered by WordPress