zoukankan      html  css  js  c++  java
  • 7、函数

    语法:
    1. def fun_name():            --不带参数的函数
          print xxx
      def fun_name(name,age):        --带参数的函数
          print ’hi ,%s ,you are %s  years old'%(name,age)
    示例:
    1. >>> def hi():
      ...  print 'hello!'
      ... 
      >>> hi()
      hello!
      >>> 
      >>> def hi2(name):
      ...  print 'hello , %s'%name
      ... 
      >>> hi2('lk')
      hello , lk
     
    参数,可以给默认值,这样调用的时候可以不输入参数:
    1. >>> def hi3(name='lk'):
      ...  print 'hi,%s'%name
      ... 
      >>> hi3()
      hi,lk
      >>> hi3('tom')
      hi,tom
     
    带默认值的参数要放在后面,调用函数可以指定参数名
    1. [root@likun python_scripts]# cat 11fun.py 
      #
      !/usr/bin/python def emp(a,b,c=10,d=20): return'%s,%s,%s,%s'%(d,c,b,a) print emp(1,2) print emp(b=2,a=1) print emp(1,2,3) print emp(1,2,d=30) [root@likun python_scripts]# python 11fun.py 20,10,2,1 20,10,2,1 20,3,2,1 30,10,2,1
    局部变量和全局变量
    局部变量在函数外不可调用:
    1. [root@likun python_scripts]# cat 11fun.py 
      #!/usr/bin/python
      def emp():
              list=[]
              list.append('lk')
              list.append('tom')
              print list
              returnlist        #函数返回值
      print emp()                #用来将函数赋值到变量
      print 'local var is not enable:!',list
    2. [root@likun python_scripts]# python 11fun.py 
      ['lk','tom']
      ['lk','tom']
      local var is not enable:!<type 'list'>
    全局变量,需先定义成global: 
    1. [root@likun python_scripts]# cat 11fun.py 
      #!/usr/bin/python
      def emp():
              global list
              list=[]
              list.append('lk')
              list.append('tom')
              print 'local var:',list
              returnlist
      print emp()
      list.append('jack')
      print 'global var is not enable:!',list
    2. [root@likun python_scripts]# python 11fun.py 
      local var:['lk','tom']
      ['lk','tom']
      global var is enable:!['lk','tom','jack']
    小练习:
    用函数写一个程序,列出/etc/init.d下所有进程(以4列显示并对齐),
    让用户选择操作某个进程的相应命令【start|stop】等,不写默认status:如
    输入:mysql start:执行启动命令
    输入:mysql    :执行查看状态命令
     
    1. [root@likun python_scripts]# cat 11fun.py 
      #!/usr/bin/python
      import os,sys
      os.chdir('/etc/init.d')
      service_list=os.listdir('/etc/init.d')
      def run(servicename,action='status'):
              #if action=='': action='status'
              cmd ='service %s %s'%(servicename,action)
              print cmd
              os.system(cmd)
      i=0
      for service in service_list:
              i=i+1
              print service,
              if i%4!=0  :
                      print (' '*(15-len(service))),        #输出4列并对齐
              else:
                      print '' 
      whileTrue:
              option = raw_input('
      Please input your option:')
              if len(option.split())==2:        #判断输入的参数个数
                      servicename=option.split()[0]
                      action=option.split()[1]
                      run(servicename,action)
              elif len(option.split())==1:
                      run(option)
              else:
                      print 'wrong input!'
                      continue
    1. [root@likun python_scripts]# python 11fun.py 
      rpcidmapd        sssd             lvm2-monitor     halt 
      postfix          cgconfig         restorecond      rpcgssd 
      kdump            avahi-daemon     rpcsvcgssd       rpcbind 
      ip6tables        mcelogd          rdisc            rsyslog 
      rhnsd            ntpd             mysql            netconsole 
      nslcd            sandbox          vsftpd           single 
      autofs           zabbix_server    sshd             mdmonitor 
      netfs            haldaemon        network          messagebus 
      oddjobd          postgresql       httpd            crond 
      sysstat          nagios           nfslock          psacct 
      ypbind           iptables         functions        killall 
      cgred            saslauthd        atd              snmptrapd 
      snmpd            zabbix_agentd    certmonger       auditd 
      cpuspeed         microcode_ctl    smartd           acpid 
      nscd             nfs              udev-post        irqbalance 
      abrtd            ntpdate          
      Please input your option:mysql restart    
      service mysql restart
      Shutting down MySQL.                                       [  OK  ]
      StartingMySQL..                                           [  OK  ]
      Please input your option:
  • 相关阅读:
    解决远程桌面复制文件大于3G出错问题
    c++builder Form重载WindowProc、WndProc 截获消息
    FireDAC指定mssql驱动
    C++Builder 增加IPEdit控件
    MySQL 字符串按数值进行排序
    Java POI导出Word表格并使用输出流下载文件弹出打开保存框
    Java POI导出Excel并使用输出流下载文件弹出打开保存框
    MySQL 查询除某些字段以外的值
    MySQL 一个字段多个值查询
    Java Calendar 计算两个时间相隔天数
  • 原文地址:https://www.cnblogs.com/kissdb/p/4009592.html
Copyright © 2011-2022 走看看