设为首页收藏本站

Crossin的编程教室

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

【Python 第21课】 函数的参数

[复制链接]

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
楼主
发表于 2014-4-24 18:16:20 |只看该作者 |倒序浏览
今天发现了一个iPad上的游戏,叫Cargo-Bot。这个游戏需要你用指令控制一个机械臂去搬箱子。游戏里蕴含了很多编程的思想,包括循环、函数调用、条件判断、寄存器、递归等等,挺有意思的。更厉害的是,这个游戏是用一个叫Codea的app直接在iPad上编写出来的。有iPad的同学不妨玩玩看,挑战一下你的“程商”。

言归正传,在19课里,我们讲了怎样定义一个自己的函数,但我们没有给他提供输入参数的功能。不能指定参数的函数就好比你去餐厅吃饭,服务员告诉你,不能点菜,有啥吃啥。这显然不能满足很多情况。

所以,如果我们希望自己定义的函数里允许调用者提供一些参数,就把这些参数写在括号里,如果有多个参数,用逗号隔开,如:

def sayHello(someone):
   print someone + ' says Hello!'

或者

def plus(num1, num2):
   print num1+num2

参数在函数中相当于一个变量,而这个变量的值是在调用函数的时候被赋予的。在函数内部,你可以像过去使用变量一样使用它。

调用带参数的函数时,同样把需要传入的参数值放在括号中,用逗号隔开。要注意提供的参数值的数量和类型需要跟函数定义中的一致。如果这个函数不是你自己写的,你需要先了解它的参数类型,才能顺利调用它。

比如上面两个函数,我们可以直接传入值:

sayHello('Crossin')
还是注意,字符串类型的值不能少了引号。

或者也可以传入变量:

x = 3
y = 4
plus(x, y)

在这个函数被调用时,相当于做了num1=x, num2=y这么一件事。所以结果是输出了7。

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

使用道具 举报

0

主题

0

好友

215

积分

中级会员

Rank: 3Rank: 3

沙发
发表于 2015-4-21 11:22:26 |只看该作者
def sayHello(someone):
   print someone + ' says Hello!'
回复

使用道具 举报

0

主题

0

好友

54

积分

注册会员

Rank: 2

板凳
发表于 2015-5-27 20:37:25 |只看该作者
  1. def select_max(num1,num2):
  2.     if num1<num2:
  3.         print "%s>%s"%(num2,num1)
  4.     else:
  5.         print "%s<%s"%(num2,num1)
  6. print "input two numbers to compare which one is max"
  7. print "input number1,and enter do the next"
  8. num1=input()
  9. print "input number2,and enter do the result"
  10. num2=input()
  11. select_max(num1,num2)
复制代码
回复

使用道具 举报

0

主题

1

好友

273

积分

中级会员

Rank: 3Rank: 3

地板
发表于 2015-12-29 15:09:12 |只看该作者
  1. def select_max(num1,num2):
  2.     if num1<num2:
  3.         print '%s>%s'%(num2,num1)
  4.     else:
  5.         print '%s>%s'%(num1,num2)
  6. print "Let's compare numbers!"
  7. print 'please enter the first number:'
  8. num1=input()
  9. print 'please enter the second number:'
  10. num2=input()
  11. select_max(num1,num2)
复制代码
为什么我输入的值是整数,可是字符串格式化的时候%后面写s, d或.of都可以得到正确答案呢?
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

5#
发表于 2015-12-30 15:41:28 |只看该作者
catherinemic 发表于 2015-12-29 15:09
为什么我输入的值是整数,可是字符串格式化的时候%后面写s, d或.of都可以得到正确答案呢? ...

程序自动帮你做了一次类型转换,把int转成了str或者float
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

1

好友

273

积分

中级会员

Rank: 3Rank: 3

6#
发表于 2015-12-31 11:14:33 |只看该作者
crossin先生 发表于 2015-12-30 15:41
程序自动帮你做了一次类型转换,把int转成了str或者float

懂了,谢谢crossin老师~~
回复

使用道具 举报

0

主题

0

好友

34

积分

新手上路

Rank: 1

7#
发表于 2016-4-5 19:28:25 |只看该作者
本帖最后由 对不起我是保镖 于 2016-4-7 10:08 编辑


捕获.PNG
回复

使用道具 举报

0

主题

0

好友

34

积分

新手上路

Rank: 1

8#
发表于 2016-4-7 10:08:24 |只看该作者
crossin先生 发表于 2016-4-5 20:04
求别地域黑

连续两次被郑州人骗。内心苦啊。。唉


现在没那么生气了。。我把帖子删掉
回复

使用道具 举报

0

主题

0

好友

120

积分

注册会员

Rank: 2

9#
发表于 2016-5-5 21:39:08 |只看该作者
刚才尝试了
def sayHello(someone):
    print someone+ ' ''says Hello!'

sayHello('Mike')
sayHello('Nick')
sayHello('Soul')
之前第一次觉得直接输出的结果名字后面没有空一格强迫症发作,摸索着想加一个空格,试了几次后醒悟,普通的一个空格在命令中是没有意义的,要将它变成字符串才可以显示出来,嗯好了,我自我满足一阵先
回复

使用道具 举报

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

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

GMT+8, 2024-11-25 09:09 , Processed in 0.018287 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部