本文共 8677 字,大约阅读时间需要 28 分钟。
随着技术的不断进步,Python作为一门强大的编程语言,正在被越来越多的开发者选择。以下是一些实用的Python学习资源和代码示例,供开发者参考和学习。
TempStr = input("请输入带有符号的温度值: ")if TempStr[-1] in ['F', 'f']: C = (eval(TempStr[0:-1]) - 32) / 1.8 print("转换后的温度是{:.2f}C".format(C))elif TempStr[-1] in ['C', 'c']: F = 1.8 * eval(TempStr[0:-1]) + 32 print("转换后的温度是{:.2f}F".format(F))else: print("输入格式错误") 简介:这是一个用于温度转换的工具,能够将华氏温度转换为摄氏温度,反之亦行。输入温度值后,系统会判断温度单位并进行相应转换,最后输出结果。
import turtleturtle.setup(650, 350, 200, 200)turtle.penup()turtle.fd(-250)turtle.pendown()turtle.pensize(25)turtle.pencolor("purple")turtle.seth(-40)for i in range(4): turtle.circle(40, 80) turtle.circle(-40, 80)turtle.circle(40, 80/2)turtle.fd(40)turtle.circle(16, 180)turtle.fd(40 * 2/3)turtle.done() 简介:这是一个使用Python的turtled库绘制简单图形的示例,生成了一幅包含多个圆弧和线条的图形。代码通过多个turtle函数调用,逐步构建出复杂的绘图效果。
dayup = 1.0dayfactor = 0.01for i in range(365): if i % 7 in [6,0]: dayup = dayup*(1-dayfactor) else: dayup = dayup*(1+dayfactor)print("工作日的力量:{:.2f} ".format(dayup)) 简介:这段代码模拟了一个天气天气力的变化过程。通过循环计算365天中每一天的天气力值,根据星期和天气力变化因子进行调整,最后输出工作日的总体力量值。
import timescale = 50print("执行开始".center(scale//2, "-"))start = time.perf_counter()for i in range(scale+1): a = '*' * i b = '.' * (scale - i) c = (i/scale)*100 dur = time.perf_counter() - start print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end='') time.sleep(0.1)print("\n"+"执行结束".center(scale//2,'-')) 简介:这是一个实现文本进度条的代码示例。通过计算当前进度百分比和耗时,输出一条动态更新的进度条,直到任务完成。代码利用了字符替换和光标位置的控制,实现了交互式的进度显示。
from random import randomfrom time import perf_counterDARTS = 1000*1000hits = 0.0start = perf_counter()for i in range(1, DARTS+1): x, y = random(), random() dist = pow(x ** 2 + y ** 2, 0.5) if dist <= 1.0: hits = hits + 1pi = 4 * (hits/DARTS)print("圆周率值是: {}".format(pi))print("运行时间是: {:.5f}s".format(perf_counter() - start)) 简介:这是一个利用蒙特卡洛方法估算圆周率的代码。通过模拟投掷点在单位圆内的概率,计算出圆周率的近似值。同时,代码还记录了整个过程的运行时间,供用户参考。
import turtle, timedef drawGap(): #绘制数码管间隔 turtle.penup() turtle.fd(5)def drawLine(draw): #绘制单段数码管 drawGap() turtle.pendown() if draw else turtle.penup() turtle.fd(40) drawGap() turtle.right(90)def drawDigit(d): #根据数字绘制七段数码管 drawLine(True) if d in [2,3,4,5,6,8,9] else drawLine(False) drawLine(True) if d in [0,1,3,4,5,6,7,8,9] else drawLine(False) drawLine(True) if d in [0,2,3,5,6,8,9] else drawLine(False) drawLine(True) if d in [0,2,6,8] else drawLine(False) turtle.left(90) drawLine(True) if d in [0,4,5,6,8,9] else drawLine(False) drawLine(True) if d in [0,2,3,5,6,7,8,9] else drawLine(False) drawLine(True) if d in [0,1,2,3,4,7,8,9] else drawLine(False) turtle.left(180) turtle.penup() turtle.fd(20)def drawDate(date): turtle.pencolor("red") for i in date: if i == '-': turtle.write('年',font=("Arial", 18, "normal")) turtle.pencolor("green") turtle.fd(40) elif i == '=': turtle.write('月',font=("Arial", 18, "normal")) turtle.pencolor("blue") turtle.fd(40) elif i == '+': turtle.write('日',font=("Arial", 18, "normal")) else: drawDigit(eval(i))def main(): turtle.setup(800, 350, 200, 200) turtle.penup() turtle.fd(-350) turtle.pensize(5)# drawDate('2018-10=10+') drawDate(time.strftime('%Y-%m=%d+',time.gmtime())) turtle.hideturtle() turtle.done()main() 简介:这是一个实现七段数码管显示的代码。通过定义七段数码管的各个部分,能够根据输入的数字绘制对应的七段显示图形。代码还支持日期和时间的显示,适用于需要显示时间或日期的场景。
import turtledef koch(size, n): if n == 0: turtle.fd(size) else: for angle in [0, 60, -120, 60]: turtle.left(angle) koch(size/3, n-1)def main(): turtle.setup(600,600) turtle.penup() turtle.goto(-200, 100) turtle.pendown() turtle.pensize(2) level = 3 # 3阶科赫雪花,阶数 koch(400,level) turtle.right(120) koch(400,level) turtle.right(120) koch(400,level) turtle.hideturtle()main()
简介:这是一个绘制科赫雪花的代码。通过递归函数koch,根据给定的大小和层数生成科赫雪花的绘图。代码还支持多次绘制和隐藏turtle对象,确保绘图不被破坏。
def getNum(): #获取用户不定长度的输入 nums = [] iNumStr = input("请输入数字(回车退出): ") while iNumStr != "": nums.append(eval(iNumStr)) iNumStr = input("请输入数字(回车退出): ") return nums def mean(numbers): #计算平均值 s = 0.0 for num in numbers: s = s + num return s / len(numbers) def dev(numbers, mean): #计算方差 sdev = 0.0 for num in numbers: sdev = sdev + (num - mean)**2 return pow(sdev / (len(numbers)-1), 0.5) def median(numbers): #计算中位数 sorted(numbers) size = len(numbers) if size % 2 == 0: med = (numbers[size//2-1] + numbers[size//2])/2 else: med = numbers[size//2] return med n = getNum() #主体函数m = mean(n)print("平均值:{},方差:{:.2},中位数:{}.".format(m, dev(n,m),median(n))) 简介:这是一个统计学工具,能够计算一组数字的平均值、方差和中位数。通过函数调用,用户可以输入数字并获取所需的统计值,适合数据分析和处理场景。
def getText(): txt = open("hamlet.txt", "r").read() txt = txt.lower() for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~': txt = txt.replace(ch, " ") #将文本中特殊字符替换为空格 return txt hamletTxt = getText()words = hamletTxt.split()counts = { }for word in words: counts[word] = counts.get(word,0) + 1items = list(counts.items())items.sort(key=lambda x:x[1], reverse=True) for i in range(10): word, count = items[i]print ("{0:<10}{1:>5}".format(word, count)) 简介:这是一个文本词频统计工具。通过读取文本文件,转换为小写并替换特殊字符,统计每个单词的出现频率,最后按频率排序并输出结果。适用于文本分析和信息抽取。
import turtle as tt.title('自动轨迹绘制')t.setup(800, 600, 0, 0)t.pencolor("red")t.pensize(5)#数据读取datals = []f = open("data.txt")for line in f: line = line.replace("\n","") datals.append(list(map(eval, line.split(","))))f.close()#自动绘制for i in range(len(datals)): t.pencolor(datals[i][3],datals[i][4],datals[i][5]) t.fd(datals[i][0]) if datals[i][1]: t.rt(datals[i][2]) else: t.lt(datals[i][2]) 简介:这是一个自动轨迹绘制工具,能够读取数据文件中的轨迹数据并自动绘制轨迹图。支持多种颜色和方向的改变,适用于需要展示动态轨迹的应用场景。
import jiebaimport wordcloudfrom scipy.misc import imreadmask = imread("chinamap.jpg")excludes = { }f = open("新时代中国特色社会主义.txt", "r", encoding="utf-8")t = f.read()f.close()ls = jieba.lcut(t)txt = " ".join(ls)w = wordcloud.WordCloud(\ width = 1000, height = 700,\ background_color = "white", font_path = "msyh.ttc", mask = mask )w.generate(txt)w.to_file("grwordcloudm.png") 简介:这是一个生成政府工作报告词云的代码。通过读取文本文件,分词后生成词云图像。代码结合了jieba分词和wordcloud库,适合需要生成文字云图的场景。
from random import randomdef printIntro(): print("这个程序模拟两个选手A和B的某种竞技比赛") print("程序运行需要A和B的能力值(以0到1之间的小数表示)")def getInputs(): a = eval(input("请输入选手A的能力值(0-1): ")) b = eval(input("请输入选手B的能力值(0-1): ")) n = eval(input("模拟比赛的场次: ")) return a, b, ndef simNGames(n, probA, probB): winsA, winsB = 0, 0 for i in range(n): scoreA, scoreB = simOneGame(probA, probB) if scoreA > scoreB: winsA += 1 else: winsB += 1 return winsA, winsBdef gameOver(a,b): return a==15 or b==15def simOneGame(probA, probB): scoreA, scoreB = 0, 0 serving = "A" while not gameOver(scoreA, scoreB): if serving == "A": if random() < probA: scoreA += 1 else: serving="B" else: if random() < probB: scoreB += 1 else: serving="A" return scoreA, scoreBdef printSummary(winsA, winsB): n = winsA + winsB print("竞技分析开始,共模拟{}场比赛".format(n)) print("选手A获胜{}场比赛,占比{:0.1%}".format(winsA, winsA/n)) print("选手B获胜{}场比赛,占比{:0.1%}".format(winsB, winsB/n))def main(): printIntro() probA, probB, n = getInputs() winsA, winsB = simNGames(n, probA, probB) printSummary(winsA, winsB)main() 简介:这是一个模拟体育竞技比赛的代码。通过输入选手的能力值和比赛场次,模拟比赛过程,计算出选手的胜率和胜场数,最后输出分析结果。适用于需要进行竞技模拟的场景。
import oslibs = { "numpy","matplotlib","pillow","sklearn","requests",\ "jieba","beautifulsoup4","wheel","networkx","sympy",\ "pyinstaller","django","flask","werobot","pyqt5",\ "pandas","pyopengl","pypdf2","docopt","pygame"}try: for lib in libs: os.system("pip3 install "+lib) print("Successful") except:print("Failed Somehow") 简介:这是一个用于安装第三方库的脚本。通过读取配置文件中的库名列表,逐一使用pip3命令安装。适用于需要快速安装多个第三方库的开发环境搭建。
ans=""for i in range(100,1000): a=int(i//100) b=int((i-100*a)//10) c=int(i%10) if a**3+b**3+c**3==i: ans=ans+str(a)+str(b)+str(c)+", "print(ans[:-2])#法2ans=[]for i in range(100,1000): a=i//100 b=(i-100*a)//10 c=i%10 if a**3+b**3+c**3==i: ans.append(str(i))print(", ".join(ans)) 简介:这是一个寻找三位水仙花数的代码。通过遍历100到999之间的数,分解每一位数字并计算其立方和,判断是否等于原数。方法一通过拼接字符串输出结果,方法二则通过列表存储并最终输出。
转载地址:http://bcnh.baihongyu.com/