当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 12 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : python自定义函数问题
帖子发表于 : 2011-01-27 11:17 

注册: 2007-12-18 17:05
帖子: 71
送出感谢: 0 次
接收感谢: 0 次
代码:
def max(a,b):
    if a>b:a=a
    else:a=b

a=3
b=5
max(a,b)
print a


为什么输出是3,而不是5? 意思就是在max当中的赋值只有在max函数当中才能用?为什么?
而以下这个就可以。
代码:
def max(a,b):
    if a>b:a=a
    else:a=b
    print a
a=3
b=5
max(a,b)


页首
 用户资料  
 
2 楼 
 文章标题 : Re: python自定义函数问题
帖子发表于 : 2011-01-27 11:36 
头像

注册: 2009-01-06 15:18
帖子: 13005
地址: 人间
送出感谢: 1
接收感谢: 24
第一个函数定义体内没有print语句...没有返回值..调用结果一直为新附的值
第二为正常调用...


_________________
“有一种被人抛诸脑后的过去,包含一些不该遗忘的点点滴滴。欢笑之余,我将故旧拾起,才刹见自己的薄情。人世间似乎存在着某种公平,每个人都曾被抛掷在他人的遗忘中;而今你所有哽咽难宣的话语,也正是你曾为人所期盼,却永远听不见的字句。” —赫曼 赫塞


页首
 用户资料  
 
3 楼 
 文章标题 : Re: python自定义函数问题
帖子发表于 : 2011-01-27 12:55 

注册: 2007-12-18 17:05
帖子: 71
送出感谢: 0 次
接收感谢: 0 次
remeber Jiraiya 写道:
第一个函数定义体内没有print语句...没有返回值..调用结果一直为新附的值
第二为正常调用...

代码:
def max(a,b):
    if a>b:a=a
    else:a=b

a=3
b=5
max(a,b)
print a


这个里面a=3,b=5的赋值在max(a,b)之前,我的意思是为什么在max(a,b)之后a的值没有变化?如果我有三个数
代码:
def max(a,b):
    if a>b:a=a
    else:a=b

a=1
b=2
c=3

max(a,b)
max(a,c)

我要怎么打印出最大数呢?如果把print a放在max函数内就会打印出第一次对比和第二次对比的结果,我现在只想在最后打印结果该怎么办呢?


页首
 用户资料  
 
4 楼 
 文章标题 : Re: python自定义函数问题
帖子发表于 : 2011-01-27 12:59 

注册: 2007-12-18 17:05
帖子: 71
送出感谢: 0 次
接收感谢: 0 次
以下这个方法可以,但是我就是在想怎么调用对比大小之后的结果,让对比大小之后的结果返回给max, 类似int max(a,b) 可以吗?
代码:
def max(x,y,z):
    if x>y:x=x
    else:x=y
    if x>z:x=x
    else:x=z
    print x
   
a=int (raw_input('enter '))
b=int (raw_input('enter '))
c=int (raw_input('enter '))

max(a,b,c)


页首
 用户资料  
 
5 楼 
 文章标题 : Re: python自定义函数问题
帖子发表于 : 2011-01-27 13:14 
头像

注册: 2008-07-24 11:33
帖子: 4793
地址: 郑州
送出感谢: 4
接收感谢: 92
python的函数都是按值传递的吧,不能修改


_________________
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 绿
Site: CUIHAO.TK    Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~


页首
 用户资料  
 
6 楼 
 文章标题 : Re: python自定义函数问题
帖子发表于 : 2011-01-27 13:17 
头像

注册: 2008-07-24 11:33
帖子: 4793
地址: 郑州
送出感谢: 4
接收感谢: 92
代码:
def max(a, b)
    if a>b:
        return a
    return b


_________________
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 绿
Site: CUIHAO.TK    Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~


页首
 用户资料  
 
7 楼 
 文章标题 : Re: python自定义函数问题
帖子发表于 : 2011-01-27 13:25 
头像

注册: 2009-01-06 15:18
帖子: 13005
地址: 人间
送出感谢: 1
接收感谢: 24
haozi3 写道:
代码:
def max(a,b):
    if a>b:a=a
    else:a=b

a=3
b=5
max(a,b)
print a


这个里面a=3,b=5的赋值在max(a,b)之前,我的意思是为什么在max(a,b)之后a的值没有变化?


没错.附值是在函数之前.但函数里头没有返回值..意思是函数没有起到将比较结果返回的作用.再如何调用也是无用.a只会一直是3

