程序记录

绘图

绘制蟒蛇

import turtle
turtle.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()

绘制正五边形

import turtle
turtle.seth(0)
turtle.pensize(3)
for i in range (5):
    turtle.forward(40)
    turtle.left(360/5)
turtle.done()

绘制嵌套五边形

  • 使用turtle库的fd()、seth()、pencolor()函数绘制嵌套五角形,五角形边长从1像素开始,第一条边从0度方向开始,边长按照2个像素递增,每条边使用一种颜色,效果如下图所示。
import turtle as t
colors = ["purple","red","blue","green","black"]
d = 0
k = 1

for j in range(10):
    for i in range(5):
        t.pencolor(colors[i])
        t.fd(k)
        d = d + 360/5
        t.seth(d)
        k += 2
t.done()

绘制同心圆

  • 使用turtle库的turtle.circle()函数和turtle.seth()函数绘制图形,最小的圆圈半径为20像素,不同圆圈之间的半径差是20像素。效果如下图所示。
import turtle
r = 20
head = 90
for i  in range (3):
   turtle.seth(head)
   turtle.circle(r)
   r = r + 20
r = 20
head = 270
for i  in range (3):
   turtle.seth(head)
   turtle.circle(r)
   r = r + 20
turtle.done()

绘制科赫雪花

#KochDrawV2.py
import turtle
def 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()

随机蒲公英

  • 使用turtle库的fd()、seth()、pencolor()、backward()、right()、screensize()等函数,以及random随机函数库的seed(), randint(), choice()函数,绘制n个彩色的蒲公英小伞。小伞的颜色在给定的颜色列表color中随机选择;伞顶半径画笔宽1个像素长edge个像素,edge取值在(20,30)范围里随机选择;伞柄画笔宽5个像素长handle个像素,handle取值在(30,50)范围里随机选择;小伞的伞柄与伞顶交点的位置在画布上随机分布;画布的X轴坐标取值在(-200,200)范围里随机选择,Y轴坐标取值在(-100,100)范围里随机选择。n的值由用户输入,其他值由代码模板给出。当用户输入6的时候,效果如下图所示。
from random import *
import turtle as t
def oneDandelion (x0,y0,color, edge, handle):
    t.up()
    t.goto(x0,y0)
    t.down()
    t.pencolor(color)
    t.seth(90)
    t.pensize(5)
    t.fd(handle)
    t.seth(250)
    t.pensize(1)
    for i in range(33):
        t.fd(edge)
        t.backward(edge)
        t.right(10)

color = ['red','pink','green','violet','purple']
seed(20)
t.screensize(400,200, "#E0FFFF")
n = 6
for i in range(n):
    edge = randint(20, 40)
    handle = randint(30, 60)
    oneDandelion(randint(-200, 200), randint(-100, 100), choice(color), edge, handle)
t.done()
print(' x0,y0',' handle ',' edge ',' edge = randint(20, 40)',' handle = randint(30, 60)')

简单程序记录

选择排序

  • 从键盘输入7个整数,用逗号隔开,对这7个整数从小到大排序,并输出结果到屏幕上。编写一个选择排序的函数SelectSort(lst,n),并调用该函数完成排序。
def SelectionSort(lst, n):
    for i in range(n):
        for j in range(i, n)
            if lst[j] == min(lst[i: n]):
                lst[i],lst[j]=lst[j],lst[i]
    return lst

print("请输入7个整数,用逗号隔开:")
numbers =input()
lst = numbers.split(',')
slst = SelectionSort(lst, len(lst))
print(','.join(slst))

冒泡排序

  • 从键盘输入5个整数,用逗号隔开,对这5个整数从小到大排序,并输出结果到屏幕上。编写一个冒泡排序的函数BubbleSort(numbers),并调用该函数完成排序。
def BubbleSort(numbers):
    for i in range(len(numbers)-1):
        for j in range(len(numbers)-1):
            if eval(numbers[j]) > eval(numbers[j+1]):
                numbers[j],numbers[j+1]=numbers[j+1],numbers[j]
    return numbers

