7. 函数的定义和调用
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段
函数能提高应用的模块性,和代码的重复利用率。如print()就属于python的内建函数
7.1 函数的定义
#定义函数
def 函数名():
    """函数的说明,主要是说明一下函数的主要功能,这是可选的"""
    函数体,就是代码
    缩进4个空格,多行缩进保持一致
 
函数名的规则和变量名的命名规则保持一致
7.2 函数的调用
调用方式:
函数名()
 
python属于解释型语言,也就是代码需要读一行,解释器解释一行。
因此,函数就像是 定义 的一个变量,必须先定义函数,才能调用函数。

7.3示例
>>> def foo():
...     print("函数体,只有在调用时才会被执行")
... 
>>> foo()
函数体,只有在调用时才会被执行
 
vim test_def_foo.py
#!/usr/bin/env python3
#file name test_def_foo.py
def guess_number():
    print("猜数字游戏开始")
    while True:
        n = input("请输入一个数字:")
        if not n:
            continue
        if n == 'q':
            print('程序退出')
            break
        n = int(n)
        if n == 18:
            print("猜对了")
            break
        elif n >18:
            print("大了哎!")
        else:
            print("小了哎!")
guess_number()
exit("exit")
 
7.4写一个python程序
用户输入一个端口号,返回对应服务名,如没有对应服务,返回未知的服务。
vim search_port_server.py
#!/usr/bin/env python3
#用户输入一个端口号,返回对应服务名,如没有对应服务,返回未知的服务。
#端口查询程序
def foo():
    print("端口查询")
    while True:
        n = input("请输入一个端口:")
        n = n.strip()
        if not n:
            continue
        if n == 'q':
            break
        if n == "80":
            print("HTTP 服务")
        elif n == "22":
            print("SSHD 服务")
        elif n == "21" or n == "20":
            print("FTP 服务")
        elif n == "3306":
            print("Mysql 服务")
        else:
            print("未知服务")
    exit("退出程序...")
foo()










