当前位置:实例文章 » Python实例» [文章]20+个小而精的Python实战案例(附源码和数据)

20+个小而精的Python实战案例(附源码和数据)

发布人:shili8 发布时间:2024-07-21 14:25 阅读次数:0

以下是为您生成的一篇包含20多个小而精的 Python实战案例的文章,包含了源码、数据和部分注释:---#20+个小而精的 Python实战案例(附源码和数据)Python是一种功能强大、简单易学的编程语言,在数据处理、科学计算、机器学习、Web开发等领域都有广泛的应用。本文将为您介绍20多个实用的 Python实战案例,每个案例都包含源码和数据,希望能帮助您更好地掌握 Python编程。##案例1:猜数字游戏

import randomdef guess_game(): num = random.randint(1,100) guess =0 while guess!= num: guess = int(input("请输入您猜测的数字(1-100): ")) if guess > num: print("您猜的数字太大了,请重新猜测。") elif guess < num: print("您猜的数字太小了,请重新猜测。") print("恭喜您猜对了!")guess_game()
这个案例实现了一个简单的猜数字游戏,程序会随机生成一个1到100之间的数字,玩家通过输入猜测的数字来尝试猜出这个数字。##案例2:计算阶乘
def factorial(n): if n ==0 or n ==1: return1 else: return n * factorial(n -1)print(factorial(5))
这个函数使用递归的方式计算一个数的阶乘。##案例3:判断闰年
def is_leap_year(year): if (year %4 ==0 and year %100!=0) or year %400 ==0: return True else: return Falseprint(is_leap_year(2024))
该函数用于判断给定的年份是否为闰年。##案例4:九九乘法表
for i in range(1,10): for j in range(1, i +1): print(f"{j} * {i} = {i * j}", end="t") print()
通过两层循环打印出九九乘法表。##案例5:冒泡排序
def bubble_sort(arr): n = len(arr) for i in range(n): for j in range(0, n - i -1): if arr[j] > arr[j +1] : arr[j], arr[j +1] = arr[j +1], arr[j]arr = [64,34,25,12,22,11,90]bubble_sort(arr)print("排序后的数组:", arr)
冒泡排序是一种简单的排序算法。##案例6:选择排序
def selection_sort(arr): for i in range(len(arr)): min_idx = i for j in range(i +1, len(arr)): if arr[j] < arr[min_idx]: min_idx = j arr[i], arr[min_idx] = arr[min_idx], arr[i]arr = [12,11,13,5,6]selection_sort(arr)print("排序后的数组:", arr)
选择排序算法的实现。##案例7:插入排序
def insertion_sort(arr): for i in range(1, len(arr)): key = arr[i] j = i -1 while j >=0 and key < arr[j] : arr[j +1] = arr[j] j -=1 arr[j +1] = keyarr = [12,11,13,5,6]insertion_sort(arr)print("排序后的数组:", arr)
插入排序的代码示例。##案例8:快速排序
def quick_sort(arr): if len(arr) <=1: return arr pivot = arr[len(arr) //2] left = [x for x in arr if x < pivot] middle = [x for x in arr if x == pivot] right = [x for x in arr if x > pivot] return quick_sort(left) + middle + quick_sort(right)arr = [12,11,13,5,6]sorted_arr = quick_sort(arr)print("排序后的数组:", sorted_arr)
快速排序是一种高效的排序算法。##案例9:斐波那契数列
def fibonacci(n): fib_seq = [0,1] while len(fib_seq) < n: fib_seq.append(fib_seq[-1] + fib_seq[-2]) return fib_seqprint(fibonacci(10))
生成指定长度的斐波那契数列。##案例10:文件读写
#写入文件with open('example.txt', 'w') as f: f.write('Hello, World!
')#读取文件with open('example.txt', 'r') as f: content = f.read() print(content)
演示了如何进行文件的写入和读取操作。##案例11:数据清洗与预处理
import pandas as pddata = {'Name': ['Alice', 'Bob', 'Charlie', 'David'], 'Age': ['25', '30', '40', ''], 'Score': ['85', '90', '75', '80']}df = pd.DataFrame(data)#处理缺失值df['Age'] = df['Age'].fillna(0)#转换数据类型df['Age'] = df['Age'].astype(int)print(df)
使用 `pandas`库进行数据清洗和预处理。##案例12:简单的数据可视化
import matplotlib.pyplot as pltx = [1,2,3,4,5]y = [10,8,6,4,2]plt.plot(x, y)plt.xlabel('X轴')plt.ylabel('Y轴')plt.title('简单折线图')plt.show()
使用 `matplotlib`库绘制简单的折线图。##案例13:词频统计
text = "Hello, World! How are you? I am fine. Thank you."words = text.split()word_count = {}for word in words: if word in word_count: word_count[word] +=1 else: word_count[word] =1for word, count in word_count.items(): print(f"{word}: {count}")
统计一段文本中单词的出现频率。##案例14:生成随机密码
import randomimport stringdef generate_password(length): all_characters = string.ascii_letters + string.digits + string.punctuation password = ''.join(random.choice(all_characters) for i in range(length)) return passwordprint(generate_password(10))
生成指定长度的随机密码。##案例15:网络爬虫
import requestsfrom bs4 import BeautifulSoupurl = ' = requests.get(url)soup = BeautifulSoup(response.text, 'html.parser')#提取标题title = soup.title.stringprint(title)
这是一个简单的网络爬虫示例,获取网页的标题。##案例16:邮件发送
import smtplibfrom email.mime.text import MIMETextsender_email = "your_email@example.com"receiver_email = "recipient_email@example.com"password = "your_password"message = "这是一封测试邮件。"msg = MIMEText(message)msg['Subject'] = "测试邮件"msg['From'] = sender_emailmsg['To'] = receiver_emailserver = smtplib.SMTP('smtp.example.com',587)server.starttls()server.login(sender_email, password)server.sendmail(sender_email, receiver_email, msg.as_string())server.quit()
使用 Python发送电子邮件。##案例17:多线程编程
import threadingimport timedef thread_function(name): print(f"Thread {name} is running...") time.sleep(2) print(f"Thread {name} completed")threads = []for i in range(5): t = threading.Thread(target=thread_function, args=(i,)) threads.append(t) t.start()for thread in threads: thread.join()
展示了多线程编程的基本用法。##案例18:面向对象编程
class Person: def __init__(self, name, age): self.name = name self.age = age def introduce(self): print(f"我叫{self.name},今年{self.age}岁。")p1 = Person("Alice",25)p1.introduce()
通过创建 `Person`类来实现面向对象编程。##案例19:异常处理
try: num1 = int(input("请输入第一个数字: ")) num2 = int(input("请输入第二个数字: ")) result = num1 / num2 print("结果:", result)except ValueError: print("输入不是有效的整数。")except ZeroDivisionError: print("不能除以零。")
演示了如何处理程序中的异常情况。##案例20:数据库操作(使用 SQLite)
import sqlite3conn = sqlite3.connect('example.db')cursor = conn.cursor()cursor.execute('''CREATE TABLE IF NOT EXISTS students (id INT PRIMARY KEY, name TEXT, age INT)''')cursor.execute("INSERT INTO students (id, name, age) VALUES (1, 'Alice',20)")cursor.execute("INSERT INTO students (id, name, age) VALUES (2, 'Bob',21)")conn.commit()cursor.execute("SELECT * FROM students")results = cursor.fetchall()for row in results: print(row)conn.close()
使用 `SQLite`数据库进行数据的插入、查询操作。---以上就是为您提供的20多个 Python实战案例,希望对您有所帮助!您可以根据自己的需求选择感兴趣的案例进行深入学习和实践。

相关标签:python源码
其他信息

其他资源

Top