Python零基础入门:60分钟掌握核心语法与实战应用
📚 学习目标
在60分钟内,您将学会:
⏰ 时间安排
第一部分:基础语法(0-15分钟)
1.1 Python简介
Python是一种简单易学的编程语言,语法清晰,功能强大。
1.2 变量和数据类型
变量定义
# 变量不需要声明类型,直接赋值name = "张三"# 字符串age = 25# 整数height = 1.75# 浮点数is_student = True# 布尔值
基本数据类型
# 1. 数字类型integer_num = 42# 整数float_num = 3.14# 浮点数complex_num = 3 + 4j# 复数# 2. 字符串text = "Hello, Python!"multiline_text = """这是一个多行字符串"""# 3. 布尔值is_true = Trueis_false = False# 4. 列表(可变)fruits = ["苹果", "香蕉", "橙子"]numbers = [1, 2, 3, 4, 5]# 5. 元组(不可变)coordinates = (10, 20)colors = ("红", "绿", "蓝")# 6. 字典person = {"姓名": "李四","年龄": 30,"城市": "北京"}# 7. 集合unique_numbers = {1, 2, 3, 4, 5}
类型检查和转换
# 检查类型print(type(name)) # <class 'str'>print(type(age)) # <class 'int'># 类型转换str_num = "123"int_num = int(str_num) # 字符串转整数float_num = float(str_num) # 字符串转浮点数str_age = str(age) # 整数转字符串
1.3 运算符
算术运算符
a = 10b = 3print(a + b) # 加法:13print(a - b) # 减法:7print(a * b) # 乘法:30print(a / b) # 除法:3.333...print(a // b) # 整除:3print(a % b) # 取余:1print(a ** b) # 幂运算:1000
比较运算符
x = 5y = 10print(x == y) # 等于:Falseprint(x != y) # 不等于:Trueprint(x < y) # 小于:Trueprint(x > y) # 大于:Falseprint(x <= y) # 小于等于:Trueprint(x >= y) # 大于等于:False
逻辑运算符
p = Trueq = Falseprint(p and q) # 与:Falseprint(p or q) # 或:Trueprint(not p) # 非:False
1.4 字符串操作
text = "Python编程"# 字符串长度print(len(text)) # 8# 字符串拼接greeting = "Hello, " + "World!"formatted = f"我的名字是{name},今年{age}岁"# 字符串方法print(text.upper()) # 转大写print(text.lower()) # 转小写print(text.replace("Python", "Java")) # 替换# 字符串切片print(text[0]) # 第一个字符:Pprint(text[0:6]) # 前6个字符:Pythonprint(text[-2:]) # 最后2个字符:编程
第二部分:控制结构(15-30分钟)
2.1 条件语句
if语句基础
score = 85if score >= 90:print("优秀")elif score >= 80:print("良好")elif score >= 60:print("及格")else:print("不及格")
条件表达式(三元运算符)
age = 18status = "成年人"if age >= 18else"未成年人"print(status)
复合条件
username = "admin"password = "123456"if username == "admin"and password == "123456":print("登录成功")else:print("用户名或密码错误")
2.2 循环语句
for循环
# 遍历列表fruits = ["苹果", "香蕉", "橙子"]for fruit in fruits:print(f"我喜欢吃{fruit}")# 遍历范围for i inrange(5): # 0到4print(f"第{i+1}次循环")for i inrange(1, 6): # 1到5print(i)for i inrange(0, 10, 2): # 0到9,步长为2print(i) # 输出:0, 2, 4, 6, 8# 遍历字典person = {"姓名": "王五", "年龄": 28, "职业": "程序员"}for key, value in person.items():print(f"{key}: {value}")
while循环
# 基础while循环count = 0while count < 5:print(f"计数:{count}") count += 1# 用户输入循环whileTrue: user_input = input("请输入命令(输入'quit'退出):")if user_input == "quit":breakprint(f"您输入了:{user_input}")
循环控制
# break:跳出循环for i inrange(10):if i == 5:breakprint(i) # 输出:0, 1, 2, 3, 4# continue:跳过当前迭代for i inrange(10):if i % 2 == 0: # 跳过偶数continueprint(i) # 输出:1, 3, 5, 7, 9
2.3 列表推导式
# 传统方法squares = []for i inrange(10): squares.append(i ** 2)# 列表推导式(更简洁)squares = [i ** 2for i inrange(10)]# 带条件的列表推导式even_squares = [i ** 2for i inrange(10) if i % 2 == 0]print(even_squares) # [0, 4, 16, 36, 64]
第三部分:函数和模块(30-40分钟)
3.1 函数定义和调用
基础函数
defgreet(name):"""问候函数"""returnf"你好,{name}!"# 调用函数message = greet("小明")print(message)
参数类型
# 默认参数defintroduce(name, age=18, city="北京"):returnf"我叫{name},今年{age}岁,来自{city}"print(introduce("张三")) # 使用默认值print(introduce("李四", 25)) # 部分使用默认值print(introduce("王五", 30, "上海")) # 全部指定# 可变参数defcalculate_sum(*numbers):"""计算任意数量数字的和"""returnsum(numbers)print(calculate_sum(1, 2, 3)) # 6print(calculate_sum(1, 2, 3, 4, 5)) # 15# 关键字参数defcreate_profile(**kwargs):"""创建用户档案""" profile = {}for key, value in kwargs.items(): profile[key] = valuereturn profileuser = create_profile(name="赵六", age=22, hobby="编程")print(user)
返回值
defdivide(a, b):"""除法运算,返回商和余数"""if b == 0:returnNone, "除数不能为零"return a // b, a % bquotient, remainder = divide(10, 3)print(f"商:{quotient},余数:{remainder}")
3.2 作用域和闭包
# 全局变量和局部变量global_var = "我是全局变量"deftest_scope(): local_var = "我是局部变量"print(global_var) # 可以访问全局变量print(local_var) # 可以访问局部变量test_scope()# print(local_var) # 错误:无法访问局部变量# 闭包defouter_function(x):definner_function(y):return x + yreturn inner_functionadd_10 = outer_function(10)print(add_10(5)) # 15
3.3 模块和包
导入模块
# 导入整个模块import mathprint(math.pi) # 3.141592653589793print(math.sqrt(16)) # 4.0# 导入特定函数from math import pi, sqrtprint(pi)print(sqrt(25))# 导入并重命名import datetime as dtnow = dt.datetime.now()print(now)# 导入所有(不推荐)from math import *
常用内置模块
# random模块import randomprint(random.randint(1, 10)) # 随机整数print(random.choice(["A", "B", "C"])) # 随机选择# datetime模块from datetime import datetime, timedeltanow = datetime.now()tomorrow = now + timedelta(days=1)print(f"现在:{now}")print(f"明天:{tomorrow}")# os模块import osprint(os.getcwd()) # 当前工作目录# os.mkdir("新文件夹") # 创建文件夹
第四部分:实战项目(40-60分钟)
项目1:简单计算器(10分钟)
defcalculator():"""简单计算器"""print("=== 简单计算器 ===")print("支持的操作:+, -, *, /, quit")whileTrue:try: operation = input("请输入操作(如:5 + 3)或输入'quit'退出:")if operation.lower() == 'quit':print("再见!")break# 解析输入 parts = operation.split()iflen(parts) != 3:print("格式错误,请使用:数字 运算符 数字")continue num1 = float(parts[0]) operator = parts[1] num2 = float(parts[2])# 计算结果if operator == '+': result = num1 + num2elif operator == '-': result = num1 - num2elif operator == '*': result = num1 * num2elif operator == '/':if num2 == 0:print("错误:除数不能为零")continue result = num1 / num2else:print("不支持的运算符")continueprint(f"结果:{num1}{operator}{num2} = {result}")except ValueError:print("输入错误,请输入有效的数字")except Exception as e:print(f"发生错误:{e}")# 运行计算器# calculator()
项目2:文件管理器(10分钟)
import osfrom datetime import datetimedeffile_manager():"""简单文件管理器"""print("=== 文件管理器 ===")whileTrue:print("\n可用命令:")print("1. ls - 列出当前目录文件")print("2. cd <目录名> - 切换目录")print("3. mkdir <目录名> - 创建目录")print("4. create <文件名> - 创建文件")print("5. read <文件名> - 读取文件")print("6. write <文件名> - 写入文件")print("7. pwd - 显示当前路径")print("8. quit - 退出") command = input("\n请输入命令:").strip().split()ifnot command:continue cmd = command[0].lower()try:if cmd == 'quit':print("再见!")breakelif cmd == 'ls': list_directory()elif cmd == 'cd'andlen(command) > 1: change_directory(command[1])elif cmd == 'mkdir'andlen(command) > 1: create_directory(command[1])elif cmd == 'create'andlen(command) > 1: create_file(command[1])elif cmd == 'read'andlen(command) > 1: read_file(command[1])elif cmd == 'write'andlen(command) > 1: write_file(command[1])elif cmd == 'pwd':print(f"当前路径:{os.getcwd()}")else:print("无效命令或缺少参数")except Exception as e:print(f"错误:{e}")deflist_directory():"""列出当前目录内容""" items = os.listdir('.')ifnot items:print("目录为空")returnprint("\n目录内容:")for item insorted(items):if os.path.isdir(item):print(f"📁 {item}/")else: size = os.path.getsize(item)print(f"📄 {item} ({size} bytes)")defchange_directory(path):"""切换目录""" os.chdir(path)print(f"已切换到:{os.getcwd()}")defcreate_directory(name):"""创建目录""" os.makedirs(name, exist_ok=True)print(f"目录 '{name}' 创建成功")defcreate_file(filename):"""创建文件"""withopen(filename, 'w', encoding='utf-8') as f: f.write(f"# 文件创建于 {datetime.now()}\n")print(f"文件 '{filename}' 创建成功")defread_file(filename):"""读取文件"""withopen(filename, 'r', encoding='utf-8') as f: content = f.read()print(f"\n--- {filename} 内容 ---")print(content)print("--- 文件结束 ---")defwrite_file(filename):"""写入文件"""print("请输入文件内容(输入'EOF'结束):") lines = []whileTrue: line = input()if line == 'EOF':break lines.append(line)withopen(filename, 'w', encoding='utf-8') as f: f.write('\n'.join(lines))print(f"内容已写入 '{filename}'")# 运行文件管理器# file_manager()
项目3:简单网页信息提取器(10分钟)
import urllib.requestimport refrom urllib.parse import urljoin, urlparsedefsimple_web_scraper():"""简单网页信息提取器"""print("=== 简单网页信息提取器 ===")whileTrue:print("\n功能选项:")print("1. 提取网页标题")print("2. 提取所有链接")print("3. 提取图片链接")print("4. 统计词频")print("5. quit - 退出") choice = input("请选择功能(1-5):").strip()if choice == '5'or choice.lower() == 'quit':print("再见!")breakif choice in ['1', '2', '3', '4']: url = input("请输入网页URL:").strip()ifnot url.startswith(('http://', 'https://')): url = 'https://' + urltry: html_content = fetch_webpage(url)if choice == '1': extract_title(html_content)elif choice == '2': extract_links(html_content, url)elif choice == '3': extract_images(html_content, url)elif choice == '4': count_words(html_content)except Exception as e:print(f"错误:{e}")else:print("无效选择")deffetch_webpage(url):"""获取网页内容""" headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36' } request = urllib.request.Request(url, headers=headers)with urllib.request.urlopen(request, timeout=10) as response: content = response.read().decode('utf-8', errors='ignore')return contentdefextract_title(html):"""提取网页标题""" title_match = re.search(r'<title>(.*?)</title>', html, re.IGNORECASE | re.DOTALL)if title_match: title = title_match.group(1).strip()print(f"网页标题:{title}")else:print("未找到网页标题")defextract_links(html, base_url):"""提取所有链接""" link_pattern = r'<a[^>]+href=["\']([^"\']+)["\'][^>]*>(.*?)</a>' links = re.findall(link_pattern, html, re.IGNORECASE | re.DOTALL)if links:print(f"\n找到 {len(links)} 个链接:")for i, (url, text) inenumerate(links[:10], 1): # 只显示前10个# 处理相对链接 full_url = urljoin(base_url, url) text = re.sub(r'<[^>]+>', '', text).strip() # 移除HTML标签print(f"{i}. {text[:50]}... -> {full_url}")iflen(links) > 10:print(f"... 还有 {len(links) - 10} 个链接")else:print("未找到链接")defextract_images(html, base_url):"""提取图片链接""" img_pattern = r'<img[^>]+src=["\']([^"\']+)["\'][^>]*>' images = re.findall(img_pattern, html, re.IGNORECASE)if images:print(f"\n找到 {len(images)} 个图片:")for i, img_url inenumerate(images[:10], 1): # 只显示前10个 full_url = urljoin(base_url, img_url)print(f"{i}. {full_url}")iflen(images) > 10:print(f"... 还有 {len(images) - 10} 个图片")else:print("未找到图片")defcount_words(html):"""统计词频"""# 移除HTML标签 text = re.sub(r'<[^>]+>', ' ', html)# 移除特殊字符,只保留字母和数字 text = re.sub(r'[^\w\s]', ' ', text)# 转换为小写并分割单词 words = text.lower().split()# 统计词频 word_count = {}for word in words:iflen(word) > 2: # 只统计长度大于2的单词 word_count[word] = word_count.get(word, 0) + 1# 排序并显示前10个高频词if word_count: sorted_words = sorted(word_count.items(), key=lambda x: x[1], reverse=True)print(f"\n词频统计(前10个):")for i, (word, count) inenumerate(sorted_words[:10], 1):print(f"{i}. {word}: {count}次")else:print("未找到有效单词")# 运行网页信息提取器# simple_web_scraper()
🎯 学习总结
核心概念回顾
变量和数据类型:字符串、数字、列表、字典等
控制结构:if/elif/else、for/while循环
函数:定义、参数、返回值、作用域
模块:导入和使用标准库
异常处理:try/except语句
最佳实践
代码风格:使用有意义的变量名,添加注释
错误处理:使用try/except处理可能的错误
函数设计:保持函数简单,单一职责
代码复用:将重复的代码封装成函数
下一步学习建议
面向对象编程:类和对象
文件和数据处理:CSV、JSON、数据库
网络编程:requests库、API调用
数据科学:pandas、numpy、matplotlib
Web开发:Flask、Django框架
练习建议
📝 快速参考
常用语法速查
# 变量赋值name = "值"# 条件语句if condition:# 代码块elif other_condition:# 代码块else:# 代码块# 循环for item in iterable:# 代码块while condition:# 代码块# 函数定义deffunction_name(parameters):# 代码块return value# 异常处理try:# 可能出错的代码except Exception as e:# 错误处理
常用内置函数
len() # 获取长度type() # 获取类型str() # 转换为字符串int() # 转换为整数float() # 转换为浮点数list() # 转换为列表dict() # 转换为字典range() # 生成数字序列enumerate() # 枚举索引和值zip() # 并行迭代
恭喜您完成了Python零基础入门教程!现在您已经掌握了Python的核心语法和基本应用。继续练习和探索,您将成为一名优秀的Python程序员!🐍✨