Python练手例子(10)

发布时间:2019-05-13 21:33:21编辑:auto阅读(1805)

    55、学习使用按位取反~。

    程序分析:~0=1; ~1=0; 
    (1)先使a右移4位。 
    (2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4) 
    (3)将上面二者进行&运算。

    #python3.7
    
    if __name__ == '__main__':
        a = 234
        b = ~a
        print('The a\'s 1 complement is %d' % b)
        a = ~a
        print('The a\'s 2 complement is %d' % a)

     

    56、画图,学用circle画圆形。

    #python3.7
    from tkinter import *
    
    if __name__ == '__main__':
    
        canvas = Canvas(width = 800, height = 600, bg = 'purple')
        canvas.pack(expand = YES, fill = BOTH)
        k = 1
        j = 1
        for i in range(0, 26):
            canvas.create_oval(310 - k, 250 - k, 310 + k, 250 + k, width = 1)
            k += 1
            j += 0.3
    
        mainloop()

     

    57、画图,学用line画直线。

    #python3.7
    from tkinter import *
    
    if __name__ == '__main__':
        canvas = Canvas(width=300, height=300, bg='gold')
        canvas.pack(expand=YES, fill=BOTH)
        x0 = 263
        y0 = 263
        x1 = 275
        y1 = 275
        for i in range(19):
            canvas.create_line(x0, y0, x1, y1, width=1, fill='red')
            x0 = x0 - 5
            y0 = y0 - 5
            x1 = x1 + 5
            y1 = y1 + 5
    
        x0 = 263
        y0 = 263
        y1 = 275
        for i in range(21):
            canvas.create_line(x0, y0, x0, y1, fill='red')
            x0 += 5
            y0 += 5
            y1 += 5
    
        mainloop()

     

    58、画图,学用rectangle画方形。   

    程序分析:rectangle(int left, int top, int right, int bottom)

    参数说明:(left ,top )为矩形的左上坐标,(right,bottom)为矩形的右下坐标,两者可确定一个矩形的大小。

    #python3.7
    from tkinter import *
    
    if __name__ == '__main__':
        root = Tk()
        root.title('Canvas')
        canvas = Canvas(root, width = 400, height = 400, bg = 'yellow')
        x0 = 263
        y0 = 263
        x1 = 275
        y1 = 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()

     

    59、画图,综合例子。  

    程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

    #python3.7
    from tkinter import *
    import math
    
    if __name__ == '__main__':
        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)
        B = 0.809
        for i in range(16):
            a = 2 * math.pi / 16
            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()

     

    60、计算字符串长度。

    #python3.7
    
    sStr1 = 'strlen'
    print(len(sStr1))

     

     

    参考资料:

    1、Python 100例

    2、python3图形界面简单案例(tkinter):https://blog.csdn.net/lyhdream/article/details/17514431

关键字