标签: 教程

  • python的常量

    与变量相似,有些“容器”也可以存储数据,但是不能修改,这些容器我们叫做常量。最常用的常量是π,我们可以定义它为3.14159,然后就不再修改。

    PI = 3.14159
    print(PI * 2)
    

    可以很明显的看到,大写名称在默认情况下表示的是常量,但是python本身没有规定不可更改的”容器”,也就是说,PI也是可以修改内容的,只要记住,大写字母作为变量名的时候表示的是常量就可以了。

  • python变量的作用域

    在编程中,通常变量是有特定的起作用的范围的。这个范围通常包括了:全局范围、指定范围。

    全局范围,顾名思义,在整个程序中都有效;

    指定范围,是在特定的函数中起作用。

    name = '张三'
    def get_a_name():
        name = input('What is your name? ')
    get_a_name()
    print('你好', name)
    

    首先,我们定义了一个变量name,让它的值为张三。接下来,我们定义了一个函数,在函数中,我们要求用户输入一个名字赋值给name变量。如果这个name变量不在函数中,那么结果是值会修改为用户提供的那个,然而,由于它在函数里面,默认情况下,函数里面的变量和全局变量是不同的两个变量。可以理解为一个是name,另一个是get_a_name.name,因此,在函数里面修改name并不会对全局变量name造成变化。结果如下:

    What is your name? 李四
    你好 张三

    默认情况下,函数中的函数属于私有函数,只在函数中起作用,但是我们也是可以修改的,只是不常用。

    name = '张三'
    
    def get_a_name():
        global name
        name = input('What is your name? ')
    
    get_a_name()
    print('你好', name)
    

    这里,我们用关键字global来确定name是全局变量,然后name的改变和前面定义的变量name就保持一致了。

    What is your name? 王五
    你好 王五

  • python的多返回值

    对于大多数编程来说,并不支持多个返回值,而python支持,这也成了python的特性之一。

    我们来计算一下圆的面积和体积,要求用户输入半径。

    def cycleCalculation(r):
        area = 2*3.14*r
        volume = 3.14*r*r
        return area,volume   # 逗号分开多个返回值
    def main():
        radius = int(input('请输入半径:'))
        cyc_area,cyc_volume = cycleCalculation(radius)   # 两个变量接收两个返回值
        print(f"圆的面积是{cyc_area}")
        print(f"圆的体积是{cyc_volume}")
    main()
    

    若要返回多个值,要用逗号分开。当我们输入r=10时,结果如下:

    请输入半径:10
    圆的面积是62.800000000000004
    圆的体积是314.0

  • python的多参数函数

    之前介绍的函数要么是无参数的,要么是单参数的,实际上,python的函数可以有若干个参数。

    比如我们要计算矩形的面积,那么需要长、宽两个参数:

    def area (length,width):
        res = length * width
        return res
    def main():
        chang = int(input('请输入长度'))
        kuan = int(input('请输入宽度'))
        myarea = area(chang,kuan)
        print(f'面积是{myarea}')
    main()
    

    假如我们输入的长是10,宽是5,那么结果为:

    请输入长度10
    请输入宽度5
    面积是50

    请自己想一个例子,把两个参数的代码改成三个参数。

  • python中多个函数的聚合

    前面我们已经写了两个函数,这是最简单的情况,如果我们有一个大项目,里面有数以千计的函数,这就需要把这些函数聚合起来,用简单的命令实现各个过程。通常我们定义一个main()函数来完成这个任务。

    # 定义一个函数,用来获得电话号码
    def phoNumber():
        index = 0
        while index < 1:
            phone_number = input('请输入手机号码: ')
            if len(phone_number) != 11:
                print('电话号码错误!请重新输入!')
            elif not phone_number.isdigit():
                print('请输入有效电话号码!')
            elif phone_number[0] != '1':
                print('无此号码!')
            else:
                index = 1
        return phone_number
    
    # 定义一个函数,用来把电话号码×2
    def double_number(number):
        db_number = number*2
        return db_number
    
    # 定义一个主函数,串联上面两个函数
    def main():
        a = phoNumber()
        b = double_number(int(a))
        print(f"{a}\n{b}")
    
    # 调用主函数
    main()
    

    这里用到了之前学过的所有知识,输入的值是字符型,需要转换成数值型int()才能进行数学运算。当主函数写好后,我们只需要调用主函数,就能实现之前所有定义好的功能。

    我们输入12345678985,看看结果。

    请输入手机号码: 12345678985
    
    12345678985
    24691357970
  • python中function的参数和返回值

    function一词来自数学,过程是一个数通过一个函数的变化成为了另一个数。比如:100,函数设定为×2,那么结果就是200。我们写一个函数来实现这个目的。

    def double_number():
        print(100*2)
    

    结果很简单:

    200

    现在,函数设定好了,我想换一个输入的数值,不是100,而是其他任意的数,这时就用到了参数。参数的作用就是把不同的输入内容传给函数,让函数进行计算。参数写在定义的函数名右侧的括号里。

    def double_number(number):
        print(number*2)
    double_number(50)   # 调用函数
    

    结果很明显是

    50

    再进一步,我不想直接输出结果,我想把它直接放在一个变量里,以便以后使用。直接把double_number(10)赋值给一个变量a能行吗?我们尝试一下。

    def double_number(number):
        print(number*2)
    a = double_number(50)
    print(a)
    

    从结果上来看,很明显是不行的。

    100
    None

    实际上,对于一个函数,是需要设置返回值的,也就是变量能够获得的值,不设置返回值,变量的内容即使None。返回值我们用return表示。

    def double_number(number):
        db_number = number*2
        return db_number
    a = double_number(1)
    print(a)
    

    这次,结果变成2了,因为我们设置的参数是1,1×2=2,正确把函数的值赋值给了一个变量。

    2
  • python的function

    function功能是所有编程语言中最重要的特征之一。function可以用来把重复性的代码打包在一起,保存在一个变量中,再次使用这变量的时候,就可以做之前设置好的分析。

    最简单的function:

    def hello():
        print("Hello!")
    

    上面的代码定义了一个叫hello的函数,调用后会输出Hello!。但是,直接运行上面的代码,不会有任何返回值。定义好以后,只需要用下面的方式就能调用函数(function),调用后就看到输出的内容了。

    hello()
    

    想把让python输出5次hello,可以用for循环:

    def hello():
        print("Hello!")
    for i in range(0,5):
        hello()
    

  • python验证手机号码

    根据之前学习的内容,今天我们来验证一下用户输入的手机号,如果输入的位数错误,会提示错误。

    index = 0
    while index < 1:
        phone_number = input('请输入手机号码: ')
        if len(phone_number) != 11:
            print('电话号码错误!请重新输入!')
        else:
            index = 1
    

    这里用到了一个循环,只要index一直为0,则需要输入到正确的手机号为止,否则会一直循环的要求输入。

    接下来,看看手机号还有什么要求。输入的必须为数字,不能是其他字符,且第一位必须是1。

    index = 0
    while index < 1:
        phone_number = input('请输入手机号码: ')
        if len(phone_number) != 11:
            print('电话号码错误!请重新输入!')
        elif not phone_number.isdigit():
            print('请输入有效电话号码!')
        elif phone_number[0] != '1':
            print('无此号码!')
        else:
            index = 1
    

    剩下的就试试看这些代码的作用吧。

  • python中for循环的另一种用法

    for循环除了直接给出起始和终止数字外,还可以直接用于字符串的循环。比如,我们想把“新年快乐”中的每一个字都单独提取出来,可以用for循环。

    string = '新年快乐'
    for i in string:
        print(i)
    

    在这里,for循环不用在写起始和终止的数字,程序会自动识别。结果为:

    新
    年
    快
    乐
  • python的for循环

    除了while循环,python还提供了一个非常常用的循环,叫做for循环。

    与while不同的是,for循环的变量直接写在语句之中:

    for count in range(0, 4):
        word = input('请写一句话: ')
        first_last = word[0] + word[-1]
        print("你写的第一个和最后一个字是: " + first_last)
    

    这里的range表示从哪里(多少)开始到哪里(多少)结束,我们可以把0改成1,把4改成5,都是4次循环。

    请写一句话: 你是谁
    你写的第一个和最后一个字是: 你谁
    请写一句话: 我不认识你
    你写的第一个和最后一个字是: 我你
    请写一句话: 别说我见过你
    你写的第一个和最后一个字是: 别你
    请写一句话: 再见
    你写的第一个和最后一个字是: 再见

    欢迎更多创意,把for循环玩起来。