Python 学习笔记-DAY10

学会画直线:

#!/usr/bin/python
# -*- coding: UTF-8 -*-


if __name__ == '__main__':
   
from Tkinter import *

    canvas = Canvas(
width=300, height=300, bg='green')
    canvas.pack(
expand=YES, fill=BOTH)
    x0 =
263
   
y0 = 263
   
y1 = 275
   
x1 = 275
   
for i in range(19):
        canvas.create_line(x0
, y0, x0, y1, width=1, fill='red')
        x0 = x0 -
5
       
y0 = y0 - 5
       
x1 = x1 + 5
       
y1 = y1 + 5

   
x0 = 263
   
y1 = 275
   
y0 = 263
   
for i in range(21):
        canvas.create_line(x0
, y0, x0, y1, fill='red')
        x0 +=
5
       
y0 += 5
       
y1 += 5

   
mainloop()#mainloop()就是一直不停地循环啊,之后的程序只有在你关掉弹出窗口之后才运行。

 

画图,学用rectangle画方形。 

#!/usr/bin/python

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



if __name__ == '__main__':

    from Tkinter import *



    root = Tk()

    root.title('Canvas')

    canvas = Canvas(root, width=400, height=400, bg='yellow')

    x0 = 263

    y0 = 263

    y1 = 275

    x1 = 275

    for i in range(19):

        canvas.create_rectangle(x0, y0, x1, y1)

        x0 -= 5

        y0 -= 5

        x1 += 5

        y1 += 5



    canvas.pack()

    root.mainloop()

画图,综合例子。

#!/usr/bin/python

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



if __name__ == '__main__':

    from Tkinter import *



    canvas = Canvas(width=300, height=300, bg='green')

    canvas.pack(expand=YES, fill=BOTH)

    x0 = 150

    y0 = 100

    canvas.create_oval(x0 - 10, y0 - 10, x0 + 10, y0 + 10)

    canvas.create_oval(x0 - 20, y0 - 20, x0 + 20, y0 + 20)

    canvas.create_oval(x0 - 50, y0 - 50, x0 + 50, y0 + 50)

    import math



    B = 0.809

    for i in range(16):

        a = 2 * math.pi / 16 * i

        x = math.ceil(x0 + 48 * math.cos(a))

        y = math.ceil(y0 + 48 * math.sin(a) * B)

        canvas.create_line(x0, y0, x, y, fill='red')

    canvas.create_oval(x0 - 60, y0 - 60, x0 + 60, y0 + 60)



    for k in range(501):

        for i in range(17):

            a = (2 * math.pi / 16) * i + (2 * math.pi / 180) * k

            x = math.ceil(x0 + 48 * math.cos(a))

            y = math.ceil(y0 + 48 + math.sin(a) * B)

            canvas.create_line(x0, y0, x, y, fill='red')

        for j in range(51):

            a = (2 * math.pi / 16) * i + (2 * math.pi / 180) * k - 1

            x = math.ceil(x0 + 48 * math.cos(a))

            y = math.ceil(y0 + 48 * math.sin(a) * B)

            canvas.create_line(x0, y0, x, y, fill='red')

    mainloop()

打印出杨辉三角形(要求打印出10行如下图)。

#!/usr/bin/python

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



if __name__ == '__main__':

    a = []

    for i in range(10):

        a.append([])

        for j in range(10):

            a[i].append(0)

    for i in range(10):

        a[i][0] = 1

        a[i][i] = 1

    for i in range(2, 10):

        for j in range(1, i):

            a[i][j] = a[i - 1][j - 1] + a[i - 1][j]

    from sys import stdout



    for i in range(10):

        for j in range(i + 1):

            stdout.write(str(a[i][j]))

            stdout.write(' ')

        print

一个最优美的图案。

扫描二维码关注公众号,回复: 2343713 查看本文章
#!/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()

输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

#usr/bin/env python

#coding:utf-8



a=[1,2,3,7,9,8]

print a

# 最小的放到最后

min = min(a)

a.remove(min)

a.append(min)

# 最大的放到最前面

max = max(a)

a.remove(max)

a.insert(0,max)

print a

n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

#!/usr/bin/env python3

# -*- coding: utf-8 -*-



a = [1, 2, 3, 4, 5]    # 测试列表

m = 3                  # 设置向后移动 3 位

for _ in range(m):

    a.insert(0, a.pop())

print(a)

找到年龄最大的人,并输出。

#!/usr/bin/python

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



if __name__ == '__main__':

    person = {"li": 18, "wang": 50, "zhang": 20, "sun": 22}

    m = 'li'

    for key in person.keys():

        if person[m] < person[key]:

            m = key



    print '%s,%d' % (m, person[m])

海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

#!/usr/bin/python

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



if __name__ == '__main__':

    i = 0

    j = 1

    x = 0

    while (i < 5):

        x = 4 * j

        for i in range(0, 5):

            if (x % 4 != 0):

                break

            else:

                i += 1

            x = (x / 4) * 5 + 1

        j += 1

    print x

809*??=800*??+9*?? 其中??代表的两位数, 809*??为四位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。

#!/usr/bin/python

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



a = 809

for i in range(10, 100):

    b = i * a

    if b >= 1000 and b < 10000 and 8 * i < 100 and 9 * i >= 100:

        print b, ' = 800 * ', i, ' + 9 * ', i

 

猜你喜欢

转载自blog.csdn.net/yige__cxy/article/details/81170159