liyihao

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

python学习笔记(七)函数

原链接:http://www.cnblogs.com/vamei/archive/2012/06/01/2529500.html

笔记:

函数学习遇到了问题

 1 #!/usr/bin/env python
 2 #coding=utf-8
 3 #今天开始学习函数
 4 def square_sum(a, b):
 5     c = a**2 + b**2
 6     return c
 7 #其实学习python 过来,一直没有很好的编程的思维,思维总是会受到最初yi脚本的限制
 8 #期待突破吧
 9 
10 #def define 定义函数,square_sum是函数名称,没有明确限制自己记得住就行,最好按功能名称记录
11 #return 可以返回多个值
12     square_sum (9, 6)
13     return (a, b, c)
14 
15 #第12行的 square_sum (9, 6)以为这样,就可以直接返回值,事实证明是错的
16     print (square_sum(9, 6))#也没有执行

都没有执行就很奇怪,然后去了在线的Python编辑器,也是没有输出

 1 #!/usr/bin/env python
 2 #coding=utf-8
 3 #今天开始学习函数
 4 def square_sum(a, b):
 5     c = a**2 + b**2
 6     return c
 7 #其实学习python 过来,一直没有很好的编程的思维,思维总是会受到最初yi脚本的限制
 8 #期待突破吧
 9 
10 #def define 定义函数,square_sum是函数名称,没有明确限制自己记得住就行,最好按功能名称记录
11 #return 可以返回多个值
12 square_sum (9, 6)
13 #return (a, b, c)
14 
15 #第12行的 square_sum (9, 6)以为这样,就可以直接返回值,事实证明是错的
16 print (square_sum(9, 6))#也没有执行

修改以后就可以返回平方和的值了

#上面应该是print 是在函数定义的里面,所以不执行?有大神的话希望回复

 

 

最后贴上完整的笔记

 1 #!/usr/bin/env python
 2 #coding=utf-8
 3 #今天开始学习函数
 4 def square_sum(a, b):
 5     c = a**2 + b**2
 6     return c
 7 #其实学习python 过来,一直没有很好的编程的思维,思维总是会受到最初yi脚本的限制
 8 #期待突破吧
 9 
10 #def define 定义函数,square_sum是函数名称,没有明确限制自己记得住就行,最好按功能名称记录
11 #return 可以返回多个值,且return不是必须的
12 square_sum (9, 6)
13 #return (a, b, c)
14 
15 #第10行的 square_sum (9, 6)以为这样,就可以直接返回值
16 print (square_sum(9, 6))#也没有执行
17 #在shell里面,square_sum(9, 6)是可以直接返回值,print (square_sum(9,6))也可以执行
18 #为什么?已解决
19 
20 
21 a = 1
22 
23 def change_integer(a):#integer 整形
24     a = a + 1
25     return a
26 
27 print (change_integer(a))
28 print (a)
29 #输出结果:
30 #print (change_integer(a))    2
31 #print (a)                    1
32 #用作者的话吧,自己描述也不一定能说清楚
33 #将一个整数变量传递给函数,函数对他进行操作,但是原整数变量a不会发生变化
34 #a = 1 是在内存中创建一个变量a,然后把1赋值给a;基本数据类型变量,变量传递给函数,函数会在内存中赋值一个新的变量,然后完成新的赋值,不会影响原来的变量,称为值传递
35 
36 b = [1, 2, 3]
37 
38 def change_list(b):
39     b[0] = b[0] + 1
40     return b
41 
42 print (change_list(b))
43 print (b)
44 #输出结果:
45 #print (change_list(b))   [2, 2, 3]
46 #print (b)                [2, 2, 3]
47 #对于表,表传递给函数的是一个指针,指针指向序列在的是位置,[0],在函数中对表的操作是在原有的内存中进行,所以list就变化了,称为指针传递
48 
49 #作者留了作业,判断闰年,我觉得我这个渣渣写不出来

 

去完成作业

#首先百度了一下闰年的概念
#能被4整除但不能被100整除,或能被400整除的年份即为闰年

for a in range(2020):
    if a % 4 ==0 and a % 100 !=0:
        print (a)#到这里返回484个值
    elif a % 400 ==0:
        print (a)#到这里返回490个值
#返回一大串,哈哈 #也不知道到底有多少个,算了。那就缩短了时间。。 #1950-2050年间的闰年: #1952,1956,1960,1964,1968,1972,1976,1980,1984,1988,1992,1996,2000 #,2004,2008,2012,2016,2020,2024,2028,2032,2036,2040,2044,2048 #百度1950-2050的闰年有25个 #修改 #for a in range(1949:2051): # if a % 4 ==0 and a % 100 !=0: # print (a)# # elif a % 400 ==0: # print (a)# #然后就报错了。。。 #错误原因是range(1949:2051)用了:号,用冒号是list的索引,记得是[0:5]是第一个元素到第五个元素 for a in range(1950,2051): if a % 4 ==0 and a % 100 !=0: print (a) elif a % 400 ==0: print (a) #返回结果是25个值,跟百度对上了。。。 #然鹅发现不符合作者要求,首先是函数,肯定要用def,还有年月日参数,继续 def run_nian(year): year % 4 ==0 and a % 100 !=0 year % 400 ==0 return True #看了看别人,才明白自己的 def run_nian(year): if year % 4 ==0 and a % 100 !=0: return True if year % 400 ==0: return True #这里还差点,因为在shell里面,输入了run_nian(1991),然后没返回 def run_nian(year): if year % 4 ==0 and a % 100 !=0: return True if year % 400 ==0: return True else: return False #每个人写出来的都不一样,所以我感觉python不要限制住,自己总是限制住在最初的那个,一写就想去模仿或者抄,其实自己写出来才是最重要的吧
#没用到作者的另外另个参数
posted on 2017-09-30 15:25  liyihao  阅读(226)  评论(0)    收藏  举报