Python3 基础语法

编码

1、默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。 

2、当然你也可以为源码文件指定不同的编码:

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

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

Windows-1252

Windows-1252是一种字符编码,也被称为Windows西欧字符集(Windows Western Europe character set)。它是一种扩展ASCII编码,由微软公司在Windows操作系统中广泛使用。

Windows-1252编码包含了ASCII编码的所有字符,以及128个额外的字符,用于支持西欧语言,如英语、法语、德语、西班牙语等。这些额外的字符包括特殊符号、货币符号、重音字母和其他特殊字符。

与标准的ISO-8859-1字符集相比,Windows-1252在位置0x80到0x9F之间有一些差异。在Windows-1252中,这些位置上的字符被用于表示一些特殊符号和字母,而不同于ISO-8859-1中的字符。例如,Windows-1252中的位置0x80表示欧元符号(€),而ISO-8859-1中则没有定义该字符。

HTML5甚至明确规定,如果文件声明的是ISO 8859-1编码,它应该被看作Win-dows-1252编码。为什么要这样呢?因为大部分人搞不清楚ISO 8859-1和Windows-1252的区别,当他说ISO 8859-1的时候,其实他指的是Windows-1252,所以标准干脆就这么强制规定了。

ISO-8859-1编码

ISO-8859-1编码也是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF(255),0x00-0x7F(127)之间完全和ASCII一致,0x80(128)-0x9F(159)之间是控制字符,0xA0(160)-0xFF(255)之间是文字符号。

标识符

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

在 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使用缩进来表示代码块,不需要使用大括号 {} 。

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

多行语句

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、False、(==、!=、>、=、and、or、not
  • float (浮点数), 如 1.23、3E-2
  • complex (复数) - 复数由实部和虚部组成,形式为 a + bj,其中 a 是实部,b 是虚部,j 表示虚数单位。如 1 + 2j、 1.1 + 2.2j
  • Python还允许将其他类型的值隐式地转换为布尔值。
  • 数值类型‌:非零数值(整数和浮点数)被视为True,零值被视为False。
  • 字符串类型‌:非空字符串被视为True,空字符串被视为False。
  • 容器类型‌:非空容器(如列表、元组、字典等)被视为True,空容器被视为False‌
  • # bool(): 将其他数据类型转换为布尔类型
    print(bool(100)) # True
    print(bool(3.12)) # True
    print(bool(0)) # False
    print(bool("hello")) # True
    print(bool('')) # False
    print(bool("")) # False
    print(bool(' ')) # True
    print(bool([12,34,7])) # True
    print(bool([])) # False
    print(bool((32,45,67))) # True
    print(bool({"name":"三哥","age":18})) # True
    print(bool(())) #False
    print(bool({})) # False
    print(bool(None)) # False
    

    字符串(String)

  • Python 中单引号 ' 和双引号 " 使用完全相同。
  • 使用三引号(''' 或 """)可以指定一个多行字符串。
  • 转义符 \。
  • 反斜杠可以用来转义,使用 r 可以让反斜杠不发生转义。 如 r"this is a line with \n" 则 \n 会显示,并不是换行。
  • >>> print('\n')       # 输出空行
    
    >>> print(r'\n')      # 输出 \n
    \n
    >>>
  • 按字面意义级联字符串,如 "this " "is " "string" 会被自动转换为 this is string
  • >>> 'Py' 'thon'
    'Python'
  • 它只用于两个字符串文本,不能用于字符串表达式:
  • >>> prefix = 'Py'
    >>> prefix 'thon'  # can't concatenate a variable and a string literal
      ...
    SyntaxError: invalid syntax
    >>> ('un' * 3) 'ium'
      ...
    SyntaxError: invalid syntax

  • 字符串可以用 + 运算符连接在一起,用 * 运算符重复。例如a = “xy”,b = “z”,a+b = “xyz”,a * 3 = “xyxyxy”。
  • Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
  • >>> word[-1]  # last character
    'n'
    >>> word[-2]  # second-last character
    'o'
    >>> word[-6]
    'P'
  • Python 中的字符串不能改变,如果需要修改其中的值,只能重新创建一个新的字符串对象。
  • >>> 'J' + word[1:]
    'Jython'
    >>> word[:2] + 'py'
    'Pypy'
  • Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
  • 字符串切片 str[start:end],其中 start(包含)是切片开始的索引,end(不包含)是切片结束的索引。
  • >>> word[0:2]  # characters from position 0 (included) to 2 (excluded)
    'Py'
    >>> word[2:5]  # characters from position 2 (included) to 5 (excluded)
    'tho'
  • 注意,包含起始的字符,不包含末尾的字符。这使得 s[:i] + s[i:] 永远等于 s:
  • >>> word[:2] + word[2:]
    'Python'
    >>> word[:4] + word[4:]
    'Python'
  • 切片的索引有非常有用的默认值;省略的第一个索引默认为零,省略的第二个索引默认为切片的字符串的大小。:
  • >>> word[:2]  # character from the beginning to position 2 (excluded)
    'Py'
    >>> word[4:]  # characters from position 4 (included) to the end
    'on'
    >>> word[-2:] # characters from the second-last (included) to the end
    'on'
  • 一个过大的索引值(即下标值大于字符串实际长度)将被字符串实际长度所代替,当上边界比下边界大时(即切片左值大于右值)就返回空字符串:

    >>> word[4:42]
    'on'
    >>> word[42:]
    ''
  • 字符串的切片可以加上步长参数 step,语法格式如下:str[start:end:step]

  • >>> ​word[1:5:2]          # 输出从第二个开始到第五个且每隔一个的字符(步长为2)
    'yh'
  • 内置函数 len() 返回字符串长度:

  • >>> s = 'supercalifragilisticexpialidocious'
    >>> len(s)
    34

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值