#print("请输入5个整数,用英文逗号隔开:")
numbers =input()
numls = numbers.split(',')
sortednum = BubbleSort(numls)
print(','.join(sortednum))

众数和频率(字典lambda函数排序)

ls = [1080,750,1080,750,1080,850,960,2000,1250,1630,1080,1800,1080,2100,1080,1450,2500,560,1080,560]
counts ={}
for num in ls:
    counts[num] = counts.get(num,0)+ 1
items = list(counts.items())
items.sort(key = lambda x:[1],reverse = True)
num,count = items[0]
print("众数为{},出现频率为{}。".format(num,count))

合格率计算

  • 输入一个数字n作为合格标准,然后,输入一系列的数字,每次输入换行表示,空换行结束,输出合格率。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
  • 合格率指输入元素中合格元素与全部元素的比值。
i=0
s=0
a=eval(input())
b=input()
while b!="":
    s+=1
    if eval(b)>a:
        i+=1
    b=input()
if s!=0:
    print("合格率为{:.2f}%".format(i*100/s))
else:
    print("合格率为100.00%")

输出当前系统时间

  • 使用time 输出当前系统时间,参考格式为:2018-01-26 12:55:20
import time
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
import time
t = time.gmtime()
print(time.strftime("%Y-%m-%d %H:%M:%S",t))
  • time库是Python中处理时间的标准库。
  • time.gmtime()获取当前时间,表示为计算机可处理的时间格式。
  • strftime(tpl, ts)将时间以合理的方式展示出来,tpl是格式化模板字符串,用来定义输出效果,ts是计算机内部时间类型变量。
  • 格式化控制符如下:

自然数倒数和

  • 输入一个自然数n,如果n为奇数,输出表达式1+1/3+…+1/n的值;如果n为偶数,输出表达式1/2+1/4+…+1/n的值;输出表达式结果保留2位小数。
def f(n):
    sum=0
    if n%2==1:
        for i in range(1, n+1, 2):
            sum += 1/i
    else:
        for i in range(2, n+1, 2):
            sum += 1/i
    return sum

n = int(input())
print("{:.2f}".format(f(n)))

检查密码合格性

  • 输入一个密码字符串,依次检查下述的条件:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬
  • 大于8个字符,必须有一个字母或者一个数字
while True:
    s = input()
    if len(s) < 8 :
        print('密码长度要大于8个字符,请重新输入')
    elif s.isdigit():
        print('密码要包含字母,请重新输入')
    elif s.isalpha():
        print('密码要包含数字,请重新输入')
    else:
        print('你的密码合格了')
        break

生成随机密码

  • 利用random随机库里的函数,生成一个随机密码,该密码长度由用户输入一个正整数,密码中的偶数位字符是从大写和小写英文字母之中选出的字母,奇数位字符是从0-9之间的选出的数字,显示在屏幕上。
import random as r
lttbl = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'
numtbl = '0123456789'
r.seed(0.5)
n = eval(input())
code = ''
for i in range(n):
    if i%2 == 0:
        code += r.choice(lttbl)
    else:
        code += r.choice(numtbl)
print(code)

程序整理

100以内素数求和

import math
s=0
for i in range (2,100):
    for j in range (2,i+1):
        if i%j==0:
            break
    if j==i:
        s+=i
print(s)

气体浓度排序(数组lambda函数排序)

  • 字符串变量str保存了气体浓度传感器的4条数据,每条数据的第一字段是传感器编号,第二字段是气体名称,第三字段是浓度值。

  • 在屏幕上按照浓度值递减的顺序,显示输出每种气体名称,浓度,及其浓度在四种气体浓度中所占的百分比。示例如下:

    氮气的浓度是:5.20,占比: 49%
    乙烯的浓度是:2.43,占比: 23%
    甲烷的浓度是:1.70,占比: 16%
    甲醛的浓度是:1.36,占比: 13%

