设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 31089|回复: 18
打印 上一主题 下一主题

【Python 第52课】 元组

[复制链接]

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
楼主
发表于 2013-8-26 21:09:29 |只看该作者 |倒序浏览
上一次pygame的课中有这样一行代码:
  1. x, y = pygame.mouse.get_pos()
复制代码
这个函数返回的其实是一个“元组”,今天我们来讲讲这个东西。

元组(tuple)也是一种序列,和我们用了很多次的list类似,只是元组中的元素在创建之后就不能被修改。

如:
  1. postion = (1, 2)
  2. geeks = ('Sheldon', 'Leonard', 'Rajesh', 'Howard')
复制代码
都是元组的实例。它有和list同样的索引、切片、遍历等操作(参见25~27课):
  1. print postion[0]
  2. for g in geeks:
  3.     print g
  4. print geeks[1:3]
复制代码
其实我们之前一直在用元组,就是在print语句中:
  1. print '%s is %d years old' % ('Mike', 23)
复制代码
('Mike', 23)就是一个元组。这是元组最常见的用处。

再来看一下元组作为函数返回值的例子:
  1. def get_pos(n):
  2.     return (n/2, n*2)
复制代码
得到这个函数的返回值有两种形式,一种是根据返回值元组中元素的个数提供变量:
  1. x, y = get_pos(50)
  2. print x
  3. print y
复制代码
这就是我们在开头那句代码中使用的方式。

还有一种方法是用一个变量记录返回的元组:
  1. pos = get_pos(50)
  2. print pos[0]
  3. print pos[1]
复制代码
#==== Crossin的编程教室 ====#
微信ID:crossincode
论坛:http://crossin.me
QQ群:312723402

面向零基础初学者的编程课
每天5分钟,轻松学编程



#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

56

积分

注册会员

Rank: 2

沙发
发表于 2013-8-27 11:28:01 |只看该作者

回帖奖励 +1

消灭零回复
回复

使用道具 举报

3

主题

0

好友

161

积分

注册会员

Rank: 2

板凳
发表于 2013-8-29 08:10:26 |只看该作者

回帖奖励 +1

我是来挣金币的
回复

使用道具 举报

0

主题

0

好友

30

积分

新手上路

Rank: 1

地板
发表于 2013-8-30 11:53:52 |只看该作者

回帖奖励 +1

看看。。。。。。
回复

使用道具 举报

0

主题

0

好友

30

积分

新手上路

Rank: 1

5#
发表于 2013-8-30 15:25:47 |只看该作者
金币
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

6#
发表于 2013-8-30 22:38:54 |只看该作者
piaoxu 发表于 2013-8-30 15:25
金币

手快有,手慢无啊
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

389

积分

中级会员

Rank: 3Rank: 3

7#
发表于 2013-9-24 10:34:45 |只看该作者
(x, y) = ('hello', ' world!')
回复

使用道具 举报

1

主题

0

好友

50

积分

注册会员

Rank: 2

8#
发表于 2013-10-12 16:25:34 |只看该作者
想不太明白:既然元组和list这么相似,并且还不能改变元组中元素的值,那么元组主要的用途是什么呢
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

9#
发表于 2013-10-12 17:30:04 |只看该作者
阿努比斯 发表于 2013-10-12 16:25
想不太明白:既然元组和list这么相似,并且还不能改变元组中元素的值,那么元组主要的用途是什么呢 ...

因为没有写权限,tuple比list更快,更安全
有时候你的函数需要返回两个值,就可以使用一个tuple作为返回值,比如
  1. def fn():
  2.     return (1, 2)

  3. c, d = fn()
复制代码
这种写法更方便
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

10#
发表于 2013-10-12 17:30:11 |只看该作者
阿努比斯 发表于 2013-10-12 16:25
想不太明白:既然元组和list这么相似,并且还不能改变元组中元素的值,那么元组主要的用途是什么呢 ...

因为没有写权限,tuple比list更快,更安全
有时候你的函数需要返回两个值,就可以使用一个tuple作为返回值,比如
  1. def fn():
  2.     return (1, 2)

  3. c, d = fn()
复制代码
这种写法更方便
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-11-22 16:38 , Processed in 0.024671 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部