脚本
一、脚本是什么?
脚本(Script)是一种由计算机执行的程序代码,通常用于自动化任务或控制软件行为。它由一系列指令组成,解释器或脚本引擎可以直接执行这些指令,而无需编译成机器码。脚本语言(如Python、JavaScript、Bash等)常用于编写脚本。
二、脚本的主要特点:
- 解释执行:脚本通常由解释器逐行执行,无需编译。
- 轻量级:适合快速开发和小型任务。
- 跨平台:许多脚本语言可在多个操作系统上运行。
- 自动化:常用于自动化重复性任务,如文件处理、系统管理等。
三、常见脚本语言:
- Python:广泛用于自动化、数据处理和Web开发。
- JavaScript:主要用于Web前端和Node.js后端开发。
- Bash:用于Linux/Unix系统的命令行脚本。
- PowerShell:Windows系统的自动化脚本语言。
- Ruby:适合Web开发和脚本编写。
四、脚本的应用场景:
- 自动化任务:如批量文件处理、定时任务。
- 系统管理:如配置服务器、监控系统。
- Web开发:如前端交互、后端逻辑。
- 数据处理:如数据清洗、分析。
五、示例:
- Python脚本:
1
print("Hello, World!")
- Bash脚本:
1
2
echo "Hello, World!"
总结来说,脚本是一种灵活的工具,适用于快速开发和任务自动化。
六、十五个Python脚本
1. Hello, World!
所有程序员的经典起点,这个脚本介绍了Python语法的基础。
1 | print("Hello, World!") |
2. 简易计算器
创建一个基本的计算器,执行加法、减法、乘法和除法。
1 | def calculator(): operation = input("选择操作(+,-,*,/):") num1 = float(input("输入第一个数字:")) num2 = float(input("输入第二个数字:")) if operation == '+': print(f"{num1} + {num2} = {num1 + num2}") elif operation == '-': print(f"{num1} - {num2} = {num1 - num2}") elif operation == '*': print(f"{num1} * {num2} = {num1 * num2}") elif operation == '/': print(f"{num1} / {num2} = {num1 / num2}") else: print("无效操作") calculator() |
3. 猜数字
这个游戏随机选择一个1到100之间的数字,玩家必须猜出它。
1 | from PIL import Image import os def batch_resiimport random def guess_the_number(): number_to_guess = random.randint(1, 100) guess = None while guess != number_to_guess: guess = int(input("猜一个1到100之间的数字:")) if guess < number_to_guess: print("太低了!") elif guess > number_to_guess: print("太高了!") else: print("恭喜你!你猜对了。") guess_the_number()import random def guess_the_number(): number_to_guess = random.randint(1, 100) guess = None while guess != number_to_guess: guess = int(input("猜一个1到100之间的数字:")) if guess < number_to_guess: print("太低了!") elif guess > number_to_guess: print("太高了!") else: print("恭喜你!你猜对了。") guess_the_number()ze(folder, width, height): for filename in os.listdir(folder): if filename.endswith(('.jpeg', '.jpg', '.png')): img = Image.open(os.path.join(folder, filename)) img = img.resize((width, height)) img.save(os.path.join(folder, f"resized_{filename}")) print(f'调整了 {filename} 的大小') batch_resize('/path/to/images', 800, 600) |
4. 石头剪刀布
实现经典的石头、剪刀、布游戏。
1 | import random def rock_paper_scissors(): choices = ['rock', 'paper', 'scissors'] computer_choice = random.choice(choices) user_choice = input("选择石头、剪刀或布:").lower() if user_choice not in choices: print("无效选择") return print(f"计算机选择了:{computer_choice}") if user_choice == computer_choice: print("平局!") elif (user_choice == 'rock' and computer_choice == 'scissors') or \ (user_choice == 'scissors' and computer_choice == 'paper') or \ (user_choice == 'paper' and computer_choice == 'rock'): print("你赢了!") else: print("你输了!") rock_paper_scissors() |
5. 待办事项列表
创建一个简单的待办事项列表应用程序。
1 | def to_do_list(): tasks = [] while True: action = input("输入 'add' 添加任务,'remove' 删除任务,'view' 查看所有任务,或 'quit' 退出:").lower() if action == 'add': task = input("输入一个任务:") tasks.append(task) elif action == 'remove': task = input("输入要删除的任务:") if task in tasks: tasks.remove(task) else: print("任务未找到") elif action == 'view': print("任务:", tasks) elif action == 'quit': break else: print("无效操作") to_do_list() |
6. 基础网页抓取器
学习使用BeautifulSoup进行基础的网页抓取。
1 | import requests from bs4 import BeautifulSoup def web_scraper(): url = 'http://example.com' response = requests.get(url) soup = BeautifulSoup(response.content, 'html.parser') print(soup.prettify()) web_scraper() |
7. 天气应用
使用API获取指定城市的天气数据。
1 | import requests def weather_app(): api_key = 'your_api_key' city = input("输入城市名称:") url = f'http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}' response = requests.get(url) data = response.json() if data['cod'] == 200: main = data['main'] temperature = main['temp'] weather = data['weather'][0]['description'] print(f"温度:{temperature}") print(f"天气:{weather}") else: print("城市未找到") weather_app() |
8. 填词游戏生成器
创建一个有趣的填词游戏,用户通过输入完成一个故事。
1 | def mad_libs(): noun = input("输入一个名词:") adjective = input("输入一个形容词:") verb = input("输入一个动词:") place = input("输入一个地点:") story = f"从前,有一个喜欢在{place}做{verb}的{adjective} {noun}。" print(story) mad_libs() |
9. 斐波那契数列
生成到指定数字的斐波那契数列。
1 | def fibonacci_sequence(n): sequence = [0, 1] while len(sequence) < n: sequence.append(sequence[-1] + sequence[-2]) print(sequence) fibonacci_sequence(10) |
10. 密码生成器
创建一个脚本,生成一个随机的安全密码。
1 | import random import string def password_generator(length=12): characters = string.ascii_letters + string.digits + string.punctuation password = ''.join(random.choice(characters) for i in range(length)) print(password) password_generator() |
11. 吊死鬼游戏
创建一个经典的吊死鬼游戏,玩家猜测字母以揭示隐藏的单词。
1 | import random def hangman(): words = ['python', 'java', 'swift', 'javascript'] word = random.choice(words) guessed_letters = set() attempts = 6 while attempts > 0: display_word = ''.join([letter if letter in guessed_letters else '_' for letter in word]) print(display_word) if '_' not in display_word: print("恭喜你!你猜对了单词。") break guess = input("猜一个字母:").lower() if guess in guessed_letters: print("你已经猜过那个字母了。") elif guess in word: guessed_letters.add(guess) else: attempts -= 1 print(f"猜错了。你还有{attempts}次机会。") if attempts == 0: print(f"游戏结束!单词是'{word}'。") hangman() |
12. 质数检查器
编写一个脚本,检查给定的数字是否为质数。
1 | def is_prime(n): if n <= 1: return False for i in range(2, int(n**0.5) + 1): if n % i == 0: return False return True number = int(input("输入一个数字:")) if is_prime(number): print(f"{number} 是一个质数。") else: print(f"{number} 不是一个质数。") |
13. 货币转换器
创建一个简单的货币转换器,使用 API 获取最新的汇率。
1 | import requests def currency_converter(): api_key = 'your_api_key' base_currency = input("输入基准货币(例如,USD):").upper() target_currency = input("输入目标货币(例如,EUR):").upper() amount = float(input("输入金额:")) url = f'https://api.exchangerate-api.com/v4/latest/{base_currency}' response = requests.get(url) data = response.json() if target_currency in data['rates']: exchange_rate = data['rates'][target_currency] converted_amount = amount * exchange_rate print(f"{amount} {base_currency} 等于 {converted_amount:.2f} {target_currency}") else: print("货币不支持。") currency_converter() |
14. BMI计算器
创建一个脚本,根据用户输入计算身体质量指数(BMI)。
1 | def bmi_calculator(): height = float(input("输入身高(米):")) weight = float(input("输入体重(千克):")) bmi = weight / (height ** 2) print(f"你的BMI是:{bmi:.2f}") if bmi < 18.5: print("你体重过轻。") elif 18.5 <= bmi < 24.9: print("你体重正常。") elif 25 <= bmi < 29.9: print(" |
15. 井字棋游戏
创建一个可供两人游玩的井字棋游戏。
1 | def print_board(board): for row in board: print(" | ".join(row)) print("-" * 5) def check_winner(board, player): for row in board: if all([cell == player for cell in row]): return True for col in range(3): if all([board[row][col] == player for row in range(3)]): return True if all([board[i][i] == player for i in range(3)]) or all([board[i][2-i] == player for i in range(3)]): return True return False def tic_tac_toe(): board = [[' ' for _ in range(3)] for _ in range(3)] players = ['X', 'O'] turn = 0 for _ in range(9): print_board(board) player = players[turn % 2] print(f"Player {player}'s turn") row = int(input("Enter row (0, 1, 2): ")) col = int(input("Enter column (0, 1, 2): ")) if board[row][col] == ' ': board[row][col] = player if check_winner(board, player): print_board(board) print(f"Player {player} wins!") return turn += 1 else: print("Cell already taken. Try again.") print_board(board) print("It's a tie!") tic_tac_toe() |
总结
这十五个脚本涵盖了一系列基础的Python概念,并为初学者提供了坚实的基础。通过这些项目的实践,新程序员可以建立起信心,并逐渐解决Python中更复杂的问题。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 梨花先雪!
评论