热烈欢迎踏入这样的世界, 不管是你打算创作出能够释放咱们双手的自动化脚本, 从而步入跟人工智能以及数据科学紧紧相连的领域, 又或者仅仅只是想要去钻研一番特别优雅的编程语言方面的事宜, 这里都是当前最为堪称完美的起始点。这本指南会引领你从毫无基础起步, 以系统的方式去搭建知识体系。此文章不但会给出基础语法, 还会对你阐释其背后隐藏的“风格”思维模式。建议你在使用电脑的时候一边观看一边进行代码敲击, 实践乃是掌握编程仅有的捷径。第一阶段基石与环境搭建在写下第一行代码之前我们需要准备好“工作台”。1. 安装 解释器它属于一门用来进行解释用的编程语言, 这种情况也就表明了您需要借助一个承担有“翻译功能”的程序, 把您书写的代码转变成计算机能够理解明白的机器指令代码。2. 选择你的武器 (IDE/编辑器)虽然呀你能够借助记事本去撰写代码, 可是呢一款质量很棒的集成开发环境也就是IDE呀, 它能够协助你实现自动补全代码, 并且还能够对拼写错误进行检查。3. Hello, World!把你的编译器开启, 去创建一个叫做 hello.py 的文档, 将下面这些代码录入进去然后执行:# 这是一行注释计算机在运行时会忽略它 print(Hello, World!)恭喜于你, 你已然成功运行了人生里第一段 代码。print() 属于 的内置起函数, 担当着把括号之中的内容输出至屏幕之上去的职责。第二阶段核心基础语法1. 变量与动态类型居于其中, 变量仿若一个贴有标签的盒子, 你能够将任何物品放置进去。跟其他静态语言诸如 C 或者 Java不一样, 它属于动态类型, 你无需预先声明变量的类型。name Alice # 字符串 (String)用引号括起来 age 25 # 整数 (Integer) height 1.68 # 浮点数 (Float)即小数 is_student True # 布尔值 (Boolean)只有 True 或 False 首字母必须大写 # 你可以随时改变盒子里的东西甚至改变它的类型 age 二十五岁2. 基础运算符的数学运算非常直观几乎和数学课本上一模一样。x 10 y 3 print(x y) # 加法: 13 print(x - y) # 减法: 7 print(x * y) # 乘法: 30 print(x / y) # 浮点除法: 3.3333333333333335 print(x // y) # 整除 (向下取整): 3 print(x % y) # 取余数: 1 print(x ** y) # 幂运算 (10的3次方): 10003. 字符串操作 ()一种极为常用的数据类型里头有字符串, 有着能带来极为舒坦感受的字符串处理方式被提供。greeting Hello target World # 字符串拼接 message greeting , target ! # F-String (格式化字符串) - 极力推荐的现代写法 # 在字符串前面加 f可以直接将变量塞进大括号 {} 里 modern_message f{greeting}, {target}! I am {age} years old. print(modern_message) # 字符串的常用方法 text python programming print(text.strip()) # 去除两端空格: python programming print(text.upper()) # 全部大写: PYTHON PROGRAMMING print(text.replace(p, P)) # 替换字符第三阶段数据容器组织信息的艺术当需要管理数量众多的数据时, 仅靠单个变量是远不足够的, 存在着诸多欠缺。此时, 存在着那样的内置数据结构, 它们有四种且具备强大的特性。1. 列表 (List)列表属于有序的集合, 且是可变的那种。能够将其设想成一个货架, 这个货架是那种可以随时做伸缩变动的。# 使用方括号创建列表 fruits [apple, banana, cherry] # 索引访问 (Python 的索引从 0 开始) print(fruits[0]) # 输出: apple print(fruits[-1]) # 负数索引表示从后往前数输出: cherry # 修改列表 fruits.append(orange) # 在末尾追加元素 fruits.insert(1, mango) # 在索引 1 的位置插入 fruits.remove(banana) # 删除指定元素 popped_fruit fruits.pop() # 移除并获取最后一个元素 # 列表切片 [起始位置:结束位置:步长] (左闭右开) numbers [0, 1, 2, 3, 4, 5] print(numbers[1:4]) # 输出: [1, 2, 3]2. 元组 (Tuple)元组跟列表差不多, 唯一不一样的地方在于: 元组它不能被改变。一旦弄好了, 就没办法去修改、增添或者移除里面的东西。通常是用来存放那些不应当被更改的数据像地理坐标、数据库配置。# 使用圆括号创建元组 coordinates (40.7128, -74.0060) # coordinates[0] 41.0 # 这行代码会报错因为元组不可变3. 字典 ()键值对Key - Value结构的一种是字典, 如同查询真实字典那般, 凭借“词条Key”来查找“解释Value”, 没错。# 使用大括号创建字典 student { name: Bob, age: 20, major: Computer Science } # 查找数据 print(student[name]) # 输出: Bob # 新增或修改键值对 student[grade] A # 新增 student[age] 21 # 修改 # 安全地查找数据如果键不存在不会报错程序崩溃而是返回 None print(student.get(height))4. 集合 (Set)存在这样一种容器, 它被称作集合, 其具备无序的特性, 并且绝不容纳重复的元素, 它在用于去除重复元素, 或者开展数学范畴内的交集以及并集运算方面具有极高的适配性。unique_numbers {1, 2, 2, 3, 3, 4} print(unique_numbers) # 输出: {1, 2, 3, 4} 自动去重第四阶段控制流与逻辑分支程序并非总是能够自开始一直执行至结束, 它得依据不一样的条件来做出抉择, 或者反反复复地去执行某些行为。留意, 运用缩进一般是 4 个空格来划分代码块, 而非像别的语言那般运用大括号 {}。缩进出现差错会致使程序无法运行。1. 条件判断 (if / elif / else)score 85 if score 90: print(优秀) elif score 80: print(良好) # 这里的缩进告诉 Python这是属于 elif 的代码块 elif score 60: print(及格) else: print(不及格)2. For 循环循环被用来对任何能够进行迭代的对象开展遍历操作, 比如列表、字符串以及字典等。# 遍历列表 heroes [Batman, Superman, Flash] for hero in heroes: print(f{hero} is saving the world!) # 使用 range() 生成数字序列 # range(5) 会生成 0, 1, 2, 3, 4 for i in range(5): print(f这是第 {i1} 次循环)3. While 循环当条件是 True 的时候, while 循环会持续地执行, 一直不会停止, 直到条件转变为 False 的时候才会停下来。countdown 3 while countdown 0: print(countdown) countdown - 1 # 等同于 countdown countdown - 1 print(Launch!)第五阶段函数 (DRY 原则的体现)于软件工程里存在一个非常有名的原则名曰 DRY即 Dont -不要重复自己, 要是你发觉了某段代码被多次进行复制粘贴, 那么就应当将其封装成为一个“函数”。# 使用 def 关键字定义函数 def greet_user(name, greetingHello): 这是一个文档字符串(Docstring)用于解释函数的作用。 greeting 拥有一个默认值 Hello如果调用时不提供就使用默认值。 full_message f{greeting}, {name}! return full_message # 将结果返回给调用者 # 调用函数 result1 greet_user(Alice) result2 greet_user(Bob, Welcome) print(result1) # 输出: Hello, Alice! print(result2) # 输出: Welcome, Bob!第六阶段异常处理与防御性编程于真实之世界里头, 程序常常会碰到各类意想不到之错误, 像用户输入了字母而非数字这样, 又譬如试图去打开一个不存在的文件, 还有网络突然之间断开这种情况。那些优秀的程序并不会一旦碰见错误便径直崩溃, 而是要以很优雅的方式去处理它们。这便是异常处理所具备的作用了。# 模拟一个用户输入除数的操作 user_input 0 try: # 尝试执行可能会出错的代码 divisor int(user_input) result 100 / divisor print(f结果是: {result}) except ZeroDivisionError: # 如果发生除以零的错误执行这里的代码 print(数学错误不能除以零请检查你的输入。) except ValueError: # 如果用户输入的不是数字无法转换为int执行这里 print(类型错误请输入一个有效的数字) finally: # 无论是否发生错误这里的代码最终都会执行常用于清理资源 print(计算尝试结束。)第七阶段文件读写与模块导入1. 读写文件对于读写文本文件而言, 是极为简便的, 在此推荐运用 with 上下文管理器, 它于操作顺利结束之后, 会自行协助你去关闭文件, 以便防止出现内存泄漏的情况。# 写入文件 (w 模式代表 write如果文件不存在会自动创建) with open(diary.txt, w, encodingutf-8) as file: file.write(这是我学习 Python 的第一天。\n) file.write(感觉还不错) # 读取文件 (r 模式代表 read) with open(diary.txt, r, encodingutf-8) as file: content file.read() print(文件内容如下) print(content)2. 导入模块 (站在巨人的肩膀上)有着特别丰富的“标准库”以及第三方包, 所以它变得强大, 你不用反复去打造轮子, 仅把它们拿来运用就可以了。import random # 导入随机数模块 import math # 导入数学模块 import time # 导入时间模块 # 使用模块中的功能 print(math.pi) # 打印圆周率 print(random.randint(1, 100)) # 生成 1 到 100 之间的随机整数 time.sleep(2) # 让程序暂停 2 秒钟 print(等待结束。)第八阶段新手实战练习 —— 猜数字游戏已有充足的理论知识, 我们来把上述的变量, 以及循环, 还有条件判断, 再加上内置模块, 将它们综合到一块儿, 去编写一个完整的小游戏程序:import random def guess_number_game(): print( 欢迎来到猜数字游戏 ) print(我已经想好了一个 1 到 100 之间的数字。) secret_number random.randint(1, 100) attempts 0 max_attempts 7 while attempts max_attempts: try: guess input(f\n你有 {max_attempts - attempts} 次机会请输入你的猜测: ) guess int(guess) # 将输入的字符串转换为整数 attempts 1 if guess 1 or guess 100: print(️ 请输入 1 到 100 之间的范围) continue # 跳过本次循环的剩余部分直接进入下一次循环 if guess secret_number: print( 太小了) elif guess secret_number: print( 太大了) else: print(f 恭喜你你在第 {attempts} 次猜中了数字 {secret_number}) return # 游戏胜利退出函数 except ValueError: print( 错误请输入有效的整数数字) print(f\n 游戏结束我的数字其实是 {secret_number}。) # 启动游戏 # guess_number_game() # 只要取消这行的注释即可在本地运行游戏第九阶段接下来的学习路线图当掌握了上述基础之后, 你已然跨越了编程的门槛。那下一步要如何前行 , 这取决于你的兴趣。倘若你打算从事数据分析, 或者涉足人工智能领域, 那就需去钻研数据处理, 还有数据可视化, 以及深度学习。要是你想致力于网站后台相关工作, 那就得去学习某种语言, 或者框架。要是你期望进行日常办公自动化, 或者开展爬虫工作, 那就去学习, 还有网页解析, 并且浏览器自动化。要是你想强化代码内功, 那就深入研习面向对象编程, 也就是类与对象的概念, 还有装饰器, 以及生成器。从事编程活动如同去研习一门别样的外国语言, 千万别尝试不假思索地一下子将整部词典都背诵下来。最为理想的学习方式便是怀揣着实际需求去着手编写代码, 一旦遭遇难题, 便去查找相关资料, 进而解决所遭遇的那些问题, 如此这般地来回反复迴圈做下来。