美文网首页
Python3程序设计指南:01 过程型程序设计快速入门

Python3程序设计指南:01 过程型程序设计快速入门

作者: 瑶曳风尘 | 来源:发表于2019-10-18 11:05 被阅读0次

    大家好,从本文开始将逐渐更新Python教程指南系列,为什么叫指南呢?因为本系列是参考《Python3程序设计指南》,也是作者的学习笔记,希望与读者共同学习。

    .py文件中的每个估计都是顺序执行的,从第一行开始,逐行执行的。    
    

    Python的8个关键要素

    Python的8要素

    1、数据类型

    • int整数(正整数或负整数)
      • Python所能表示的整数大小只受限于机器内存
      • 使用int()可以将字符串转换为整数,允许字符串头尾带有空格,例如:int("68")
    • str字符串(Unicode字符序列)
      • 使用方括号([])来存取字符串序列中的某一项
      • 使用str()几乎可以将任何数据项转换为字符串

    2、对象引用

    • 定义:存储某种数据类型的变量
    • 语法:objectReference=value
    • 不需要预先的声明语句,也不需要指定数据类型
    • 在Python中,"="的作用是将对象引用与内存中的某对象进行绑定,如果对象引用已经存在,就简单的进行绑定,以便引用”=“操作符右面的对象;如果对象引用尚未存在,就由”=“操作符创建对象引用。
    • 限制:不能与任何Python关键字相同
    • Python使用 “动态类型” 机制,也就是说,在任何时刻,只要需要,某个对象引用都可以重新引用一个不同的对象(可以是不同的数据类型)。
    temp = 123
    print(temp, type(temp))
    temp = 'hello'
    print(temp, type(temp))
    
    output:
    123 <class 'int'>
    hello <class 'str'>
    

    3、组合数据类型

    • 元组列表可以用于存储任意数量、任意类型的数据项。元组是固定的,创建之后就不能改变;列表是可变的,在需要的时候,可以插入或者移除数据项。
    • 实质上,列表与元组并不真正存储数据项,而是存放对象引用,创建列表与元组时(以及在列表中插入数据项时),实际上是使用其给定的对象引用的副本,在字面意义项(比如整数或字符串)的情况下,会在内存中创建适当数据类型的对象,而存放在列表或元组中的才是对象引用。
    • 点(存取属性)操作符用于存取某对象的属性

    4、逻辑操作符

    4.1 身份操作符:is。

    • 并不必须对进行比较的对象本身进行检查,is操作符只需要对对象所在的内存地址进行比较——同样的地址存储的是同样的对象。
    a = [1, 'abc']
    b = [1, 'abc']
    print(a is b)
    a = (1, 'abc')
    b = (1, 'abc')
    print(a is b)
    a = b
    print(a is b)
    
    output:
    False
    False
    True
    

    4.2 比较操作符:==、!=、>、>=、<、<=

    • 与身份运算符不同,比较运算符进行的是值比较,即比较两个引用对象所指向的值。
    a = [1, 'abc']
    b = [1, 'abc']
    print(a is b)
    a = (1, 'abc')
    b = (1, 'abc')
    print(a is b)
    a = b
    print(a is b)
    
    output:
    True
    True
    True
    
    • 结链比较
    a = 9
    print(0 <= a <= 10)
    
    output:
    True
    

    4.3 成员操作符:in。

    in来测试成员关系,用not in来测试非成员关系。

    # in运算符
    a = (3, 45, 'hello', {'name': 'lisi'})
    print(45 in a)
    string = 'zhangsan|wanger'
    print('|' in string)
    
    output:
    True
    True
    

    4.4 逻辑运算符:and、or与not。

    • and与or都使用short-circuit逻辑,并返回决定结果的操作数——而不是返回布尔值(除非实际上就是布尔操作数)。
    • not返回布尔型结果

    5、控制流语句

    在Python中,一块代码,也就是说一条或者多条语句组成的序列,称为suit。

    5.1 if语句(if...elif...else...)

    语法:

    if boolean_expression1:
        suite1
    elif boolean_expression2:
        suite2
    else:
        suite3
    

    5.2 while语句

    while语句用于0次或多次执行某个suite,循环执行的次数取决于while循环中布尔表达式的状态,其语法为:

    while boolean_expression:
        suite
    

    5.3 for...in语句

    for循环语句重用了关键字in,其语法为:

    for variable in iterable:
        suite
    

    5.4 基本的异常处理

    Python的很多函数与方法都会产生异常,并将其作为发生错误或重要事件的标志。其语法为:

    try:
        try_suite
    except exception1 as variable1:
        exception_suite1
    ...
    except exceptionN as variableN:
        excetpion_suiteN
    

    其中as variable部分是可选的。

    6、算术操作符

    • int数据类型是固定的,一旦赋值就不能改变
    • 除法操作符(/)产生一个浮点值
    • 剥离操作符(//)产生一个整数值
    • 增强赋值操作符
      • 不可变数据类型:a+=8:a+8之后产生新的int对象,并与a重新绑定
      • 可变数据类型:使用+=后,原始值改变,不会重新绑定
      • a+=b与a=a+b区别:前者只查询一次a的值,有更快的可能性
      • 字符串列表+=和append的区别
        • li = ['aaa','bbb'] li += 'ccc' => li = ['aaa','bbb','c','c','c']
        • li = ['aaa','bbb'] li.append( 'ccc') => li = ['aaa','bbb','ccc']

    7、输入/输出

    • 内置input()函数,用来接收用户的输入,输入之后按Enter键结束输入
    • 内置print()函数可以输出所有python数据类型

    8、函数的创建与调用

    创建函数语法:

    def functionName(arguments): 
        suite
    
    • arguments可选,如果为多个参数,用逗号隔开
    • 每个函数有一个返回值,默认为None,可以使用return value来制定返回值,可以是一个值,也可以是一组值
    • 执行def时会创建一个函数对象,同时创建一个带有指定名的对象引用

    实例

    为了熟悉以上关键要素,我们用一个实例来练习一下:

    创建一个生成随机整数组成的网格程序,用户可以规定需要多少行、多少列,以及整数所在的区域。

    • 首先引入random模块,该模块用于生成随机数:
    import random
    
    • 构建获取用户输入函数

      该函数需要3个参数:msg为提示信息,minimum为最小值,default为默认值。该函数的返回值有两种情况:default(用户没有输入直接按Enter键),或者一个有效的整数。

    def get_int(msg, minimum, default):
        while True:
            try:
                line = input(msg)
                # 如果输入值为空并且default不为None
                if not line and default is not None:
                    return defalut
                # 将输入转为整形
                i = int(line)
                # 如果输入值小于最小值,提示用户
                if i < minimum:
                    print("must be >=", minimum)
                else:
                    return i
            # 异常处理
            except ValueError as e:
                print(e)
    
    • 让用户输入相关的值
    # 用户输入行数
    rows = get_int('rows:', 1, None)
    # 用户输入列数
    columns = get_int('columns', 1, None)
    # 用户输入最小值
    minimum = get_int('minimum(or Enter for 0):', -10000, 0)
    
    default = 1000
    # 如果最小值大于default,default设置为最小值的2倍
    if default < minimum:
        default = 2 * minimum
    
    # 用户输入最大值
    maximum = get_int('maximum (or Enter for' + str(default) + ')', minimum, default)
    
    • 根据用户输入输出随机值:
    row = 0
    while row < rows:
        line = ''
        column = 0
        while column < columns:
            # 生成一个大于minimum,小于maximum的随机整数
            i = random.randint(minimum, maximum)
            s = str(i)
            # 让每个数占10个字符,为了输出整齐
            while len(s) < 10:
                s = ' ' + s
            line += s
            column += 1
        print(line)
        row += 1
    

    以下为输出信息:

    rows:5
    columns7
    minimum(or Enter for 0):-1000
    maximum (or Enter for1000)1000
          -871      -205       426       820       986       369       238
          -389       485       388      -907       243       346      -912
          -885       528        50      -572       744       519      -128
           785      -747      -565      -390       522      -357       933
          -144       947      -949      -409       105       954       708
    

    注:本文知识介绍Python的8个关键要素,但是并没有完全介绍,比如数据类型不只包括整形和字符串,后面的文章中还会详细介绍。

    欢迎关注(C与Python实战)[https://pythoncpp-1254282033.cos.ap-beijing.myqcloud.com/%E5%85%AC%E4%BC%97%E5%8F%B7%E4%BA%8C%E7%BB%B4%E7%A0%81.png]

    相关文章

      网友评论

          本文标题:Python3程序设计指南:01 过程型程序设计快速入门

          本文链接:https://www.haomeiwen.com/subject/mukimctx.html