即使你是零基礎(chǔ)的小白,也不用擔(dān)心,我會(huì)用最通俗易懂的語言和生活中的例子來解釋,讓你輕松掌握。1. Hello, World!:編程世界的敲門磚 每個(gè)程序員的第一個(gè)程序幾乎都是“Hello, World!”,它象征著你正式踏入了編程的世界。就像學(xué)習(xí)任何一門外語,第一句話都是“你好”一樣,這是開啟新征程的第一步。 # Hello, World! 程序 print('Hello, World!')
這段代碼非常簡單,print()函數(shù)的作用就是在屏幕上顯示括號(hào)里的內(nèi)容。就像你在微信上發(fā)送消息一樣,你輸入的內(nèi)容會(huì)顯示在對(duì)方的屏幕上。 2. 簡易計(jì)算器:讓Python幫你算算數(shù) 生活中我們經(jīng)常需要進(jìn)行一些簡單的計(jì)算,Python可以輕松地扮演計(jì)算器的角色。 # 簡易計(jì)算器 num1 = float(input('請(qǐng)輸入第一個(gè)數(shù)字:')) # 獲取用戶輸入的第一個(gè)數(shù)字并轉(zhuǎn)換為浮點(diǎn)數(shù) num2 = float(input('請(qǐng)輸入第二個(gè)數(shù)字:')) # 獲取用戶輸入的第二個(gè)數(shù)字并轉(zhuǎn)換為浮點(diǎn)數(shù) operator = input('請(qǐng)輸入運(yùn)算符(+、-、*、/):') # 獲取用戶輸入的運(yùn)算符
if operator == '+': result = num1 + num2 elif operator == '-': result = num1 - num2 elif operator == '*': result = num1 * num2 elif operator == '/': if num2 == 0: # 處理除數(shù)為0的情況 print('除數(shù)不能為0') else: result = num1 / num2 else: print('無效的運(yùn)算符')
if 'result' in locals(): # 檢查result變量是否存在,避免未定義錯(cuò)誤 print('結(jié)果:', result)
這個(gè)簡易計(jì)算器可以進(jìn)行加減乘除運(yùn)算。input()函數(shù)用于獲取用戶的輸入,就像你在ATM機(jī)上輸入密碼一樣。if-elif-else語句用于判斷不同的運(yùn)算符,就像你在選擇外賣平臺(tái)上的不同菜品一樣。 3. 猜數(shù)字:和Python玩?zhèn)€游戲 讓我們來玩一個(gè)猜數(shù)字的游戲,讓Python隨機(jī)生成一個(gè)數(shù)字,你來猜猜看。 # 猜數(shù)字游戲 import random
number = random.randint(1, 100) # 生成1到100之間的隨機(jī)整數(shù) guess = 0 while guess != number: guess = int(input('猜一個(gè)1到100之間的數(shù)字:')) if guess < number: print('太小了,再試試!') elif guess > number: print('太大了,再試試!') else: print('恭喜你,猜對(duì)了!')
random.randint(1, 100)會(huì)生成一個(gè)1到100之間的隨機(jī)整數(shù),就像抽獎(jiǎng)一樣,你不知道會(huì)抽到哪個(gè)數(shù)字。while循環(huán)會(huì)一直運(yùn)行,直到你猜對(duì)為止,就像玩游戲一樣,直到你通關(guān)為止。 4. 石頭剪刀布:經(jīng)典游戲Python版 石頭剪刀布,這個(gè)經(jīng)典的游戲也可以用Python來實(shí)現(xiàn)。 # 石頭剪刀布游戲 import random
choices = ['石頭', '剪刀', '布'] computer_choice = random.choice(choices) # 計(jì)算機(jī)隨機(jī)選擇 user_choice = input('請(qǐng)輸入你的選擇(石頭、剪刀、布):')
print('你的選擇:', user_choice) print('計(jì)算機(jī)的選擇:', computer_choice)
# 判斷勝負(fù) # ...
這里使用了random.choice()函數(shù),讓計(jì)算機(jī)從列表中隨機(jī)選擇一個(gè)選項(xiàng),就像你讓朋友幫你隨機(jī)選擇一個(gè)餐廳一樣。 5. 待辦事項(xiàng)列表:讓Python幫你管理任務(wù) 待辦事項(xiàng)列表可以幫助你更好地管理你的任務(wù)。 # 待辦事項(xiàng)列表 todo_list = [] while True: action = input('請(qǐng)輸入操作(添加、查看、退出):') if action == '添加': item = input('請(qǐng)輸入待辦事項(xiàng):') todo_list.append(item) elif action == '查看': for item in todo_list: print(item) elif action == '退出': break else: print('無效的操作')
6. 基礎(chǔ)網(wǎng)頁抓取器:獲取網(wǎng)絡(luò)信息 想象一下,你想要收集某個(gè)網(wǎng)站上的所有商品價(jià)格,或者你想自動(dòng)下載一些圖片,這時(shí)候就需要用到網(wǎng)頁抓取器。 # 基礎(chǔ)網(wǎng)頁抓取器 import requests from bs4 import BeautifulSoup
url = 'https://www.' # 將此替換為你想要抓取的網(wǎng)站 response = requests.get(url) soup = BeautifulSoup(response.content, 'html.parser')
# 提取標(biāo)題 title = soup.title.string print('網(wǎng)頁標(biāo)題:', title)
# 提取所有鏈接 links = soup.find_all('a') for link in links: print(link.get('href'))
# 需要安裝requests和beautifulsoup4庫: pip install requests beautifulsoup4
這個(gè)腳本使用了requests庫來獲取網(wǎng)頁內(nèi)容,就像你在瀏覽器中輸入網(wǎng)址訪問網(wǎng)頁一樣。BeautifulSoup庫則像一個(gè)過濾器,幫助你從雜亂的網(wǎng)頁代碼中提取你需要的信息,就像你從一堆文件中找到你想要的那一份一樣。 7. 天氣應(yīng)用:實(shí)時(shí)掌握天氣信息 想知道今天的天氣怎么樣?Python可以幫你實(shí)現(xiàn)一個(gè)簡單的天氣應(yīng)用。 # 天氣應(yīng)用 (簡化示例,需要使用天氣API) import requests
city = input('請(qǐng)輸入城市名稱:') api_key = 'YOUR_API_KEY' # 替換為你的API密鑰 url = f'http://api./v1/current.json?key={api_key}&q={city}' # 示例API,請(qǐng)?zhí)鎿Q為實(shí)際可用的天氣API
response = requests.get(url) weather_data = response.json()
if 'current' in weather_data: temperature = weather_data['current']['temp_c'] condition = weather_data['current']['condition']['text'] print(f'{city} 當(dāng)前溫度:{temperature}℃,天氣狀況:{condition}') else: print('獲取天氣信息失敗')
# 需要安裝requests庫: pip install requests # 需要獲取天氣API密鑰并替換示例中的YOUR_API_KEY
這個(gè)簡化的例子使用了天氣API來獲取天氣數(shù)據(jù),就像你打電話給氣象臺(tái)詢問天氣一樣。你需要注冊一個(gè)天氣API并獲取API密鑰才能使用。 8. 瘋狂填詞游戲生成器:發(fā)揮你的創(chuàng)意 想玩一個(gè)填詞游戲?Python可以幫你生成游戲模板。 # 瘋狂填詞游戲生成器 import random
words = ['apple', 'banana', 'orange'] # 詞語列表 template = '我喜歡吃____,也喜歡吃____,但更喜歡吃____。'
blanks = template.count('____') selected_words = random.sample(words, blanks)
for word in selected_words: template = template.replace('____', word, 1)
print(template)
這個(gè)腳本隨機(jī)選擇一些單詞填入模板中,就像你玩填字游戲一樣,你需要選擇合適的詞語填入空格。 9. 斐波那契數(shù)列:探索數(shù)學(xué)之美 斐波那契數(shù)列是一個(gè)經(jīng)典的數(shù)學(xué)數(shù)列,每一項(xiàng)都是前兩項(xiàng)的和。 # 斐波那契數(shù)列 def fibonacci(n): if n <= 1: return n else: return fibonacci(n-1) + fibonacci(n-2)
n = int(input('請(qǐng)輸入要計(jì)算的斐波那契數(shù)列項(xiàng)數(shù):')) result = fibonacci(n) print(f'第{n}項(xiàng)斐波那契數(shù)是:{result}')
這個(gè)腳本使用了遞歸函數(shù)來計(jì)算斐波那契數(shù)列,就像你一步一步爬樓梯一樣,每一步都依賴于前兩步。 10. 密碼生成器:守護(hù)你的賬戶安全 一個(gè)強(qiáng)密碼是網(wǎng)絡(luò)安全的第一道防線。Python可以幫助你生成隨機(jī)的、難以破解的密碼。 # 密碼生成器 import random import string
def generate_password(length=12): characters = string.ascii_letters + string.digits + string.punctuation password = ''.join(random.choice(characters) for i in range(length)) return password
password = generate_password() print('生成的密碼:', password)
# 可以根據(jù)需要調(diào)整length參數(shù)來控制密碼長度
這個(gè)腳本就像一個(gè)密碼鎖,它使用字母、數(shù)字和符號(hào)的組合生成隨機(jī)密碼,增加密碼的復(fù)雜度,就像用不同的鎖芯組合成一個(gè)更安全的鎖一樣. 11. 吊死鬼游戲:挑戰(zhàn)你的詞匯量 吊死鬼游戲是一個(gè)經(jīng)典的猜詞游戲。 # 吊死鬼游戲 (簡化版) word = 'apple' guesses = [] max_attempts = 6
while max_attempts > 0: masked_word = '' for letter in word: if letter in guesses: masked_word += letter else: masked_word += '_' print(masked_word)
if masked_word == word: print('恭喜你,你贏了!') break
guess = input('猜一個(gè)字母:') guesses.append(guess)
if guess not in word: max_attempts -= 1 print('猜錯(cuò)了,你還有', max_attempts, '次機(jī)會(huì)')
if max_attempts == 0: print('你輸了,單詞是:', word)
就像猜謎語一樣,你根據(jù)提示逐步猜測單詞,每次猜錯(cuò)都
會(huì)減少你的機(jī)會(huì)。 12. 質(zhì)數(shù)檢查器:探索數(shù)學(xué)奧秘 質(zhì)數(shù)是只能被1和自身整除的數(shù)。 # 質(zhì)數(shù)檢查器 def is_prime(num): if num <= 1: return False for i in range(2, int(num**0.5) + 1): if num % i == 0: return False return True
num = int(input('請(qǐng)輸入一個(gè)數(shù)字:')) if is_prime(num): print(num, '是質(zhì)數(shù)') else: print(num, '不是質(zhì)數(shù)')
就像篩子一樣,這個(gè)腳本會(huì)檢查一個(gè)數(shù)字是否能被其他數(shù)字整除,如果不是,則它是質(zhì)數(shù)。 13. 貨幣轉(zhuǎn)換器:方便你的旅行 旅行時(shí),你需要將貨幣轉(zhuǎn)換為當(dāng)?shù)刎泿拧?/span> # 貨幣轉(zhuǎn)換器 (簡化示例,需要使用匯率API)
# 需要安裝requests庫: pip install requests # 需要獲取匯率API密鑰并替換示例中的YOUR_API_KEY
import requests
def convert_currency(amount, from_currency, to_currency): api_key = 'YOUR_API_KEY' # 替換為你的API密鑰 url = f'https://api./v4/latest/{from_currency}' # 示例API,請(qǐng)?zhí)鎿Q為實(shí)際可用的匯率API
response = requests.get(url) data = response.json()
if 'rates' in data and to_currency in data['rates']: rate = data['rates'][to_currency] converted_amount = amount * rate return converted_amount else: return None
amount = float(input('請(qǐng)輸入金額:')) from_currency = input('請(qǐng)輸入原始貨幣(例如 USD):').upper() to_currency = input('請(qǐng)輸入目標(biāo)貨幣(例如 CNY):').upper()
converted_amount = convert_currency(amount, from_currency, to_currency)
if converted_amount: print(f'{amount} {from_currency} 等于 {converted_amount} {to_currency}') else: print('無法轉(zhuǎn)換貨幣')
這個(gè)簡化的例子使用匯率API來獲取最新的匯率信息,就像你在銀行兌換貨幣一樣。 14. BMI計(jì)算器:關(guān)注你的健康 BMI是衡量體重是否健康的一個(gè)指標(biāo)。 # BMI計(jì)算器 height = float(input('請(qǐng)輸入身高(米):')) weight = float(input('請(qǐng)輸入體重(公斤):'))
bmi = weight / (height ** 2) print('你的BMI是:', bmi)
就像用尺子測量身高一樣,這個(gè)腳本根據(jù)你的身高和體重計(jì)算你的BMI。 15. 定時(shí)發(fā)送郵件: 這個(gè)腳本可以定時(shí)自動(dòng)發(fā)送郵件。例如,你可以用它來定時(shí)發(fā)送生日祝福、提醒事項(xiàng),或者發(fā)送定期報(bào)告等。 它使用了smtplib庫來發(fā)送郵件,schedule庫來定時(shí)執(zhí)行任務(wù)。 import smtplib # 用于發(fā)送郵件 from email.mime.text import MIMEText # 構(gòu)建郵件內(nèi)容 import schedule # 定時(shí)任務(wù)庫 import time # 時(shí)間庫
def send_email(): '''發(fā)送郵件的函數(shù)''' msg_from = '你的郵箱地址' # 替換為你的郵箱地址 passwd = '你的郵箱密碼' # 替換為你的郵箱密碼 (注意:為了安全,建議不要直接將密碼寫在代碼中,可以使用環(huán)境變量等方式) msg_to = '接收方郵箱地址' # 替換為接收方郵箱地址
subject = '定時(shí)郵件測試' # 郵件主題 content = '這是一封定時(shí)發(fā)送的郵件。' # 郵件內(nèi)容 msg = MIMEText(content) # 創(chuàng)建郵件對(duì)象 msg['Subject'] = subject # 設(shè)置郵件主題 msg['From'] = msg_from # 設(shè)置發(fā)送方 msg['To'] = msg_to # 設(shè)置接收方
try: s = smtplib.SMTP_SSL('smtp.qq.com', 465) # 連接到QQ郵箱的SMTP服務(wù)器,如果是其他郵箱服務(wù)商,需要修改服務(wù)器地址和端口號(hào) s.login(msg_from, passwd) # 登錄郵箱 s.sendmail(msg_from, msg_to, msg.as_string()) # 發(fā)送郵件 print('郵件發(fā)送成功') except Exception as e: # 處理可能出現(xiàn)的異常 print('郵件發(fā)送失敗:', e) finally: s.quit() # 關(guān)閉連接
# 使用schedule庫設(shè)置定時(shí)任務(wù),每天10點(diǎn)發(fā)送郵件 schedule.every().day.at('10:00').do(send_email) # 你可以修改時(shí)間
while True: schedule.run_pending() # 檢查是否有待執(zhí)行的任務(wù) time.sleep(1) # 每秒檢查一次
# 需要安裝必要的庫: pip install smtplib schedule
16. 自動(dòng)化文件整理: 這個(gè)腳本可以自動(dòng)整理指定文件夾中的文件,按照文件擴(kuò)展名進(jìn)行分類。例如,它可以將圖片、文檔、視頻等不同類型的文件分別移動(dòng)到不同的文件夾中,保持你的文件 organized。它使用了os庫來操作文件和文件夾,shutil庫來移動(dòng)文件. import os # 用于操作文件和文件夾 import shutil # 用于移動(dòng)文件
def organize_files(source_folder, dest_folder): '''整理文件的函數(shù)''' for filename in os.listdir(source_folder): # 遍歷源文件夾中的所有文件和文件夾 source_path = os.path.join(source_folder, filename) # 獲取文件的完整路徑 if os.path.isfile(source_path): # 判斷是否是文件,而不是文件夾 ext = os.path.splitext(filename)[1].lower() # 獲取文件擴(kuò)展名,并轉(zhuǎn)換為小寫 dest_path = os.path.join(dest_folder, ext[1:]) # 在目標(biāo)文件夾中創(chuàng)建以擴(kuò)展名命名的子文件夾 (例如:.jpg文件會(huì)被移動(dòng)到 'jpg' 文件夾中) os.makedirs(dest_path, exist_ok=True) # 創(chuàng)建目標(biāo)文件夾,如果已存在則不報(bào)錯(cuò) shutil.move(source_path, dest_path) # 將文件移動(dòng)到目標(biāo)文件夾
# 替換為你想要整理的文件夾路徑 source_folder = '/path/to/your/source/folder' # 源文件夾路徑 dest_folder = '/path/to/your/destination/folder' # 目標(biāo)文件夾路徑 organize_files(source_folder, dest_folder)
17. 生成二維碼: 這個(gè)腳本可以生成二維碼圖片。你可以將文本、網(wǎng)址、聯(lián)系方式等信息編碼到二維碼中,方便用戶掃描獲取信息。它使用qrcode庫來生成二維碼。 import qrcode # 二維碼庫
data = 'https://www.' # 你想要編碼到二維碼中的數(shù)據(jù),可以是網(wǎng)址、文本等 img = qrcode.make(data) # 生成二維碼對(duì)象 img.save('qrcode.png') # 保存二維碼圖片為png格式
# 需要安裝qrcode庫: pip install qrcode
18. 圖像處理 (調(diào)整大小): 這個(gè)腳本可以調(diào)整圖片的大小。你可以指定新的寬度和高度,將圖片縮放到你需要的尺寸。它使用PIL庫 (Pillow) 來處理圖像。 import qrcode # 二維碼庫
data = 'https://www.' # 你想要編碼到二維碼中的數(shù)據(jù),可以是網(wǎng)址、文本等 img = qrcode.make(data) # 生成二維碼對(duì)象 img.save('qrcode.png') # 保存二維碼圖片為png格式
# 需要安裝qrcode庫: pip install qrcode
19. 批量重命名文件: 這個(gè)腳本可以批量重命名指定文件夾中的文件,例如添加序號(hào)、修改擴(kuò)展名等。這在處理大量文件時(shí)非常有用,例如批量重命名照片、文檔等。 import os
def batch_rename(folder_path, new_name_prefix='file_'): '''批量重命名文件的函數(shù)''' i = 1 for filename in os.listdir(folder_path): old_path = os.path.join(folder_path, filename) if os.path.isfile(old_path): ext = os.path.splitext(filename)[1] # 獲取文件擴(kuò)展名 new_name = f'{new_name_prefix}{i}{ext}' new_path = os.path.join(folder_path, new_name) os.rename(old_path, new_path) i += 1 print(f'已將 {filename} 重命名為 {new_name}')
folder_path = '/path/to/your/folder' # 將此替換為你的文件夾路徑 batch_rename(folder_path)
20. 簡單的網(wǎng)頁服務(wù)器: 這個(gè)腳本可以創(chuàng)建一個(gè)簡單的網(wǎng)頁服務(wù)器,讓你可以通過瀏覽器訪問本地電腦上的文件。這在開發(fā)和測試網(wǎng)頁時(shí)非常有用。 import http.server import socketserver
PORT = 8000 # 端口號(hào)
Handler = http.server.SimpleHTTPRequestHandler
with socketserver.TCPServer(('', PORT), Handler) as httpd: print('serving at port', PORT) httpd.serve_forever()
# 運(yùn)行后,在瀏覽器中訪問 http://localhost:8000 即可
21. 下載YouTube視頻: 這個(gè)腳本可以下載YouTube視頻,方便你離線觀看。 from pytube import YouTube
def download_youtube_video(url, resolution='highest'): '''下載YouTube視頻的函數(shù)''' try: yt = YouTube(url) stream = yt.streams.filter(progressive=True, file_extension='mp4').order_by('resolution').desc().first() if not stream: print('找不到合適的視頻流') return
print(f'正在下載: {yt.title}') stream.download() # 下載到當(dāng)前目錄 print('下載完成!')
except Exception as e: print(f'下載失敗: {e}')
video_url = 'https://www./watch?v=你的視頻ID' # 替換為你要下載的視頻鏈接 download_youtube_video(video_url)
# 需要安裝pytube庫: pip install pytube
希望今天的分享能讓你感受到Python的趣味性和實(shí)用性。繼續(xù)探索,你將發(fā)現(xiàn)更多Python的精彩應(yīng)用!
|