python菜鸟教程100例-对菜鸟教程的Python一百例的个别改进

开篇语

好吧,其实是我小妹子Python公选课结课,所以我来帮忙做个大作业(简单到哭的大作业好吗?)!她的大作业就是老师把菜鸟教程的Python一百例扒下来做成文档,然后让学生自己找三个验证下!我们当初是抽选一个内置模块进行翻译以及实现。心塞!一夜大战,我帮她找了三个看起来没那么简单的,然后自己改进了其中两个,估摸着应该能帮她拿个高分,就睡觉了。一夜时间,搞了这点东西,当然要给大伙瞧瞧啦!

1240

正文

第一题 Python 练习实例37

(PS:原文我就懒得放了,有兴趣的自己去菜鸟教程看

程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。

1240

def main():

a=[]

b=[0,0,0,0,0,0,0,0,0,0]

N=0

for i in range(10):

print(a.append(int(input("来,把你的十个数字输进来(请别输入重复的:) "))))

for i in range(10):

for j in range(10):

if a[i]>a[j]:

N=N+1

b[N]=a[i]

N=0

print(a)

print(' ')

print(b)

main()

感想:原来的例子用的貌似是挨个按照递增的形式找出排序,然后对号入座,貌似很强啊!但是我这个也不错的样子(我记得算法导论里边有我这种的样子?不过这个真的是我灵机一动想出来的),定两个数组,一个放置原序列,然后每一个跟所有的数字比较,根据它大于的数字N,直接把这个数字赋给第二个正确排序后的数组中对应的N位的元素。这样下来就排的稳稳当当了。不过貌似如果做优化的话,我这个肯定被按在地上摩擦。幸而,这里可以安安静静的献丑!开心~~~

1240

第二题Python 练习实例65 题目:一个最优美的图案。

程序分析:无。(纯粹的画图,因为这个图太好看了。所以没舍得改,就这样吧,只是从2.x 到 3.x 貌似还有点bug要处理下,所幸不难!)

#!/usr/bin/python

# -*- coding: UTF-8 -*-

import math

class PTS:

def __init__(self):

self.x = 0

self.y = 0

points = []

def LineToDemo():

from Tkinter import *

screenx = 400

screeny = 400

canvas = Canvas(width = screenx,height = screeny,bg = 'white')

AspectRatio = 0.85

MAXPTS = 15

h = screeny

w = screenx

xcenter = w / 2

ycenter = h / 2

radius = (h - 30) / (AspectRatio * 2) - 20

step = 360 / MAXPTS

angle = 0.0

for i in range(MAXPTS):

rads = angle * math.pi / 180.0

p = PTS()

p.x = xcenter + int(math.cos(rads) * radius)

p.y = ycenter - int(math.sin(rads) * radius * AspectRatio)

angle += step

points.append(p)

canvas.create_oval(xcenter - radius,ycenter - radius,

xcenter + radius,ycenter + radius)

for i in range(MAXPTS):

for j in range(i,MAXPTS):

canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y)

canvas.pack()

mainloop()

if __name__ == '__main__':

LineToDemo()

程序结果:实在是漂亮啊

1240

第三题 Python 练习实例82 题目:八进制转换为十进制

程序分析:无。

个人感觉菜鸟教程的这个示例有点问题,因为我运行不出来啊。而且感觉进制转换有结果也是失败了,哪位装了2.x的麻烦跑跑下面的原码,我没装所以只是转成3.x 不知是不是不兼容:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

if __name__ == '__main__':

n = 0

p = raw_input('input a octal number: ')

for i in range(len(p)):

n = n * 8 + ord(p[i]) - ord('0')

print n

既然跑不出结果,但是我小妹子的作业要做完啊。所以我就自己出题自己写咯。本来是想做个十进制转换到任何进制的。结果发现超过十进制的好蛋疼啊。所以就偷懒了做了十进制以下的转换了。万幸能用:

def TenToN():

n=int(input("输入你想转到的进制吧! "))

x=int(input("输入你要转换的十进制,下面交给我吧!"))

a=[]

b=0

Xn=0

if n<=10:

while int(x/n)!=0:

a.append(x%n)

x=int(x/n)

a.append(x%n)

b=len(a)

for i in range(b):

Xn=Xn+a[b-1-i]*pow(10,b-1-i)

print(Xn)

def main():

T=1

while(T):

T=input('告诉我你要干嘛?0是退出,其他是进行运算')

TenToN()

main()

运行出来的结果是蛮喜人的。好歹也是让我拼到四点的东西。咋都要给力点

1240

1240

结束语

那晚考完,失败,心情不佳,感谢我小妹子安慰我啦。也让我沉迷写码不可自拔了。实在是享受!希望以后也能开开心心写点自己想写的东西,而不是跟现在这样被一些作业考试折磨的头痛啊!!!

1240

1240

小小打个广告,不知道简书准不准。不过我还是打了吧,没关系的。微信公众号搜索"工科狗与生物喵”。这是我跟一个小妹子一起办的一个公众号。里面的内容应该会比简书的更加丰富,而且更加精准。欢迎大伙关注。

1240

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值