zoukankan      html  css  js  c++  java
  • 函数及变量的类型167

      1 print('可变对象在函数里修改了参数,那么在调用这个函数的函数里,原始的参数也被改变了。例如:')
      2 '演示列表的打印'
      3 listdemo=[]
      4 listdemo.append([11,22,33])
      5 print(listdemo)
      6 
      7 '调用函数演示'
      8 def changme1(mylist):
      9     mylist.append([1,2,3,4,5])
     10     # print(mylist)
     11     return
     12 
     13 mylist=[10,20,30]
     14 changme1(mylist)
     15 print(mylist)
     16 
     17 print('调用函数传参类型-------------------------------------------------------------')
     18 '--必传参数'
     19 def printme(str):
     20     print(str)
     21     return
     22 printme('heheda')
     23 
     24 '--关键字参数'
     25 def keyword_parameter(str):
     26     print(str)
     27     return
     28 
     29 keyword_parameter(str='i am hehe')
     30 
     31 '--调用时不需要指定顺序'
     32 def parameter_noorder(name,age):
     33     print(name,end='')
     34     print(age)
     35     return
     36 parameter_noorder(90,'老奶奶')#只传入参数的值的话,值按函数的顺序顺序进行分配:90老奶奶
     37 parameter_noorder(age=90,name='老爷爷')#既传入参数的值也传入参数名的话,会按函数体进行执行:老爷爷90
     38 
     39 '--使用默认参数'
     40 def parameter_acquescent(name,age=22):
     41     print(name,end=',')
     42     print(age)
     43     return
     44 parameter_acquescent('张三')#没有穿参数的话使用默认参数:张三,22
     45 parameter_acquescent('李四',24)#传了参数到时候使用传了的参数:李四,24
     46 #parameter_acquescent(age=24)#丢个参数会出错
     47 parameter_acquescent(name='王五')
     48 
     49 '--不定长参数'
     50 def length_change(arg1,*vartuple):
     51      print('呵呵哒:%s'%arg1)
     52      print(*vartuple)#变量名前有没有*都行
     53      return
     54 length_change(10,20,30,40,50)
     55 
     56 '---打印出元组中的元素'
     57 def length_change1(arg1,*vartuple1):
     58     print(arg1)
     59     for var in vartuple1:
     60         print(vartuple1)
     61     return
     62 
     63 length_change1(10)
     64 length_change(11,22,33,44)
     65 '---导入字典类型参数'
     66 def length_change3(agr3,**vardict):
     67     print(agr3)
     68     print(vardict)
     69     return
     70 length_change3(33)
     71 length_change3(33,a=11,b=22)
     72 # length_change3(1,2,3,4,5,6)#这样写会出错
     73 print('---单独出现*必须以关键字传入')
     74 def jo1 (a,b,*,c):
     75     return a+b+c
     76 # print(jo1(1,2,3,))#这样写会出错
     77 
     78 print(jo1(1,2,c=3))#这样写则是正确的
     79 
     80 jo01=jo1(1,2,c=5)
     81 print(jo01)
     82 
     83 print('--匿名函数lambda')
     84 sum = lambda arg1,arg2 :arg1+arg2
     85 print(sum(10,20))
     86 print(sum(11,22))
     87 
     88 print('--return语句')
     89 def sum(arg1,arg2):
     90     total=arg1+arg2
     91     return total
     92 
     93 jo_sum = sum(10,20)
     94 print(jo_sum)
     95 '或者这样写'
     96 print(sum(11,22))
     97 
     98 
     99 print('--全局变量与局部变量')
    100 total3=2
    101 def sum3(arg3,arg4):
    102     total3=arg3+arg4
    103     print(total3)
    104     return total3
    105 
    106 jo3=sum3(22,33)
    107 print(jo3)
    108 
    109 sum3(11,55)#f返回值:66,调用函数及函数中的功能
    110 
    111 print(total3)#返回至为:2,调用了全局变量total3=2
    112 
    113 print('--当内部作用域想修改外部作用域的变量时,就要用到global')
    114 num = 44
    115 def jo4():
    116     num=55
    117     print(num)
    118     return
    119 '这句话是调用函数的意思'
    120 jo4()
    121 
    122 
    123 '比较上下两种写法的不同'
    124 num = 11
    125 def jo4():
    126     global num
    127     print('呵呵哒',num)
    128     num=10
    129     print(num)
    130     return
    131 jo4()
    132 
    133 print('如果要修改嵌套作用域(enclosing 作用域,外层非全局作用域)中的变量则需要 nonlocal 关键字了,如下实例:')
    134 def outer():
    135     num=11
    136     def inner():
    137         num=22
    138         print(num)
    139     inner()
    140     print(num)
    141 outer()
    142 
    143 '--内部使用外部的'
    144 def outer():
    145     num=11
    146     def inner():
    147         nonlocal num#这句话的意思可以通俗的理解为打破界限
    148         num=22
    149         print(num)
    150     inner()
    151     print(num)
    152 outer()
    153 
    154 
    155 print('特殊情况')
    156 a=10
    157 def sum():
    158     a =a +10
    159     return
    160 sum()
    161 '上面这段代码会出错注释掉,下面的可以正常执行'
    162 def sum():
    163     a = 10
    164     a =a +10
    165     print(a)
    166     return
    167 sum()
  • 相关阅读:
    计算机中丢失OPENGL.dll
    BAT或赌在当下或押在未来,谁是王者?
    singleton
    计算机原理扫盲
    汇编扫盲
    sublime text 3 使用过程总结记录
    sublime text3侧边栏主题不生效问题解决
    atom初体验
    Sublime Text 3 快捷键总结
    微信后台开发第一步:nodeJS+express接入微信后台详细教程
  • 原文地址:https://www.cnblogs.com/jpr-ok/p/9210417.html
Copyright © 2011-2022 走看看