1、注释
注释一般是对代码或者项目的描述,不会被执行。python的注释分为单行注释和多行注释,单行注释用#,多行注释使用三个单引号'''或者三个双引号"""
# 这是一条注释 ''' 这是多行注释 这是第二行 ''' """ 这是用双引号的多行注释 这是第二行 """2、字面量
字面量就是直接在代码中写下来的、表示某个固定值的语法形式。Python中主要的字面量可以分为以下几类,它们对应着不同的数据类型:
| 类型 | 描述 | 举例 |
|---|---|---|
| 数字型(number) | 分为整数型、浮点型与复数 | 100 1+2j(以j结尾表示复数) |
| 字符串(string) | 用单引号或双引号包裹的一串文本 | "哈哈哈哈哈" |
| 布尔型(bool) | 只有两个值,用于表示真和假 | true、false |
| 列表(list) | 有序、可变的元素集合,用方括号[]表示 | [1, 2, ‘a’] |
| 元组(tuple) | 有序、不可变的元素集合,用圆括号()表示 | (1, 2, ‘a’) |
| 字典(dictionary) | 键值对的集合,用花括号{}表示。 | {‘name’: ‘Alice’, ‘age’: 25} |
| 集合(set) | 无序、不重复的元素集合,用花括号{}表示 | {1, 2, 3} |
Python中的字面量很多,咱们初学者前期并不需要全部掌握。
示例
# 整数 25 -100 # 浮点数(小数) 99.95 3.14159 # 复数 3 + 4j # j表示虚部 # 字符串 "Alice" "He said, 'Python is great.'" # 双引号内可以嵌套单引号 # 布尔 True False3、变量
在Python中,变量是用来存储数据的命名标识符,可以把它理解为一个贴了标签的“盒子”,里面可以存放各种数据(字面量、对象等)。
命名规则
由字母、数字、下划线组成
不能以数字开头
区分大小写(
age≠Age≠AGE)不能是Python关键字(如
if,for等)
除了这些硬性规定之外,我们还有一些约定俗成的命名规范,如:
- 蛇形命名法:user_name = "Jasper"
- 常量全大写:MAX_CONNECTIONS = 100
核心特性
| 特性 | 说明 | 与字面量的区别 |
|---|---|---|
| 动态类型 | 同一个变量可以重新赋值为不同类型的数据 | 字面量本身有固定类型 |
| 无需声明 | 直接赋值即创建变量 | 字面量是直接写出的值 |
| 引用语义 | 变量存储的是对象的引用(内存地址) | 字面量直接代表具体值 |
| 命名标识 | 通过名称访问存储的数据 | 字面量没有名称 |
基本使用
我们可以试着把字面量存入变量中,并且打印输出,在PyCharm中试试看吧!
# 整数 age = 25 count = -100 # 双引号中的内容可以输入任意字符,当后面要接变量时,需要加上逗号 print("他的年龄是:", age , "岁") # 变量中的内容是可变的 age = age + 10 print("他比我小十岁,那么我的年龄是:", age) # 结合字符串 name = "Jasper" # 在双引号前写一个f,那么就可以用大括号来引用变量输出啦 print(f"{name} is {age} years old")在Python中,变量是引用的,这与许多语言不同,通过一个小案例理解一下
# list1指向一个列表对象 list1 = [1, 2, 3] # list2指向同一个列表对象 list2 = list1 # 修改list1指向的对象 list1.append(4) # [1, 2, 3, 4] - list2也看到变化! print(list2)4、数据类型
我们可以用type函数来查看字面量的数据类型,当然,最多的用法还是用来查看变量所引用的数据的类型。
print(type(123)) num = '123' print(type(num))类型转换
有些场景需要我们对数据的类型进行转换,比如数值型转化为字符串用来拼接,字符串转为数字用来计算等等,让我们从一个小案例来感受一下数据类型的转换吧
# 整数 ↔ 浮点数 int_num = 42 float_num = 3.14 print(float(int_num)) # 42 → 42.0 print(int(float_num)) # 3.14 → 3(直接截断小数) # 四舍五入转换为整数 print(round(3.6)) # 4 print(int(3.6)) # 3(注意区别) # 字符串数字 → 数值 str_num = "123" print(int(str_num)) # 123 print(float("3.14")) # 3.14 # 数值 → 字符串 num = 100 print(str(num) + "分")5、运算符
Python运算符是用于执行各种计算和逻辑操作的特殊符号或关键字。以下是按优先级从高到低排列的运算符分类和详细说明:
| 类别 | 运算符 | 描述 | 优先级 |
|---|---|---|---|
| 括号 | () | 分组、函数调用 | 最高 |
| 幂运算 | ** | 指数运算 | 高 |
| 算术 | *,/,//,% | 乘、除、整除、取模 | 中 |
| 算术 | +,- | 加、减 | 中低 |
| 比较 | <,<=,>,>=,==,!= | 比较运算符 | 低 |
| 逻辑 | not,and,or | 逻辑运算符 | 最低 |
算术运算符
这是大家非常熟悉的运算符,直接上练习
# 基本算术运算 a, b = 10, 3 print(a + b) # 13 - 加法 print(a - b) # 7 - 减法 print(a * b) # 30 - 乘法 print(a / b) # 3.3333... - 除法(浮点数结果) print(a // b) # 3 - 整除(向下取整) print(a % b) # 1 - 取模(余数) print(a ** b) # 1000 - 幂运算(10的3次方) # 特殊算术运算 print(-a) # -10 - 负号 print(+a) # 10 - 正号(通常不写) print(abs(-a)) # 10 - 绝对值赋值运算符
除了最基本的直接赋值,我们还需要掌握复合赋值运算,这在代码中也经常使用
# 基本赋值 x = 10 # 简单赋值 # 复合赋值运算 x += 5 # 等同于 x = x + 5,现在 x = 15 x -= 3 # x = 12 x *= 2 # x = 24 x /= 4 # x = 6.0 x //= 2 # x = 3.0 x %= 2 # x = 1.0 x **= 3 # x = 1.0 # 链式赋值 a = b = c = 0 # 三个变量都赋值为0 # 多重赋值(解包) x, y, z = 1, 2, 3 # x=1, y=2, z=3 # 交换值 x, y = 10, 20 x, y = y, x # x=20, y=10比较运算符
a, b = 10, 20 print(a == b) # False - 等于 print(a != b) # True - 不等于 print(a > b) # False - 大于 print(a < b) # True - 小于 print(a >= b) # False - 大于等于 print(a <= b) # True - 小于等于 # 链式比较 x = 15 print(10 < x < 20) # True - 等同于 10 < x and x < 20 # 字符串比较(按字典序) print("apple" < "banana") # True print("abc" == "ABC") # False(区分大小写)逻辑运算符
# 基本逻辑运算 x, y = True, False print(x and y) # False - 与(两个都为True才True) print(x or y) # True - 或(至少一个为True就True) print(not x) # False - 非(取反)6、字符串扩展
定义
字符串的定义实际上有三种方法
# 单引号定义 num1 = '123' # 双引号定义 num2 = "321" # 三个引号定义,跟多行注释的写法一样,可以用单引号也可以用双引号 num3 = """123 321 """ print(num1) print(num2) print(num3)转义
大家有没有想过,如果我们想输出引号该怎么办?直接敲是没办法做到的,我们可以用单引号包裹双引号,或者是双引号包裹单引号,不过最完美的还是借助我们的转义字符反斜杠\,为了形象也可以叫它撬棍
# 单引号包裹双引号 test1 = '我想说:"新年快乐!"' # 双引号包裹单引号 test2 = "我想说:'新年快乐!'" # 使用转义字符 test3 = "我想说:\"新年快乐!\"" print(test1) print(test2) print(test3)字符串拼接
字符串的拼接可以用加号完成
name = 'Jasper' address = 'China' print("my name is"+name+",I live in"+address)看到这个示例大家是不是会想到之前的输出内容后跟变量名时要用逗号来隔开的写法呢?实际上这种加号拼接的写法只能用于字符串噢。