专栏首页Laoqi's Linux运维专列函数的变量+返回值

函数的变量+返回值

函数的变量:

局部变量全局变量

  • Python中的任何变量都有特定的作用域
  • 在函数中定义的变量一般只能在该函数内部使用,这些只能在程序的特定部分使用的变量我们称之为局部变量
  • 在一个文件顶部定义的变量可供文件中的任何函数调用,这些可以为整个程序所使用的变量称为全局变量

(1)、局部函数:

#!/usr/bin/python

def fun():
    x = 100     ##定义一个内部的函数是 x = 100,只在fun() 内部有效。
    print x

fun()

执行结果:
[[email protected]zhdya01 python]# python 1.py 
100

(2)、全局函数可被局部函数调用

[[email protected]zhdya01 python]# vim 1.py

#!/usr/bin/python

x= "global var"
def fun():
    print x

fun()

执行结果:
[[email protected]zhdya01 python]# python 1.py 
global var

(3、)定义某个值为全局变量

[[email protected] python]# vim 1.py

#!/usr/bin/python

x= 200
def fun():
    x += 11
    print x

fun()
[root@zhdya01 python]# python 1.py 
Traceback (most recent call last):
  File "1.py", line 8, in <module>
    fun()
  File "1.py", line 5, in fun
    x += 11
UnboundLocalError: local variable 'x' referenced before assignment
如上报错是因为x虽然是全局变量,但是仅限于在函数内打印,不可以直接调用,我们需要声明下:

[[email protected] python]# vim 1.py
[[email protected] python]# python 1.py 
211
[[email protected] python]# cat 1.py 
#!/usr/bin/python

x= 200
def fun():
    global x    ##宣称x为全局变量
    x += 11
    print x

fun()

(4)、定义局部变量为全局变量

#!/usr/bin/python

x= 200
def fun():
    global x        ##强制声明为全局变量
    x += 11
    print x
    global y
    y = 1

fun()
print x
print y

输出结果:
211
211
1

(5)、函数变量

#!/usr/bin/python

x= 200
def fun():
    x = 11
    y = 1
    print locals()      ##以字典的形式返回变量的值
fun()

输出结果:
{'y': 1, 'x': 11}

函数的返回值:

  • 函数被调用后会返回一个指定的值
  • 函数调用后默认返回None
  • 指定return 来返回一个值
  • 返回值可以是任意类型
  • 一旦return执行后,函数终止
[[email protected]zhdya01 python]# cat 1.py 
#!/usr/bin/python

def fun():
    print "hello python!"

print fun()

输出结果:
不但输出了 hello python! 而且还输出了一个返回值 None
[[email protected]zhdya01 python]# python 1.py 
hello python!
None

自定义返回值:

[[email protected]zhdya01 python]# cat 1.py 
#!/usr/bin/python

def fun():
    print "hello python!"
    return True
print fun()

输出结果:(返回值可以为任意,例如:字符串,数字,等)
[[email protected]zhdya01 python]# python 1.py 
hello python!
True

一旦return执行后,函数终止:

[[email protected]zhdya01 python]# cat 1.py 
#!/usr/bin/python

def fun():
    print "hello python!"
    return True
    print "abc"
    
print fun()

输出结果:(返回值可以为任意,例如:字符串,数字,等)
[[email protected]zhdya01 python]# python 1.py 
hello python!
True

打印linux系统的进程:

#!/usr/bin/python

import os
import sys

def isNum(p):
   for i in p:
       if i not in '0123456789':
           return False     ##如果不是数字,则返回值为 False
       else:
           return True      ##返回值为 True

for i in os.listdir('/proc'):
    if isNum(i):    ## 相当于 if Ture:
        print i

简写一下如上的脚本:(不需要for循环来遍历了)

#!/usr/bin/python

import os
import sys

def isNum(p):
    if p.isdigit():     ##如果p这个序列里面全部是 数字 则返回一直值:
        return True
    return False
        
for i in os.listdir('/proc'):
    if isNum(i):
        print i

使用到了一个 方法: S.isdigits

字符串的一些方法:
#s为字符串
# s.isalnum()  所有字符都是数字或者字母,为真返回 Ture,否则返回 False。
# s.isalpha()   所有字符都是字母,为真返回 Ture,否则返回 False。
# s.isdigit()     所有字符都是数字,为真返回 Ture,否则返回 False。
# s.islower()    所有字符都是小写,为真返回 Ture,否则返回 False。
# s.isupper()   所有字符都是大写,为真返回 Ture,否则返回 False。
# s.istitle()      所有单词都是首字母大写,为真返回 Ture,否则返回 False。
# s.isspace()   所有字符都是空白字符,为真返回 Ture,否则返回 False。
牛刀小试:
# 习题
#
# 1. 设计一个程序,从终端接收10个数字,并使用自己编写的排序函数,对10个数字排序后输出

def sss():
    n = 0
    list1 = []
    while n < 5:
        i = raw_input("pls input some numbers: ")
        n+=1
        list1.append(i)
    len1 = len(list1)
    print len1
    for i in xrange(0, len1):
        for j in xrange(i+1, len1):
            if int(list1[i]) > int(list1[j]):
                list1[i], list1[j] = list1[j], list1[i]
    return list1

print sss()


# 2. 设计一个函数,接收一个英文单词,从文件中查询该单词的汉语意思并返回

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 初识Python并安装版本的Python

    老七Linux
  • zabbix 告警收敛(Python)研究价值高!

    老七Linux
  • startswith,split,format输出

    老七Linux
  • Python -- 安装

    小Q 等闲变却故人心却道故人心易变。                                                          --- ...

    py3study
  • Python3.4 + pycharm 环境安装 + pycharm使用

    以下主要介绍windows环境下的python安装,作为初用python的萌新,建议只在电脑上装一个python版本就好。

    ITester软件测试小栈
  • 8张思维导图,助你掌握 Python 基础

    思维导图是整理知识的一种非常有效的手段,这里分享几张 Python 基础学习的思维导图,可以帮助自己巩固下基础,有需要的小伙伴可以加紧时间收藏哦!

    一墨编程学习
  • python中any和all如何使用

    python中any()和all()如何使用 和 对于检查两个对象相等时非常实用,但是要注意, 和 是python内置函数,同时numpy也有自己实现的 和 ,...

    企鹅号小编
  • 安装psycopg2碰见的各种错误

    一套新的Linux环境,需要部署个python写的程序,逻辑就是读取EDB数据库,进行一些数据的操作。由于连接的是EDB,需要pg的库psycopg2,当然能从...

    bisal
  • python2.7.10安装配置

    因工作需要使用python 2.7版本,而Centos自带的是python2.6.6。所以得安装python2.7

    py3study
  • Python自学之路

    ‘’坚持不是一件容易的事情,兴趣是最好的老师‘’,等你坚持过后你总会这么对别人侃侃而谈。

    Anymarvel

扫码关注云+社区

领取腾讯云代金券