持续更新中...
本文记录了我借助GPT学习python全过程,持续更新--直至python精通为止。
python是什么
Python 是一种功能强大且用途广泛的编程语言,它几乎可以应用于任何领域。以下是一些 Python 的主要用途和应用场景:
- Web 开发
- 框架:Python 有许多流行的 Web 框架,如 Django、Flask 和 FastAPI。
- Django:适合快速开发功能强大的 Web 应用,内置了许多安全和便捷的功能。
- Flask:轻量级框架,适合开发小型应用或微服务。
- FastAPI:现代、快速(高性能)的 Web 框架,适合构建 API。
- 示例:开发博客、社交网络、电子商务网站等。
- 数据分析和数据科学
- 库:Python 提供了许多强大的数据分析库,如 Pandas、NumPy 和 SciPy。
- 数据可视化:使用 Matplotlib、Seaborn 和 Plotly 等库进行数据可视化。
- 示例:处理和分析大规模数据集,生成数据报告,创建数据可视化图表。
- 机器学习和人工智能
- 库:TensorFlow、PyTorch 和 scikit-learn 是 Python 中最流行的机器学习和深度学习库。
- 应用:图像识别、自然语言处理、语音识别、预测分析等。
- 示例:开发智能推荐系统、语音助手、自动驾驶汽车的算法等。
- 自动化和脚本编写
- 任务自动化:Python 可以用来编写脚本,自动化重复性任务,如文件操作、系统管理等。
- 示例:批量处理文件、定时任务、自动化测试等。
- 游戏开发
- 库:Pygame 是一个流行的 Python 游戏开发库。
- 示例:开发简单的 2D 游戏,如贪吃蛇、俄罗斯方块等。
- 网络爬虫
- 库:Requests 和 BeautifulSoup 是用于网络爬虫的常用库。
- 示例:抓取网页数据,用于数据分析、内容聚合等。
- 桌面应用开发
- 云计算和服务器管理
- 库:Boto3(用于 AWS)、Google Cloud Client Library 等。
- 示例:管理云资源,自动化部署和运维任务。
- 物联网 (IoT)
- 库:RPi.GPIO(用于 Raspberry Pi)等。
- 示例:开发智能家居系统、环境监测设备等。
- 教育和研究
- 易学性:Python 语法简洁,易于学习,适合初学者。
- 应用:在计算机科学、数学、物理学等领域的教学和研究中广泛使用。
- 金融和量化交易
- 生物信息学和基因组学
- 库:Biopython 等。
- 示例:处理生物数据,如 DNA 序列分析、蛋白质结构预测等。
- 区块链开发
- 库:PyEthereum 等。
- 示例:开发智能合约、区块链应用等。
- 自然语言处理 (NLP)
- 库:NLTK、spaCy 和 Hugging Face Transformers 等。
- 示例:文本分析、情感分析、机器翻译等。
- 多媒体处理
总结
Python 的强大之处在于它的灵活性和丰富的生态系统。无论你是初学者还是资深开发者,无论你的目标是开发 Web 应用、数据分析、机器学习,还是简单的自动化脚本,Python 都能提供强大的支持。
GPT 聊天地址
https://chatgpt.com/share/67dd32df-6bb4-8002-b88e-5d63a3807a70
提示词:
你是一位高阶python讲师,我现在要自学python,请你一步一步带着我学习。每进行一步我会向你反馈我的学习情况或遇到的问题,你根据我的反馈从而得出是继续查漏补缺还是进行下一步的学习。过程中需要我的任何配合请及时告诉我。我们先从基础知识开始吧
1.基础学习
# 变量赋值学习
name = "Alice"
age = 25
height = 1.75
is_student = True
print(type(name)) # <class 'str'>
print(type(age)) # <class 'int'>
print("my name is " + name, "and I am " + str(age) + " years old")
# 2.输出输出类型判断练习
user_input = input("请输入一个数字: ")
# 先尝试判断是否是整数
if user_input.isdigit():
print(f"{user_input} 是整数,类型为 {type(int(user_input))}")
# 尝试判断是否是浮点数
else:
try:
print(f"{user_input} 是浮点数,类型为 {type(float(user_input))}")
except ValueError:
print(f"{user_input} 不是数字,是字符串,类型为 {type(user_input)}")
# 3.运算符练习
if __name__ == '__main__':
print("你好")
# 输入两个数字
num1 = int(input("请输入第一个数字: "))
# 判断输入的是奇数还是偶数并输出
if num1 % 2 == 0:
print(f"{num1} 是偶数")
else:
print(f"{num1} 是奇数")
num2 = int(input("请输入第二个数字: "))
# 判断输入的是奇数还是偶数并输出
if num2 % 2 == 0:
print(f"{num2} 是偶数")
else:
print(f"{num2} 是奇数")
# 输出最大值与最小值
print(f"最大值是:{max(num1, num2)}")
print(f"最小值是:{min(num1, num2)}")
#if num1 > num2:
# print(f"{num1} 是最大值")
# print(f"{num2} 是最小值")
#else:
# print(f"{num2} 是最大值")
# print(f"{num1} 是最小值")
# 请输入计算运算符
operator = input("请输入运算符(+、-、*、/): ")
# 判断运算符
try:
if operator == "+":
print(f"结果:{num1} + {num2} = {num1 + num2}")
elif operator == "-":
print(f"结果:{num1} - {num2} = {num1 - num2}")
elif operator == "*":
print(f"结果:{num1} * {num2} = {num1 * num2}")
elif operator == "/":
if num2 == 0: # 判断除数是否为 0
print("除数不能为 0!")
else:
print(f"结果:{num1} / {num2} = {num1 / num2:.2f}") # 保留两位小数
else:
print("无效的运算符,请输入 +、-、*、/ 之一!")
except Exception as e:
print(f"发生错误:{e}")
a = 5
b = 3
print(a > 3 and b < 4) # True,a 大于 3 且 b 小于 4
print(a > 3 or b > 4) # True,a 大于 3 或 b 大于 4
print(not a > 3) # False,取反操作
# 4.if 学习
if __name__ == '__main__':
age = int(input("请输入年龄: "))
if age >= 18:
print("你已经成年,可以进入")
# 请出示证件
id_card = input("请出示证件: ")
if id_card == "身份证":
print("证件正确,可以进入")
else:
print("证件错误,不能进入")
# 结束程序
exit()
else:
print("你还未成年,不能进入")
# 结束程序
exit()
is_student = False
score = int(input("请输入分数: "))
if score >= 90:
print("优秀")
is_student = True
elif score >= 80 :
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格")
# 三目运算符
result = "欢迎使用" if score >= 80 else "你很差劲"
print(result)
# 判断多个条件
if score >= 80 and not is_student :
print("优秀但是不是学生")
elif score >= 90 and is_student:
print("优秀且是学生")
# 4.1.写一个简单的登录功能
import sys
# 存储用户信息的字典
users = {}
def register():
print("---- 注册 ----")
username = input("请输入用户名: ")
if username in users:
print("用户名已存在,请重新注册!")
return
password = input("请输入密码: ")
email = input("请输入用于找回密码的邮箱: ")
security_question = input("请输入密保问题(如你的生日?): ")
security_answer = input("请输入密保问题的答案: ")
# 将用户信息存入字典
users[username] = {
"password": password,
"email": email,
"security_question": security_question,
"security_answer": security_answer
}
print(f"注册成功!欢迎你,{username}!\n")
def login():
print("---- 登录 ----")
attempts = 3
while attempts > 0:
username = input("请输入用户名: ")
password = input("请输入密码: ")
if username in users and users[username]["password"] == password:
print(f"登录成功!欢迎回来,{username}!\n")
return True
else:
attempts -= 1
print(f"用户名或密码错误!还有 {attempts} 次尝试机会。")
print("尝试次数过多,程序退出!")
sys.exit()
def recover_password():
print("---- 找回密码 ----")
username = input("请输入要找回密码的用户名: ")
if username not in users:
print("用户名不存在!无法找回密码。\n")
return
choice = input("选择找回方式(1.邮箱 2.密保问题): ")
if choice == "1":
email = input("请输入注册时的邮箱: ")
if email == users[username]["email"]:
print(f"验证成功!您的密码是:{users[username]['password']}\n")
else:
print("邮箱不正确,无法找回密码!\n")
elif choice == "2":
question = users[username]["security_question"]
print(f"密保问题:{question}")
answer = input("请输入密保问题的答案: ")
if answer == users[username]["security_answer"]:
print(f"验证成功!您的密码是:{users[username]['password']}\n")
else:
print("密保答案错误,无法找回密码!\n")
else:
print("无效的选项,请重新选择!\n")
def main():
while True:
print("=== 欢迎使用简易登录系统 ===")
print("1. 注册")
print("2. 登录")
print("3. 找回密码")
print("4. 退出系统")
choice = input("请输入选项(1/2/3/4): ")
if choice == "1":
register()
elif choice == "2":
if login():
break
elif choice == "3":
recover_password()
elif choice == "4":
print("感谢使用,再见!")
sys.exit()
else:
print("无效的选项,请重新输入!\n")
if __name__ == '__main__':
main()
# 5.list 学习
if __name__ == '__main__':
# 创建列表
fruits = ["apple", "banana", "cherry"]
print(fruits)
# 访问元素
print(fruits[0]) # apple
print(fruits[-1]) # cherry
# 修改元素
fruits[1] = "orange"
print(fruits) # ["apple", "orange", "cherry"]
# 切片操作
print(fruits[0:2]) # ["apple", "orange"]
# 添加元素
fruits.append("grape") # 末尾添加
fruits.insert(1, "watermelon") # 指定位置插入
print(fruits)
# 删除元素
fruits.remove("apple") # 删除指定元素
last_fruit = fruits.pop() # 删除末尾元素
print(last_fruit) # "grape"
print(fruits)
# 列表长度
print(len(fruits))
# 列表排序
numbers = [5, 2, 9, 1, 5, 6]
numbers.sort() # 正序排序
print(numbers) # [1, 2, 5, 5, 6, 9]
numbers.sort(reverse=True) # 逆序排序
print(numbers) # [9, 6, 5, 5, 2, 1]
# 列表推导式 - 生成新的列表
squares = [x**2 for x in range(6)]
print(squares) # [0, 1, 4, 9, 16, 25]
# 过滤操作 - 取偶数
evens = [x for x in range(10) if x % 2 == 0]
print(evens) # [0, 2, 4, 6, 8]
# 列表合并
list1 = [1, 2, 3]
list2 = [4, 5, 6]
merged_list = list1 + list2
print(merged_list)
# 列表嵌套
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(matrix[1][2]) # 6
# 创建水果列表
fruits = ["apple", "banana", "cherry", "mango", "orange"]
# 输出第 2 个和倒数第 2 个水果
print("第 2 个水果是:", fruits[1]) # banana
print("倒数第 2 个水果是:", fruits[-2]) # mango
# 添加一个新的水果
fruits.append("grape")
print("添加新水果后的列表:", fruits)
# 删除第 3 个水果并输出删除后的列表
fruits.pop(2) # 删除索引为 2 的元素(cherry)
print("删除第 3 个水果后的列表:", fruits)
# 使用列表推导式生成奇数列表
odd_numbers = [x for x in range(1, 21) if x % 2 != 0]
print("1 到 20 之间的奇数列表:", odd_numbers)
# 3x3 的二维列表
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# 输出中间的数字 5
print("二维列表的中间数字是:", matrix[1][1])
# 6.元组学习
# 元组的应用场景
# 用于 不可修改的数据,例如常量、配置信息。
# 函数的 多返回值。
# 解包(快速赋值)操作。
if __name__ == '__main__':
# 创建元组
fruits = ("apple", "banana", "cherry")
print(fruits)
# 不加括号也可以创建元组
colors = "red", "green", "blue"
print(colors)
# 单个元素的元组必须加逗号
single_element = (5,)
print(type(single_element)) # <class 'tuple'>
# 元组索引与切片
print(fruits[0]) # apple
print(fruits[-1]) # cherry
print(fruits[0:2]) # ('apple', 'banana')
# 元组的长度
print(len(fruits)) # 3
# 元组内元素的查询
print("banana" in fruits) # True
print("grape" not in fruits) # True
# 元组的连接与重复
new_fruits = fruits + ("grape",)
print(new_fruits) # ('apple', 'banana', 'cherry', 'grape')
repeat_colors = colors * 2
print(repeat_colors) # ('red', 'green', 'blue', 'red', 'green', 'blue')
# 多返回值
def get_point():
return (10, 20)
x, y = get_point() # 元组解包
print(x, y) # 10 20
# 用于交换变量
a, b = 5, 10
a, b = b, a
print(a, b) # 10 5
# 练习题
# 创建包含 3 种颜色的元组
# 输出第一个和最后一个颜色
# 创建元组
colors = ("red", "green", "blue")
# 输出第一个和最后一个颜色
print("第一个颜色:", colors[0]) # red
print("最后一个颜色:", colors[-1]) # blue
# 编写一个函数,传入 2 个整数,返回 和 与 差
# 使用元组解包接收返回值
def calculate(x, y):
return (x + y, x - y) # 返回和与差作为元组
# 调用函数并进行元组解包
sum_result, diff_result = calculate(10, 3)
print("和:", sum_result) # 13
print("差:", diff_result) # 7
# 使用元组交换变量 a 和 b 的值
# 输出交换后的结果
a = 5
b = 10
# 使用元组交换
a, b = b, a
print("交换后的 a:", a) # 10
print("交换后的 b:", b) # 5
评论区