# Python学习 **Repository Path**: he_wenxiang/learning-python ## Basic Information - **Project Name**: Python学习 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-21 - **Last Updated**: 2025-02-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Python学习 2025年2月3日 ## 1.Python基础 Python的语法比较简单,采用缩进方式,写出来的代码就像下面的样子 ```python # print absolute value of an integer: a = 100 if a >= 0: print(a) else: print(-a) ``` 以 `#`开头的语句是注释,注释是给人看的,可以是任意内容,解释器会忽略掉注释。其他每一行都是一个语句,当语句以冒号 `:`结尾时,缩进的语句视为代码块 ### 1.1数据类型和变量 #### 数据类型 * 整数 十进制表示方法和数学上的写法一模一样 用十六进制表示整数比较方便,十六进制用 `0x` * 浮点数 对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代 * 字符串 以单引号 `'`或双引号 `"`括起来的任意文本 转义字符 `\` 如果有很多字符都需要转义可以用 `r''`表示 ```python >>> print('\\\t\\') \ \ >>> print(r'\\\t\\') \\\t\\ ``` 如果字符串内部有很多换行,用 `\n`写在一行里不好阅读,为了简化,Python允许用 `'''...'''`的格式表示多行内容 ```python print('''line1 line2 line3''') line1 line2 line3 ``` * 布尔值 布尔值只有 `True`、`False`两种值 布尔值可以用 `and`、`or`和 `not`运算。 * 空值 空值是Python里一个特殊的值,用 `None`表示。`None`不能理解为 `0`,因为 `0`是有意义的,而 `None`是一个特殊的空值。 #### 变量 和C语言差不多,只是不要声明类型 `PI = 3.14159265359` 在Python中,通常用全部大写的变量名表示常量 但事实上 `PI`仍然是一个变量,Python根本没有任何机制保证 `PI`不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法,如果你一定要改变变量 `PI`的值,也没人能拦住你。 ### 1.2字符串和编码 #### 字符编码 在最新的Python 3版本中,字符串是以Unicode编码的 对于单个字符的编码,Python提供了 `ord()`函数获取字符的整数表示,`chr()`函数把编码转换为对应的字符 由于Python的字符串类型是 `str`,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把 `str`变为以字节为单位的 `bytes`。 Python对 `bytes`类型的数据用带 `b`前缀的单引号或双引号表示: ```python x = b'ABC' ``` 要注意区分 `'ABC'`和 `b'ABC'`,前者是 `str`,后者虽然内容显示得和前者一样,但 `bytes`的每个字符都只占用一个字节。 以Unicode表示的 `str`通过 `encode()`方法可以编码为指定的 `bytes` ``` >>> 'ABC'.encode('ascii') b'ABC' >>> '中文'.encode('utf-8') b'\xe4\xb8\xad\xe6\x96\x87' ``` 反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是 `bytes`。要把 `bytes`变为 `str`,就需要用 `decode()`方法 要计算 `str`包含多少个字符,可以用 `len()`函数 `len()`函数计算的是 `str`的字符数,如果换成 `bytes`,`len()`函数就计算字节数 #### 格式化 ##### `%` 在Python中,采用的格式化方式和C语言是一致的,用 `%`实现 ``` >>> 'Hello, %s' % 'world' 'Hello, world' >>> 'Hi, %s, you have $%d.' % ('Michael', 1000000) 'Hi, Michael, you have $1000000.' ``` 常见的占位符有: | 占位符 | 替换内容 | | ------ | ------------ | | %d | 整数 | | %f | 浮点数 | | %s | 字符串 | | %x | 十六进制整数 | 其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数: ```python print('%2d-%02d' % (3, 1)) print('%.2f' % 3.1415926) ``` 如果你不太确定应该用什么,`%s`永远起作用,它会把任何数据类型转换为字符串: ```plain >>> 'Age: %s. Gender: %s' % (25, True) 'Age: 25. Gender: True' ``` ##### `format()` ``` >>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125) 'Hello, 小明, 成绩提升了 17.1%' ``` ##### `f-string` ``` >>> r = 2.5 >>> s = 3.14 * r ** 2 >>> print(f'The area of a circle with radius {r} is {s:.2f}') The area of a circle with radius 2.5 is 19.62 ``` 上述代码中,`{r}`被变量 `r`的值替换,`{s:.2f}`被变量 `s`的值替换,并且 `:`后面的 `.2f`指定了格式化参数(即保留两位小数),因此,`{s:.2f}`的替换结果是 `19.62`