设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 24221|回复: 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
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

19#
发表于 2017-11-2 13:03:39 |只看该作者
Aquamarine 发表于 2017-11-2 00:26
若元组的个数多于2个,是不是可以x, y, z = get_pos(50),a, b, c, d = get_pos(50)?

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

使用道具 举报

3

主题

0

好友

64

积分

注册会员

Rank: 2

18#
发表于 2017-11-2 00:26:54 |只看该作者
若元组的个数多于2个,是不是可以x, y, z = get_pos(50),a, b, c, d = get_pos(50)?
回复

使用道具 举报

0

主题

0

好友

4

积分

新手上路

Rank: 1

17#
发表于 2016-4-21 13:59:49 |只看该作者
学习中
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

16#
发表于 2016-3-3 12:59:50 |只看该作者
james23lt 发表于 2016-3-3 04:36
先生,51课到52课怎么突然就跳到pygame去了,是51课就基本上把基础讲完了吗? ...

当时发课的时候,这里穿插着讲了pygame
入门基础差不多完了。

但pygame不影响这个系列往下看
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

64

积分

注册会员

Rank: 2

15#
发表于 2016-3-3 04:36:40 |只看该作者
先生,51课到52课怎么突然就跳到pygame去了,是51课就基本上把基础讲完了吗?
回复

使用道具 举报

0

主题

1

好友

273

积分

中级会员

Rank: 3Rank: 3

14#
发表于 2016-2-1 11:18:45 |只看该作者
get it~
回复

使用道具 举报

0

主题

1

好友

132

积分

注册会员

Rank: 2

13#
发表于 2015-12-11 14:33:14 |只看该作者
get
回复

使用道具 举报

0

主题

0

好友

558

积分

高级会员

Rank: 4

12#
发表于 2014-9-27 00:03:42 |只看该作者
以前还没注意到这个,又长知识了。
学习,纯粹。
回复

使用道具 举报

1

主题

0

好友

50

积分

注册会员

Rank: 2

11#
发表于 2013-10-13 09:49:52 |只看该作者
crossin先生 发表于 2013-10-12 17:30
因为没有写权限,tuple比list更快,更安全
有时候你的函数需要返回两个值,就可以使用一个tuple作为返回 ...

明白了,多谢解释
回复

使用道具 举报

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

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

GMT+8, 2024-5-12 17:47 , Processed in 0.029767 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部