第5章 Python3 基础语法教程

编码

默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。 当然尊敬的读者您也可以为源码文件指定不同的编码:


    # -*- coding: cp-1252 -*-

上述定义允许在源文件中使用 Windows-1252 字符集中的字符编码,对应适合语言为保加利亚语、白罗斯语、马其顿语、俄语、塞尔维亚语。


标识符

  • 第一个字符必须是字母表中字母或下划线 _ 。
  • 标识符的其他的部分由字母、数字和下划线组成。
  • 标识符对大小写敏感。

在 Python 3 中,可以用中文作为变量名,非 ASCII 标识符也是允许的了。


python保留字

保留字即关键字,咱们不能把它们用作任何标识符名称。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:


    >>> import keyword
    >>> keyword.kwlist
    ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']


注释

Python中单行注释以 # 开头,实例如下:


    实例(Python 3.0+) 
     
    
    #!/usr/bin/python3
     
    # 第一个注释
    print ("Hello, Python!") # 第二个注释

执行以上代码,输出结果请在输出结果查看


    Hello, Python!

多行注释可以用多个 # 号,还有 ‘’’ 和 “”":


    实例(Python 3.0+) 
     
    
    #!/usr/bin/python3
     
    # 第一个注释
    # 第二个注释
     
    '''
    第三注释
    第四注释
    '''
     
    """
    第五注释
    第六注释
    """
    print ("Hello, Python!")

执行以上代码,输出结果请在输出结果查看


    Hello, Python!


行与缩进

python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 。

缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。实例如下:


    实例(Python 3.0+)
    
    if True:
        print ("True")
    else:
        print ("False")

以下代码最后一行语句缩进数的空格数不一致,会导致运行错误:


    实例 
    if True:
    
        print ("Answer")
    
        print ("True")
    
    else:
    
        print ("Answer")
    
      print ("False")    # 缩进不一致,会导致运行错误

以上程序由于缩进不一致,执行后会出现类似以下错误:


    File "test.py", line 6
        print ("False")    # 缩进不一致,会导致运行错误
                                          ^
    IndentationError: unindent does not match any outer indentation level


多行语句

Python 通常是一行写完一条语句,但如果语句很长,咱们可以使用反斜杠 \ 来实现多行语句,例如:


    total = item_one + \
            item_two + \
            item_three

在 [], {}, 或 () 中的多行语句,不需要使用反斜杠 \,例如:


    total = ['item_one', 'item_two', 'item_three',
            'item_four', 'item_five']


数字(Number)类型

python中数字有四种类型:整数、布尔型、浮点数和复数。

  • int (整数), 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
  • bool (布尔), 如 True。
  • float (浮点数), 如 1.23、3E-2
  • complex (复数), 如 1 + 2j、 1.1 + 2.2j

