Chinaunix首页 | 论坛 | 博客
  • 博客访问: 309781
  • 博文数量: 214
  • 博客积分: 4258
  • 博客等级: 上校
  • 技术积分: 2021
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-02 09:16
个人简介

http://blog.csdn.net/ly21st http://ly21st.blog.chinaunix.net

文章分类

全部博文(214)

文章存档

2018年(16)

2015年(1)

2014年(2)

2012年(22)

2011年(173)

分类: Python/Ruby

2011-09-29 09:28:16

第一章基础知识 1.4 数字和表达式

>>>1/2

3.0版本以前,输出结果为0

如果希望Pythoh只执行普通的除法,可以在程序前加上以下语句,或者直接在解释器里面执行它:

>>>from __future__  import  division

还有一个方法,通过在命令行(如linux系统)运行Python,可以使用命令开关-Qnew。通过上述方法,得到的结果为:

>>>1/2

0.5

1.11.3字符串表示,strrepr

将值转换为字符串的两种机制:

1)通过str函数,它会把值转换成合理形式的字符串

2repr函数,它会创建一个字符串,以合法的python表达式的形式来表示值

 

3.0以前的版本中,反引号``可以代替repr

 

1.11.4 inputraw_input的比较

input假设用户输入的是合法的Python表达式;

raw_input函数会把所有的输入当作原始数据,然后放入字符串。

1.12.1

 

2 列表和元组 2.2  通用序列操作

序列可以进行以下的操作:索引、分片、加、乘以及检查某个元素是否属于序列的成员(成员资格),计算序列长度、找出最大元素和最小元素。

如果一个函数调用返回一个序列,那么可以直接对返回结果进行索引操作。

>>>fourth=raw_input(“year:’)[3]

year:2005

>>>foutth

‘5’

例子:

# Print out a date, given year, month, and day as numbers

 

months = [

    'January',

    'February',

    'March',

    'April',

    'May',

    'June',

    'July',

    'August',

    'September',

    'October',

    'November',

    'December'

]

 

# A list with one ending for each number from 1 to 31

endings = ['st', 'nd', 'rd'] + 17 * ['th'] \

        + ['st', 'nd', 'rd'] +  7 * ['th'] \

        + ['st']

 

year    = raw_input('Year: ')

month   = raw_input('Month (1-12): ')

day     = raw_input('Day (1-31): ')

 

month_number = int(month)

day_number = int(day)

 

# Remember to subtract 1 from month and day to get a correct index

month_name = months[month_number-1]

ordinal = day + endings[day_number-1]

 

结果为:

print month_name + ' ' + ordinal + ', ' + year

Year: 3009

Month (1-12): 11

Day (1-31): 23

November 23rd, 3009

 

分片:

>>> number

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> number[0:10:1]

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> number[0:10:2]

[1, 3, 5, 7, 9]

>>> number[0::4]

[1, 5, 9]

>>> number[8:3:-1]

[9, 8, 7, 6, 5]

>>> number[10:0:-2]

[10, 8, 6, 4, 2]

>>> number[9:0:-2]

[10, 8, 6, 4, 2]

>>> number[::-2]

[10, 8, 6, 4, 2]

>>> number[5::-2]

[6, 4, 2]

>>> number[:5:-2]

[10, 8]

2.3 列表

根据字符串创建列表

>>> list('hello')

['h', 'e', 'l', 'l', 'o']

可以用下面的表达式将一个由字符组成的列表转换成字符串:

‘’.join(somelist)

这里,somelist是需要转换的列表。

>>> a=list('hello')

>>> 

>>> a

['h', 'e', 'l', 'l', 'o']

>>> b=''.join(a)

>>> b

'hello'

 

列表的操作:

1)改变列表:元素赋值;

注意:不能为一个位置不存在的元素进行赋值。

2)删除元素 del names[2]

3)分片赋值:它可以在不需要替换任何原有元素的情况下插入新的元素。

>>> numbers=[1,5]

