共计 5879 个字符,预计需要花费 15 分钟才能阅读完成。
通过查表确定星座
import sys
from datetime import date
## 12/22-1/19 魔蝎座 1/20-2/18 水瓶座 2/19-3/20 双鱼座 3/21-4/19 白羊座 4/20-5/20 金牛座
## 5/21-6/21 双子座 6/22-7/22 巨蟹座 7/23-8/22 狮子座 8/23-9/22 处女座 9/23-10/23 天秤座
## 10/24-11/22 天蝎座 11/23-12/21 射手座
zodiac_name = ("摩羯座", "水瓶座", "双鱼座", "白羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座", "天蝎座", "射手座")
zodiac_days = ((1, 20), (2, 19), (3, 21), (4, 20), (5, 21), (6, 22), (7, 23), (8, 23), (9, 23), (10, 24), (11, 23), (12, 22))
def is_valid_date(year, month, day):
try:
date(year, month, day)
except ValueError:
return False
else:
return True
try:
month = int(input("请输入月份:"))
day = int(input("请输入日期:"))
if is_valid_date(date.today().year, month, day):
for zd_num in range(12):
if zodiac_days[zd_num] > (month, day):
print("您的星座是 %s" % (zodiac_name[zd_num]))
break
elif month == 12 and (32 > day > 21):
print("您的星座是 %s" % (zodiac_name[0]))
break
else:
print("请输入正确的月份和日期")
sys.exit()
except ValueError:
print("请输入正确的月份和日期")
根据年份判断生肖
## 鼠 1,牛 2,虎 3,兔 4,龙 5,蛇 6,马 7,羊 8,猴 9,鸡 10,狗 11,猪 12
chinese_zodiac = "猴鸡狗猪鼠牛虎兔龙蛇马羊"
try:
year = int(input("请输入年份:"))
print("%s 年的生肖是 %s" % (year, chinese_zodiac[year % 12]))
except ValueError:
print("年份要输入数字")
进度条
import random
import time
BAR = chr(9608) # 9608 is '█'
def getProgressBar(progress, total, barWidth=40):
"""返回一个字符串,表示具有 barWidth 的进度条"""
progressBar = "["
# 确保 progress 在 0 ~ total 之间
if progress > total:
progress = total
if progress < 0:
progress = 0
numberOfBars = int((progress / total) * barWidth) # 计算需要多少个 █ 符号来显示进度
progressBar += BAR * numberOfBars # 添加进度条
progressBar += " " * (barWidth - numberOfBars) # 添加空白部分
progressBar += "]" # 添加右方括号
percentComplete = round(progress / total * 100, 1) # 计算百分比
progressBar += "" + str(percentComplete) +"%" # 添加百分比
progressBar += "" + str(progress) +"/" + str(total) # 添加已下载 / 总大小
return progressBar
def main():
bytesDownloaded = 0
downloadSize = 4096
while bytesDownloaded < downloadSize:
bytesDownloaded += random.randint(0, 200) # 随机下载 0~200 字节
barStr = getProgressBar(bytesDownloaded, downloadSize)
# flush = True 立即刷新输出缓冲区,确保能够立即看到输出,而不是等待缓冲区被刷新
print(barStr, end="", flush=True)
time.sleep(0.2)
print("\b" * len(barStr), end="", flush=True) # 打印退格符,使进度条回到行首
if __name__ == "__main__":
main()
DNA 可视化
import random
import sys
import time
PAUSE = 0.15 # (!) Try changing this to 0.5 or 0.0.
## These are the individual rows of the DNA animation:
ROWS = [
# 123456789 <- Use this to measure the number of spaces:
"##", # Index 0 has no {}.
"#{}-{}#",
"#{}---{}#",
"#{}-----{}#",
"#{}------{}#",
"#{}------{}#",
"#{}-----{}#",
"#{}---{}#",
"#{}-{}#",
"##", # Index 9 has no {}.
"#{}-{}#",
"#{}---{}#",
"#{}-----{}#",
"#{}------{}#",
"#{}------{}#",
"#{}-----{}#",
"#{}---{}#",
"#{}-{}#",
]
## 123456789 <- Use this to measure the number of spaces:
try:
print("DNA Animation, by https://abee.ml")
print("Press Ctrl-C to quit...")
time.sleep(2)
rowIndex = 0
while True: # Main program loop.
# Increment rowIndex to draw next row:
rowIndex = rowIndex + 1
if rowIndex == len(ROWS):
rowIndex = 0
# Row indexes 0 and 9 don't have nucleotides:
if rowIndex == 0 or rowIndex == 9:
print(ROWS[rowIndex])
continue
# Select random nucleotide pairs, guanine-cytosine and
# adenine-thymine:
randomSelection = random.randint(1, 4)
if randomSelection == 1:
leftNucleotide, rightNucleotide = "A", "T"
elif randomSelection == 2:
leftNucleotide, rightNucleotide = "T", "A"
elif randomSelection == 3:
leftNucleotide, rightNucleotide = "C", "G"
elif randomSelection == 4:
leftNucleotide, rightNucleotide = "G", "C"
# Print the row.
print(ROWS[rowIndex].format(leftNucleotide, rightNucleotide))
time.sleep(PAUSE) # Add a slight pause.
except KeyboardInterrupt:
sys.exit() # When Ctrl-C is pressed, end the program.
超级秒表
import time
print('Press ENTER to begin. Afterward, press ENTER to"click"the stopwatch.Press Ctrl-C to quit.')
input() # press Enter to begin
print("Started.")
startTime = time.time() # get the first lap's start time
lastTime = startTime
lapNum = 1
try:
while True:
input()
lapTime = round(time.time() - lastTime, 2)
totalTime = round(time.time() - startTime, 2)
print("Lap #%s: %s (%s)" % (lapNum, totalTime, lapTime), end="")
lapNum += 1
lastTime = time.time() # reset the last lap time
except KeyboardInterrupt:
# Handle the Ctrl-C exception to keep its error message from displaying.
print("nDone.")
判断闰年
year = int(input("Which year do you want to check?"))
if year % 4 == 0:
if year % 100 == 0:
if year % 400 == 0:
print('Leap year.')
else:
print('Not a leap year.')
else:
print('Leap year.')
else:
print('Not a leap year.')
爱情计算器
print("Welcome to the Love Calculator!")
name1 = input("What is your name?n")
name2 = input("What is their name?n")
name = name1 + name2
name = name.lower()
t = name.count("t")
r = name.count("r")
u = name.count("u")
e = name.count("e")
score_true = t + r + u + e
l = name.count("l")
o = name.count("o")
v = name.count("v")
e = name.count("e")
score_love = l + o + v + e
score = score_true + score_love
print()
if score < 10 or score > 90:
print(f"Your love score is {score}, you go together like coke and mentos.")
elif 40 < score < 50:
print(f"Your love score is {score}, you are alright together.")
else:
print(f"Your love score is {score}")
把 X 藏起来
row1 = ["⬜️", "⬜️", "⬜️"]
row2 = ["⬜️", "⬜️", "⬜️"]
row3 = ["⬜️", "⬜️", "⬜️"]
map = [row1, row2, row3]
print(f"{row1}n{row2}n{row3}")
## 23
position = input("Where do you want to put the treasure?n")
x = int(position[0])
y = int(position[1])
map[x - 1][y - 1] = "❌"
print(f"{row1}n{row2}n{row3}")
随机密码生成器
import random
letters = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
numbers = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
symbols = ["!", "#", "$", "%", "&", "(", ")", "*", "+"]
print("Welcome to the PyPassword Generator!")
nr_letters = int(input("How many letters would you like in your password?n"))
nr_symbols = int(input("How many symbols would you like?n"))
nr_numbers = int(input("How many numbers would you like?n"))
password_list = []
password_list.extend(random.sample(letters, nr_letters))
password_list.extend(random.sample(symbols, nr_symbols))
password_list.extend(random.sample(numbers, nr_numbers))
random.shuffle(password_list)
password = "".join(password_list)
print(f"Here is your password: {password}")
绘制螺旋图
import random
import turtle
colors = ["red", "green", "blue", "pink", "yellow", "orange"]
t = turtle.Turtle()
t.speed(0) # 设置速度为最快
turtle.bgcolor("black")
length = 100
angle = 50
size = 5
for i in range(length):
color = random.choice(colors)
t.pencolor(color)
t.fillcolor(color)
t.penup()
t.forward(i + 50)
t.pendown()
t.left(angle) # 初始方向朝右,对应角度为 0 度,逆时针方向为正方向
t.begin_fill()
t.circle(size)
t.end_fill()
turtle.exitonclick()
正文完