字符串(String)

  • Python 中单引号 ’ 和双引号 " 使用完全相同。
  • 使用三引号(‘’’ 或 “”")可以指定一个多行字符串。
  • 转义符 \。
  • 反斜杠可以用来转义,使用 r 可以让反斜杠不发生转义。 如 r"this is a line with \n" 则 \n 会显示,并不是换行。
  • 按字面意义级联字符串,如 "this " "is " “string” 会被自动转换为 this is string
  • 字符串可以用 + 运算符连接在一起,用 * 运算符重复。
  • Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
  • Python 中的字符串不能改变。
  • Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
  • 字符串的截取的语法格式如下:变量[头下标:尾下标:步长]

    word = '字符串'
    sentence = "这是一个句子。"
    paragraph = """这是一个段落,
    可以由多行组成"""


    实例(Python 3.0+) 
     
    
    
    #!/usr/bin/python3
     
    str='123456789'
     
    print(str)                 # 输出字符串
    print(str[0:-1])           # 输出第一个到倒数第二个的所有字符
    print(str[0])              # 输出字符串第一个字符
    print(str[2:5])            # 输出从第三个开始到第五个的字符
    print(str[2:])             # 输出从第三个开始后的所有字符
    print(str[1:5:2])          # 输出从第二个开始到第五个且每隔一个的字符(步长为2)
    print(str * 2)             # 输出字符串两次
    print(str + '尊敬的读者您好')         # 连接字符串
     
    print('------------------------------')
     
    print('hello\nphlcsdn2023csdn')      # 使用反斜杠(\)+n转义特殊字符
    print(r'hello\nphlcsdn2023csdn')     # 在字符串前面添加一个 r,表示原始字符串,不会发生转义

这里的 r 指 raw,即 raw string,会自动将反斜杠转义,例如:


    >>> print('\n')       # 输出空行
    
    >>> print(r'\n')      # 输出 \n
    \n
    >>>

以上实例输出结果请在输出结果查看


    123456789
    12345678
    1
    345
    3456789
    24
    123456789123456789
    123456789尊敬的读者您好
    ------------------------------
    hello
    phlcsdn2023
    hello\phlcsdn2023


空行

函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。

空行与代码缩进不同,空行并不是 Python 语法的一部分。书写时不插入空行,Python 解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。

**记住:**空行也是程序代码的一部分。


等待用户输入

执行下面的程序在按回车键后就会等待用户输入:


    实例(Python 3.0+) 
     
    
    
    #!/usr/bin/python3
     
    input("\n\n按下 enter 键后退出。")

以上代码中 ,\n\n 在结果输出前会输出两个新的空行。一旦用户按下 enter 键时,程序将退出。


同一行显示多条语句

Python 可以在同一行中使用多条语句,语句之间使用分号 ; 分割,以下是一个简单的实例:


    实例(Python 3.0+) 
     
    
    
    #!/usr/bin/python3
     
    import sys; x = 'phlcsdn2023'; sys.stdout.write(x + '\n')

使用脚本执行以上代码,输出结果请在输出结果查看


    phlcsdn2023

使用交互式命令行执行,输出结果请在输出结果查看


    >>> import sys; x = 'phlcsdn2023'; sys.stdout.write(x + '\n')
    phlcsdn2023
   12

此处的 12 表示字符数,phlcsdn2023 有 11 个字符,\n 表示一个字符,加起来 12 个字符。


    >>> import sys
    >>> sys.stdout.write(" hi ")    # hi 前后各有 1 个空格
     hi 4


多个语句构成代码组

缩进相同的一组语句构成一个代码块,咱们称之代码组。

像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。

咱们将首行及后面的代码组称为一个子句(clause)。

如下实例:


    if expression : 
       suite
    elif expression : 
       suite 
    else : 
       suite


print 输出

print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=“”:


    实例(Python 3.0+) 
     
    
    
    #!/usr/bin/python3
     
    x="a"
    y="b"
    # 换行输出
    print( x )
    print( y )
     
    print('---------')
    # 不换行输出
    print( x, end=" " )
    print( y, end=" " )
    print()

以上实例执行结果请在输出结果查看


    a
    b
    ---------
    a b

更多内容参考:[Python2 与 Python3 print 不换行][Python2 _ Python3 print]


import 与 from…import

在 python 用 import 或者 from…import 来导入相应的模块。

将整个模块(somemodule)导入,格式为: import somemodule

从某个模块中导入某个函数,格式为: from somemodule import somefunction

从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc

将某个模块中的全部函数导入,格式为: from somemodule import *


    导入 sys 模块 
     
    
    
    import sys
    print('================Python import mode==========================')
    print ('命令行参数为:')
    for i in sys.argv:
        print (i)
    print ('\n python 路径为',sys.path)


    导入 sys 模块的 argv,path 成员 
     
    
    
    from sys import argv,path  #  导入特定的成员
     
    print('================python from import===================================')
    print('path:',path) # 因为已经导入path成员,所以此处引用时不需要加sys.path


命令行参数

很多程序可以执行一些操作来查看一些基本信息,Python可以使用-h参数查看各参数帮助信息:


    $ python -h
    usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
    Options and arguments (and corresponding environment variables):
    -c cmd : program passed in as string (terminates option list)
    -d     : debug output from parser (also PYTHONDEBUG=x)
    -E     : ignore environment variables (such as PYTHONPATH)
    -h     : print this help message and exit
    
    [ etc. ]

咱们在使用脚本形式执行 Python 时,可以接收命令行输入的参数,具体使用可以参照 Python 3 命令行参数。

本专栏所有文章

第1章 Python3 教程第2章 Python3 简介教程
第3章 Python3 环境搭建教程第4章 Python3 VScode教程
第5章 Python3 基础语法教程第6章 Python3 基本数据类型教程
第7章 Python3 数据类型转换教程第8章 Python3 推导式教程
第9章 Python3 解释器教程第10章 Python3 注释教程
第11章 Python3 运算符教程第12章 Python3 数字(Number)教程
第13章 Python3 字符串教程第14章 Python3 列表教程
第15章 Python3 元组教程第16章 Python3 字典教程
第17章 Python3 集合教程第18章 Python3 编程第一步教程
第19章 Python3 条件控制教程第20章 Python3 循环语句教程
第21章 Python3 迭代器与生成器教程第22章 Python3 函数教程
第23章 Python3 数据结构教程第24章 Python3 模块教程
第25章 Python3 输入和输出教程第26章 Python3 File教程
第27章 Python3 OS教程第28章 Python3 错误和异常教程
第29章 Python3 面向对象教程第30章 Python3 命名空间/作用域教程
第31章 Python3 标准库概览教程第32章 Python3 实例教程
第33章 Python 测验教程第34章 Python3 正则表达式教程
第35章 Python3 CGI编程教程第36章 Python3 MySQL(mysql-connector)教程
第37章 Python3 MySQL(PyMySQL)教程第38章 Python3 网络编程教程
第39章 Python3 SMTP发送邮件教程第40章 Python3 多线程教程
第41章 Python3 XML 解析教程第42章 Python3 JSON教程
第43章 Python3 日期和时间教程第44章 Python3 内置函数教程
第45章 Python3 MongoDB教程第46章 Python3 urllib教程
第47章 Python uWSGI 安装配置教程第48章 Python3 pip教程
第49章 Python3 operator教程第50章 Python math教程
第51章 Python requests教程第52章 Python random教程
第53章 Python3 os.replace() 方法教程

寄语

本文有phlcsdn2023原创,欢迎点赞、转载,博客地址:https://blog.csdn.net/phlcsdn2023

  • 灵魂上的伴侣是时间累积出来的,不是你第一眼觉得他很帅,跟他看对眼了就觉得他可以成为你的灵魂伴侣,而是要在日常生活习惯的磨合,包括性格上的不断沟通,他才会成为你的灵魂伴侣。
  • 工作,不应该等于是人生,更不应该是需要经营一辈子的事。
  • 人生是海,我是海员。不怕千层浪的一页。过几年你再去读,是完全不一样的感觉,好好珍惜现在我们在一起的时光。
  • 您不知道,沉默包含了多少力量。咄咄逼人的进攻只是一种假象,一种诡计,人们常常用它在自己和世界面前遮掩缺点。真正持久的力量在于忍受中。只有软骨头才急躁粗暴。他通常因此而丧失人的尊严。
  • 被人揭下面具是一种失败,自己揭下面具却是一种胜利。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你得不到的念想

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值