Crossin的编程教室
标题: 【Python 第21课】 函数的参数 [打印本页]
作者: crossin先生 时间: 2014-4-24 18:16
标题: 【Python 第21课】 函数的参数
今天发现了一个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。
作者: cross 时间: 2015-4-21 11:22
def sayHello(someone):
print someone + ' says Hello!'
作者: lovia 时间: 2015-5-27 20:37
- def select_max(num1,num2):
- if num1<num2:
- print "%s>%s"%(num2,num1)
- else:
- print "%s<%s"%(num2,num1)
- print "input two numbers to compare which one is max"
- print "input number1,and enter do the next"
- num1=input()
- print "input number2,and enter do the result"
- num2=input()
- select_max(num1,num2)
复制代码
作者: catherinemic 时间: 2015-12-29 15:09
- def select_max(num1,num2):
- if num1<num2:
- print '%s>%s'%(num2,num1)
- else:
- print '%s>%s'%(num1,num2)
- print "Let's compare numbers!"
- print 'please enter the first number:'
- num1=input()
- print 'please enter the second number:'
- num2=input()
- select_max(num1,num2)
复制代码 为什么我输入的值是整数,可是字符串格式化的时候%后面写s, d或.of都可以得到正确答案呢?
作者: crossin先生 时间: 2015-12-30 15:41
catherinemic 发表于 2015-12-29 15:09
为什么我输入的值是整数,可是字符串格式化的时候%后面写s, d或.of都可以得到正确答案呢? ...
程序自动帮你做了一次类型转换,把int转成了str或者float
作者: catherinemic 时间: 2015-12-31 11:14
crossin先生 发表于 2015-12-30 15:41
程序自动帮你做了一次类型转换,把int转成了str或者float
懂了,谢谢crossin老师~~
作者: 对不起我是保镖 时间: 2016-4-5 19:28
本帖最后由 对不起我是保镖 于 2016-4-7 10:08 编辑
作者: 对不起我是保镖 时间: 2016-4-7 10:08
crossin先生 发表于 2016-4-5 20:04
求别地域黑
连续两次被郑州人骗。内心苦啊。。唉
现在没那么生气了。。我把帖子删掉
作者: Killuia 时间: 2016-5-5 21:39
刚才尝试了
def sayHello(someone):
print someone+ ' ''says Hello!'
sayHello('Mike')
sayHello('Nick')
sayHello('Soul')
之前第一次觉得直接输出的结果名字后面没有空一格强迫症发作,摸索着想加一个空格,试了几次后醒悟,普通的一个空格在命令中是没有意义的,要将它变成字符串才可以显示出来,嗯好了,我自我满足一阵先
欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) |
Powered by Discuz! X2.5 |