1. 注释
-
# 这是一条注释,解释做什么
-
变量:
变量就是把某些值或者运行的结果临时保存在内存中,以便后续调用
2.变量命名约定
python变量命名规则
- 根据习惯选择一种,选择下划线命名法
- 下划线命名法:将多个单词连接在一起,使用下划线 `_` 分隔每个单词,所有字母小写,常用于变量和模块名的命名。
```python
first_str = 'Hello'
second_str = 'Python'
3.变量赋值
将某个数据赋值给某个变量存储
a = "变量1"
b = "变量2"
print(f"{a} {b}")
==注意==:不存在常量,约定的也可更改。
4.用户交互
解释器在执行该代码的时候,如果遇到 input() 就会出现阻塞,程序暂停,等待用户输入。当用户回车以后,程序才会继续向下执行
name = input('请输出你的姓名:')
print(name)
# 注意:通过input函数输入进来的内容一律会被当成字符串处理
a = input('请输入一个数字:')
# a = int(input('请输入一个数字:')) # 类型转化
print(type(a))
print(a > 0)
数据类型
整数(int)
-
描述:表示没有小数部分的数字,可以是正数、负数或零。
-
特性:
- Python 3 中的
int类型是无限大小的。这意味着你可以创建非常大的整数,而不必担心溢出(overflow)的问题。 - Python 会根据整数的大小自动调整内存使用,因此可以存储任意大小的整数,只要计算机的内存允许。
- 支持基本的算术运算,如加、减、乘、除等
a = 10 b = -5 c = 0 print(a + b) # Output: 5 print(type(a)) # 可以使用 type() 内置函数来查看某个变量或值的数据类型 # Output: <class 'int'>
字符串(
str) - Python 3 中的
-
描述:字符串是字符的序列,可以通过单引号或双引号定义。
-
特性:
- 字符串是不可变的(immutable),不能更改其内容。
- 支持切片、连接、重复等操作。
- 可以使用转义字符处理特殊字符。
- 在 Python 中, 加了引号的字符都被认为是字符串!
Greeting = "Welcome to 英格科技"
Name = "牛老师"
print(Greeting + " " + Name) # 字符串可以通过 + 号进行拼接
# Output:
Welcome to 英格科技 牛老师
==字符串的索引和切片==
字符串的索引:
索引:每个字符在字符串中都有一个唯一的索引,索引从 0 开始。
负索引:可以使用负数索引从字符串的末尾开始访问字符,-1 表示最后一个字符,-2 表示倒数第二个字符,以此类推。
==注意==:最好不要用负索引,就按正常顺序就可,留着大脑学难的
s = "Hello, World!"
# 正索引
print(s[0]) # 输出: H
print(s[7]) # 输出: W
# 负索引
print(s[-1]) # 输出: !
print(s[-5]) # 输出: o
字符串的切片
切片:可以通过指定起始索引和结束索引来提取字符串2的子串。切片的语法为 s[start:end],包含起始索引的字符,但不包含结束索引的字符。
步长:可以指定步长来控制切片的间隔,语法为 s[start:end:step]。如果不指定步长,默认为 1
s = "Hello, World!"
# 基本切片
print(s[0:5]) # 输出: Hello
print(s[7:12]) # 输出: World
# 省略起始或结束索引
print(s[:5]) # 输出: Hello (从开始到索引 4)
print(s[7:]) # 输出: World! (从索引 7 到结束)
# 使用负索引切片
print(s[-6:-1]) # 输出: World
# 步长切片
print(s[::2]) # 输出: Hlo ol! (每隔一个字符)
print(s[::-1]) # 输出: !dlroW ,olleH (反转字符串)
print(s[:]) #输出:"Hello,world!"
常用方法
words = "beautiful is better than ugly."
print(words.title()) # 每个单词的首字母大写
print(words.find('sdj', 1, 10)) # 返回索引,找不到返回 -1
# split 以指定字符分割,形成列表
ret = words.split(' ',number) #['beautiful', 'is', 'better', 'than', 'ugly.']
#被引号里的空格字符分割形成相应的元素,可指定分割几次默认从左往右
print(ret)
ret = words.rsplit(' ', 2) # 指定分割次数,从右往左
print(ret)
# strip 操作
a = '****asdasdasd********'
print(a.strip('*')) # 去除两端指定字符
print(a.lstrip('*')) # 去除左侧指定字符
print(a.rstrip('*')) # 去除右侧指定字符
#多用于面向对象时,得到信息,删除不必要的信息
==总结==:
字符串切片能让你从原字符串中提取出一段连续的子串,而不会修改原字符串。它是处理文本时最常用、最高效的操作之一。
基本能力(以 Python 为例)
语法:字符串[开始索引:结束索引:步长]
- 提取子串:取中间某几个字符
s = "Hello, World!"s[7:12]→"World" - 省略索引:
s[:5]→ 从头到索引5之前 →"Hello"s[7:]→ 从索引7到末尾 →"World!" - 负数索引:从右向左数
s[-6:-1]→"World" - 复制整个字符串:
s[:]→"Hello, World!" - 反转字符串:
s[::-1]→"!dlroW ,olleH" - 每隔几个字符取一个:
s[::2]→"Hlo ol"
实际能解决什么问题?
- 截取文件名后缀
filename[-3:]取最后3个字符(假设后缀固定长度,更严谨用split)。 - 去除固定前缀/后缀
url[7:]去掉http://。 - 解析固定格式数据
身份证号
id_card[6:14]提取出生日期。 - 快速判断字符串是否以某子串开头/结尾(虽然也有
startswith,但切片可见一斑) - 文本对齐/截断
text[:20] + "..."显示前20个字符后加省略号。
重要规则
- 切片是左闭右开
[开始, 结束):包含开始索引,不包含结束索引。 - 索引越界不会报错,只会尽可能返回已有部分(比直接索引安全)。
- 步长为负数时,从右向左取,常用于反转或逆序提取。
布尔类型(bool)
- 描述:布尔类型只有两个值:
True和False。 - 特性:
- 通常用于条件判断和逻辑运算。
- 布尔值在逻辑表达式中可以进行运算。
布尔类型很简单,就两个值 ,一个 True(真),一个 False(假), 主要用于逻辑判断
a = 3
b = 5
print(a < b, a > b , a != b)
# Output:
True False True
基本运算符
算数运算符
用于执行基本的数学运算
| 运算符 | 描述 | 示例 |
|---|---|---|
+ |
加法,返回两个数的和 | 3 + 5 → 8 |
- |
减法,返回第一个数减去第二个数的结果 | 10 - 4 → 6 |
* |
乘法,返回两个数的乘积 | 2 * 3 → 6 |
/ |
除法,返回第一个数除以第二个数的结果,结果为浮点数 | 7 / 2 → 3.5 |
// |
地板除法,返回两个数相除的整数部分 | 7 // 2 → 3 |
% |
取模,返回第一个数除以第二个数的余数 | 7 % 2 → 1 |
** |
幂运算,返回第一个数的第二个数次幂 | 2 ** 3 → 8 |
关系运算符
用于比较两个值的关系
| 运算符 | 描述 | 示例 |
|---|---|---|
== |
等于,判断两个值是否相等 | 5 == 5 → True |
!= |
不等于,判断两个值是否不相等 | 5 != 3 → True |
> |
大于,判断左侧值是否大于右侧值 | 5 > 3 → True |
< |
小于,判断左侧值是否小于右侧值 | 5 < 3 → False |
>= |
大于等于,判断左侧值是否大于或等于右侧值 | 5 >= 5 → True |
<= |
小于等于,判断左侧值是否小于或等于右侧值 | 3 <= 5 → True |
身份运算符
用于比较两个对象的内存地址
| 运算符 | 描述 | 示例 |
|---|---|---|
is |
判断两个对象是否为同一对象 | x is y |
is not |
判断两个对象是否不是同一对象 | x is not y |
成员运算符
用于检查值是否在序列中
| 运算符 | 描述 | 示例 |
|---|---|---|
in |
判断元素是否在序列中 | 3 in [1, 2, 3] → True |
not in |
判断元素是否不在序列中 | 4 not in [1, 2, 3] → True |