可以先从输入输出、变量和数据类型开始,再逐渐学习判断、循环、列表、字典和函数。等这些内容比较熟悉以后,再继续接触文件、异常处理以及后面的数据分析、自动化等方向。
Python中最常见的是单行注释,使用#开头:
# 打印一句话print(”Hello Python”)
三引号:
”””用于说明一段内容”””
严格来说属于多行字符串,并不是专门的“多行注释语法”。不过,在部分学习示例中,经常会看到它被用来临时说明多行内容。
print()用于把内容输出到屏幕。
print(123)print(”张三”, 20, sep=”|”)print(”第一行”, end=” ”)print(”同行输出”)
其中:
sepend默认情况下,print()执行结束后会换行。
input()用于接收键盘输入。
需要注意的是,它默认返回字符串类型。
name = input(”请输入姓名:”)age = int(input(”请输入年龄:”))print(name, age)
如果输入内容后面需要参与数值计算,就需要根据情况转换成int或float。
Python入门阶段经常会接触下面几种类型:
int | a = 10 | ||
float | b = 3.14 | ||
str | c = "python" | ||
bool | TrueFalse | d = True | |
list | e = [1, 2, 3] | ||
dict | f = {"name": "小明"} |
num = ”66”print(int(num))print(float(num))print(str(99))print(bool(0))
在布尔转换中,0、空字符串、空列表等通常会被转换成False,多数非空值则会被转换成True。
Python变量名通常需要遵循几个基本规则:
例如:
user_age = 18user_name = ”小李”
下面的写法则不符合规则:
# 1name = ”小李”# if = 123
日常代码中,一般会使用小写字母加下划线的方式,例如:
user_nameorder_amounttotal_price
常见算术运算符包括:
+ - * / // % **例如:
print(7 // 2)print(7 % 2)print(2 ** 3)
其中:
//表示整除;%表示取余;**表示幂运算。> < >= <= == !=比较结果通常是布尔值。
print(5 == 5)print(10 != 8)
常见逻辑运算符包括:
andornot
例如:
print(3 > 1 and 5 < 10)print(not 5 > 1)
字符串在Python中使用得比较多,常见操作包括索引、切片和文本处理。
索引从0开始:
s = ”python”print(s[0])
结果为:
p基本格式:
[开始位置:结束位置:步长]结束位置本身不包含在结果中。
s = ”python”print(s[1:4])print(s[::-1])
结果分别是:
ythnohtyp
s = ”python”print(s.upper())print(s.lower())print(” abc ”.strip())print(s.replace(”p”, ”P”))print(”a,b,c”.split(”,”))
这些方法分别可以完成大小写转换、首尾空格处理、文本替换以及字符串拆分等工作。
条件判断主要用于根据不同情况执行不同代码。
age = 18if age < 18:print(”未成年”)elif age == 18:print(”刚成年”)else:print(”成年人”)
Python通过缩进表示代码之间的层级关系。
一般建议统一使用4个空格,不要在同一份代码中混用Tab和空格。
Python中常见的循环主要有while和for。
只要条件成立,循环就会继续执行。
i = 1while i <= 5:print(i)i += 1
使用while时,需要注意循环条件是否会发生变化,否则可能出现一直无法结束的循环。
for比较适合遍历字符串、列表、元组以及range()等可迭代对象。
for i in range(5):print(i)
输出:
01234
也可以指定起始位置和步长:
for i in range(1, 11, 2):print(i)
遍历字符串:
forcharin ”hello”:print(char)
break用于提前结束整个循环:
for i in range(5):if i == 3:break
continue用于跳过当前这一轮:
for i in range(1, 6):if i == 3:continueprint(i)
输出:
1245
列表是Python中比较常见的数据容器,可以保存多个数据,并且允许修改。
lst = [10, 20, 30]print(lst[0])lst.append(40)lst.insert(1, 15)
lst[0] = 99lst.pop()lst.remove(20)del lst[0]
常见操作还包括:
print(len(lst))print(30in lst)lst.sort()
需要注意,访问不存在的索引时会出现IndexError。
元组和列表有些相似,同样可以保存多个有序数据。
t = (1, 2, 3)print(t[0])
主要区别在于,元组创建以后不能直接修改其中的元素:
# t[0] = 99这段代码会报错。
虽然元组本身不可变,但其中如果包含列表等可变对象,这些内部对象仍然可能发生变化。
字典通过“键和值”保存数据。
user = {”name”: ”小王”,”age”: 20}
print(user[”name”])print(user.get(”age”))
get()的一个特点是,当键不存在时可以返回默认值,而不是直接产生KeyError。
print(user.get(”gender”, ”未知”))user[”gender”] = ”男”del user[”age”]print(user.keys())print(user.values())print(user.items())
字典的键需要是可哈希对象。
字符串、数字和满足条件的元组通常可以作为键,而列表不能直接作为字典键。
当一段代码需要重复使用时,可以考虑封装成函数。
def say_hello():print(”你好”)say_hello()
def add(a, b):result= a + breturnresultnum =add(3, 5)print(num)
这里的a和b属于形参,调用函数时传入的3和5属于实参。return用于结束函数,并把结果返回给调用位置。
如果函数没有显式写return,默认会返回None。
num = 100def test():global numnum = 200test()print(num)
global可以让函数内部修改全局变量。
不过,在实际项目中通常不建议大量依赖全局变量,否则代码之间的依赖关系容易变得复杂。
程序运行过程中可能遇到输入错误、文件不存在、索引越界等问题。
可以使用异常处理,让程序针对特定错误进行处理。
try:a = int(input(”请输入数字:”))print(a)except ValueError:print(”输入内容无法转换成整数”)
这里的ValueError表示值的格式不符合当前转换要求。
学习异常处理时,最好明确捕获具体异常,而不是直接把所有错误统一忽略。
Python可以通过open()读取和写入文件。
常见模式包括:
rwawithopen(”test.txt”, ”w”, encoding=”utf-8”) as f:f.write(”好好学习Python\n”)
withopen(”test.txt”, ”r”, encoding=”utf-8”) as f:data = f.read()print(data)
使用with以后,代码块执行结束时文件会被自动关闭,因此日常使用比较方便。
Python本身提供了不少常用函数。
获取对象长度:
len([1, 2, 3])获取最大值和最小值:
max([1, 5, 3])min([1, 5, 3])
求和:
lst = [1, 2, 3]print(sum(lst))
查看数据类型:
print(type(123))遍历数据时,同时获得索引和值:
lst = [1, 2, 3]forindex, value in enumerate(lst):print(index, value)
下面的写法会报错:
# ”123” + 456可以先转换类型:
print(”123” + str(456))lst = [10, 20, 30]这个列表只有0、1、2三个有效索引。
如果访问:
lst[3]就会出现索引越界。
a = 10表示赋值。
a == 10表示判断两边是否相等。
Python依赖缩进表示代码结构。
同一个代码块中保持统一缩进,可以减少很多格式问题。
列表属于可变类型,因此不能直接作为字典键。
# d = {[1, 2]: ”value”}通常可以使用字符串、数字或者满足条件的元组作为键。
刚开始学习时,可以按照下面的顺序逐步推进:
变量 → 数据类型 → 运算符 → 字符串 → 条件判断 → 循环 → 列表与字典 → 函数 → 文件 → 异常处理
不用要求自己一次记住所有方法。
更加重要的是,每学习一个知识点,都自己写几个小程序。
例如,用条件判断做成绩等级,用循环计算总和,用字典保存学生信息,再把函数、文件读写逐渐组合起来。
当这些基础内容能够独立写出来以后,就已经具备继续学习数据分析、自动化脚本、Web开发或者爬虫等方向所需要的基本Python编程能力。