haozi3 写道:
如果我有三个数
代码:
def max(a,b):
    if a>b:a=a
    else:a=b

a=1
b=2
c=3

max(a,b)
max(a,c)

我要怎么打印出最大数呢?如果把print a放在max函数内就会打印出第一次对比和第二次对比的结果,我现在只想在最后打印结果该怎么办呢?


把函数体补充完整...max函数是要求有个返回值的..目前这函数中没有相关语句.


_________________
“有一种被人抛诸脑后的过去,包含一些不该遗忘的点点滴滴。欢笑之余,我将故旧拾起,才刹见自己的薄情。人世间似乎存在着某种公平,每个人都曾被抛掷在他人的遗忘中;而今你所有哽咽难宣的话语,也正是你曾为人所期盼,却永远听不见的字句。” —赫曼 赫塞


页首
 用户资料  
 
8 楼 
 文章标题 : Re: python自定义函数问题
帖子发表于 : 2011-01-27 13:26 

注册: 2007-12-18 17:05
帖子: 71
送出感谢: 0 次
接收感谢: 0 次
cuihao 写道:
python的函数都是按值传递的吧,不能修改


什么意思?能说详细点吗?


页首
 用户资料  
 
9 楼 
 文章标题 : Re: python自定义函数问题
帖子发表于 : 2011-01-27 13:36 

注册: 2007-12-18 17:05
帖子: 71
送出感谢: 0 次
接收感谢: 0 次
这样???
代码:
def max(a,b):
    if a>b:return a
    else:return b

a=3
b=5

max(a,b)
print max(a,b)


remeber Jiraiya 写道:
haozi3 写道:
代码:
def max(a,b):
    if a>b:a=a
    else:a=b

a=3
b=5
max(a,b)
print a


这个里面a=3,b=5的赋值在max(a,b)之前,我的意思是为什么在max(a,b)之后a的值没有变化?


没错.附值是在函数之前.但函数里头没有返回值..意思是函数没有起到将比较结果返回的作用.再如何调用也是无用.a只会一直是3

haozi3 写道:
如果我有三个数
代码:
def max(a,b):
    if a>b:a=a
    else:a=b

a=1
b=2
c=3

max(a,b)
max(a,c)

我要怎么打印出最大数呢?如果把print a放在max函数内就会打印出第一次对比和第二次对比的结果,我现在只想在最后打印结果该怎么办呢?


把函数体补充完整...max函数是要求有个返回值的..目前这函数中没有相关语句.


页首
 用户资料  
 
10 楼 
 文章标题 : Re: python自定义函数问题
帖子发表于 : 2011-01-27 13:45 
头像

注册: 2009-01-06 15:18
帖子: 13005
地址: 人间
送出感谢: 1
接收感谢: 24
[quote="haozi3"]这样???
代码:
def max(a,b):
    if a>b:return a
    else:return b

a=3
b=5

max(a,b)


试试就知道了呀.^^


_________________
“有一种被人抛诸脑后的过去,包含一些不该遗忘的点点滴滴。欢笑之余,我将故旧拾起,才刹见自己的薄情。人世间似乎存在着某种公平,每个人都曾被抛掷在他人的遗忘中;而今你所有哽咽难宣的话语,也正是你曾为人所期盼,却永远听不见的字句。” —赫曼 赫塞


页首
 用户资料  
 
11 楼 
 文章标题 : Re: python自定义函数问题
帖子发表于 : 2011-01-27 13:49 

注册: 2007-12-18 17:05
帖子: 71
送出感谢: 0 次
接收感谢: 0 次
remeber Jiraiya 写道:
haozi3 写道:
这样???
代码:
def max(a,b):
    if a>b:return a
    else:return b

a=3
b=5

max(a,b)


试试就知道了呀.^^



是正确的。我还是看了C的才知道要这么弄。谢谢了。


页首
 用户资料  
 
12 楼 
 文章标题 : Re: python自定义函数问题
帖子发表于 : 2011-01-27 14:43 
头像

注册: 2008-07-24 11:33
帖子: 4793
地址: 郑州
送出感谢: 4
接收感谢: 92
haozi3 写道:
cuihao 写道:
python的函数都是按值传递的吧,不能修改


什么意思?能说详细点吗?


就是说修改函数的形式参数,不会对实际参数造成影响,不会修改传入的变量。

比如
def func(a,b):
a=b
如果调用func(va, vb)并不会修改va。


_________________
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 绿
Site: CUIHAO.TK    Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 12 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译