>>> numbers[1:1]=[2,3,4]

>>> numbers

[1, 2, 3, 4, 5]

以此类推,通过分片赋值来删除元素也是可以的:

>>> numbers

[1, 2, 3, 4, 5]

>>> numbers[1:4]=[]

>>> numbers

[1, 5]

列表方法:

1)      append

2)      count

3)      extend

>>> a=[1,2,3]

>>> b=[4,5,6]

>>> a.extend(b)

>>> a

[1, 2, 3, 4, 5, 6]

>>> 

4)      index:该方法用于从列表中找出某个值第一个匹配项的索引位置:

然而,当没有相应的项相匹配的时候,就会引发一个异常;

5insert:该方法用于将对象插入列表中;

6pop:该方法会移除列表中的一个元素(默认是最后一个),并且返回该元素的值;

注意:pop方法是唯一一个既能修改列表又返回元素值(除了None)的列表方法。

7remove:该方法用于移除列表中某个值的第一个匹配项:

如果不存在于列表中的值,是不会被移除的,而且会引发一个异常。

8reverse 该方法将列表中的元素反向存放;

如果需要对一个序列进行反向迭代,可以使用reversed函数,该函数不返回一个列表,而是返回一个迭代器对象。但使用list函数把返回的对象转换成列表也是可行的:

>>> x=[1,2,3]

>>> list(reversed(x))

[3, 2, 1]

9sort:该方法用于在原位置上进行排序。

>>> x=[4,6,2,1,7,9]

>>> x.sort()

>>> x

[1, 2, 4, 6, 7, 9]

 

注意:

>>> x=[4,6,2,1,7,9]

>>> y=x.sort()

>>> print y

None

 

注意:

>>> x=[4,3,2,1]

>>> y=x[:]

>>> y.sort()

>>> x

[4, 3, 2, 1]

>>> y

[1, 2, 3, 4]

 

注意:

>>> x=[4,3,2,1]

>>> y=x

>>> y.sort()

>>> x

[1, 2, 3, 4]

>>> y

[1, 2, 3, 4]

 

另一个获取已排序的列表副本的方法是,使用sorted 函数:

>>> x=[4,3,2,1]

>>> y=sorted(x)

>>> x

[4, 3, 2, 1]

>>> y

[1, 2, 3, 4]

 

高级排序

通过给sort方法传递函数,函数可以是自定义函数

>>> numbers=[5,2,9,7]

>>> x=numbers

>>> x

[5, 2, 9, 7]

>>> numbers.sort(cmp)

>>> numbers

[2, 5, 7, 9]

 

sort方法有另外两个可选的参数---keyreverse。如果要使用它们,那么就要通过名字来指定(这叫关键字参数)。参数key与参数cmp类似------必须提供一个在排序过程中使用的函数。

例如:

>>> x=['aardvark','abalone','acme','add','aerate']

>>> x.sort(key=len)

>>> x

['add', 'acme', 'aerate', 'abalone', 'aardvark']

       另一个关键字参数reverse是简单的布尔值(True或者是False),指明是否要进行反向排序。

>>> x=[4,6,2,1,7,9]

>>> x.sort(reverse=True)

>>> x

[9, 7, 6, 4, 2, 1]

2.4 元组------不可变序列

空元组可以用没有包含内容的两个圆括号来表示:

>>> ()

()

实现包括一个值的元组方法是------必须加个逗号,即使只有一个值:

>>> 42

42

>>> 42,

(42,)

>>> (42,)

(42,)

>>> 

一个逗号能彻底改变一个表达式的值

>>> 3*(40+2)

126

>>> 3*(40+2,)

(42, 42, 42)

>>> 

 

tuple函数:以一个序列为参数把它转换成元组:

>>> tuple([2,3,4])

(2, 3, 4)

>>> tuple('abc')

('a', 'b', 'c')

>>> tuple((1,2,3))

(1, 2, 3)

 

小结

 

阅读(447) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~