1. 项目概述
今天我要分享一个非常实用的Python小项目——根据用户输入的名字和城市,生成彩色个性化问候语并显示当地天气信息。这个项目特别适合Python初学者练手,也适合作为AI课程的配套实践案例。
这个程序的核心功能包括:
- 接收用户输入的个人姓名和所在城市
- 将中文城市名转换为拼音(用于API调用)
- 通过天气API获取实时天气数据
- 使用彩色终端输出美化显示效果
- 整合所有信息生成个性化问候
我最初开发这个程序是为了给学员演示Python的基础语法和第三方库的使用,后来发现它其实有很多实际应用场景,比如:
- 个性化欢迎系统
- 天气提醒服务
- 命令行工具美化
- Python入门教学案例
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备
2.1 Python安装与配置
首先需要安装Python环境,我推荐使用Python 3.8+版本,因为这个项目用到的几个库在这些版本上最稳定。
安装时有两个关键点需要注意:
- 务必勾选"Add Python to PATH"选项,这样系统才能识别python命令
- 建议使用自定义安装路径,不要安装在C盘根目录下(避免权限问题)
安装完成后,可以通过命令行验证:
bash复制python --version
pip --version
2.2 开发工具选择
虽然可以使用任何文本编辑器编写Python代码,但我强烈推荐使用PyCharm社区版,原因有三:
- 智能代码补全功能强大
- 内置终端和包管理工具
- 调试功能直观易用
安装PyCharm时建议:
- 勾选"Add launchers dir to the PATH"
- 关联.py文件(方便直接双击打开)
- 创建桌面快捷方式
3. 核心功能实现
3.1 基础框架搭建
我们先创建一个新的Python项目,结构如下:
code复制weather_greeter/
├── main.py
├── requirements.txt
└── utils/
├── weather.py
└── display.py
在main.py中编写主逻辑框架:
python复制def get_user_info():
"""获取用户输入"""
name = input("请输入您的名字:")
city = input("请输入您所在的城市:")
return name, city
def main():
name, city = get_user_info()
# 后续功能将在这里添加
if __name__ == "__main__":
main()
3.2 中文转拼音处理
为了兼容天气API,我们需要将中文城市名转换为拼音。这里使用pypinyin库:
python复制from pypinyin import lazy_pinyin
def city_to_pinyin(city_name):
"""将中文城市名转换为拼音"""
return ''.join(lazy_pinyin(city_name))
实际使用时需要注意:
- 某些多音字可能需要特殊处理(如"重庆"应转为"chongqing")
- 直辖市名称需要去掉"市"字(如"北京市"→"beijing")
3.3 天气API集成
我们使用OpenWeatherMap的免费API,注册后可以获得API key。封装天气查询功能:
python复制import requests
def get_weather(city_pinyin, api_key):
"""通过API获取天气数据"""
url = f"http://api.openweathermap.org/data/2.5/weather?q={city_pinyin}&appid={api_key}&units=metric&lang=zh_cn"
try:
response = requests.get(url)
response.raise_for_status()
data = response.json()