str = 'TGS2402:甲醛:1.36\nTGS2500:氮气:5.20\nTGS2310:甲烷:1.70\nTGS2820:乙烯:2.43'
ls = str.split('\n')
sum = 0
fieds = []

for gas in ls:
    fi = gas.split(':')
    sum += eval(fi[2])
    fieds.append(fi)

    fieds.sort(key=lambda x: x[2], reverse=True)

for gas in fieds:
    print('{}的浓度是:{},占比:{:3.0f}%'.format(gas[1], gas[2], 100 * eval(gas[2]) / sum))

交换键值并排序输出

  • 编写函数reverse_dict(),功能是交换字典的key值和value值(不允许重复),并按照key值降序输出新字典的内容,返回新的字典。
def reverse_dict(dic):
    out = {}
    for k,v in dic.items():
        out[v] = k
    keys = sorted(out.keys(),reverse = True)

    for k in keys:
        print(k,out[k])
    return out
#请输入一个字典
dic = eval(input(""))
reverse_dict(dic)

中文分词排序输出(文件读取)

import jieba
txt = open("阿甘正传-网络版.txt","r",encoding ="utf-8").read()
words = jieba.lcut(txt)
counts ={}
for word in words:
    if len(word) == 1:
        continue
    else:
        counts[word] = counts.get(word,0)+1
items = list(counts.items())
items.sort(key = lambda x:x[1],reverse = True)
for i in range(10):
    word,count = items[i]
    print("{0}:{1}".format(word,count))

求平均数中位数(文件读取)

def Arithmetic(numbers):#计算算法平均数
    sum = 0.0
    for i in numbers:
        sum = sum + float(i)
    return sum/len(numbers)

def Median(numbers):    #计算中位数
    numbers = sorted(numbers)
    size = len(numbers)
    if size % 2 == 0:
        med = (float(numbers[size//2-1]) + float(numbers[size//2]))/2
    else:
        med = numbers[size//2]
    return med      

fo = open("numbers.txt","r",encoding ="utf-8")
ls = []
for line in fo.readlines():
    line = line.replace("\n","")
    ls.append(line)

print("算术平均数为{}。".format(Arithmetic(ls)))
print("中位数为{}。".format(Median(ls)))
全部评论

相关推荐

程序员卤馆:加v细说
点赞 评论 收藏
分享
hanliu:1. 排版与格式问题字体与对齐问题:标题和内容的字体大小差异不够明显,无法迅速吸引目光。某些文字看起来有些拥挤(比如校园经历中的“班委成员”部分)。2. 内容逻辑性模块顺序问题:实习经历放在较靠后的位置,实际上这部分内容对应聘来说更重要,建议提前突出。细节表述不够突出:比如教育背景部分的专业课程仅仅列出名字,没有说明自己在这些课程中表现如何或者掌握了什么技能,缺乏量化描述。多余内容:例如“班委成员”和“宣传委员”这类校园经历,叙述过于普通,缺乏和岗位相关的实质性贡献。,建议简写。3. 措辞专业性表达不够精准:例如“协助班长与团支书更好地为同学服务”显得较为笼统,没有实际成果的体现。用词重复:如“学习了焊接”“学习了光检”等重复词语较多,缺乏丰富的动词来展示个人能力(如“负责”“优化”“改进”等)。技能展示不足:虽然列出了UG和CAD证书,但没有明确提到这些技能如何在实际工作中发挥作用。4. 技能匹配度技能深度不足:虽然列出了掌握的软件和技术,但没有描述技能水平(如“熟练掌握”“精通”),也没有具体案例支持这些技能。缺乏岗位导向性:比如针对机械设计与制造方向,实习经历提到了“E6尾灯项目”,但没有详细说明自己在其中的技术贡献,可能会显得经验描述泛泛而谈。5. 自我评价问题表达空泛:如“具有良好的沟通协调能力”“责任心强”之类的描述太常见,没有让人眼前一亮的特点。缺乏成果支持:自我评价中的能力没有用具体项目、经历或成就来验证,可信度较弱。 兄弟加油
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务