python练习-prat1

01 | turtle库

绘制一个正方形

import turtle
turtle.pensize(5)
turtle.color('orange')
i = 0
while i < 4:
    turtle.forward(200)
    turtle.right(90)
    i += 1
turtle.mainloop()

02 | 利用input()实现简单计算

a = float(input('请输入第一个数:'))
b = float(input('请输入第二个数:'))

print('%0.2f + %0.2f = %0.2f' % (a,b,a + b))

在这里插入图片描述

03 | 基础函数

# 1.查看数据类型type()
a = 30.02
b = 'dfsfs'
print('a的数据类型是%s'% (type(a)))
print('b的数据类型是%s'% (type(b)))

# 2.改变数据类型
a = int(a)
print('a的数据类型是%s'% (type(a)))

# 3.input()获取键盘输入
a = float(input('第一个数:'))
b = float(input('第二个数:'))
print('两数之和为%.2f' % (a + b))

03 | 字符串 / list / tuple / dictionray / 集合

# 1.字符串
a = 'hello, world!'
a += 'hello world'  # 拼接
a *= 3              # 打印三个
a1 = a[2:5]         # 切片操作
a_len = len(a)      # 计算长度
a_type = a.isalpha()# 查询类型

# 2.tuple
a = (1,2,3,45,53)
'''
AttributeError: 'tuple' object has no attribute 'append'
报错,tuple不可改变
'''
a.append('23dsa')

# 3.list
a = [1,2,3,45,53]
a.append(22)
a.remove(2)
a.insert(2,'SADAS') #在第三个位置插入
print(a)

# 4.列表生成器
a = [x for x in range(2,10)]
print(a)
b = [x + y for x in range(1,5) for y in range(6,10)]
print(b)
c = [x + y for x in '132435' for y in 'ferfds']
print(c)

# 5.集合
set = {1, 2, 3, 3, 3, 2}
set.add(22)
set.remove(3) # 删除所有3
print(set)

04 | 函数定义 / 嵌套 / 调用

def data():
    a = 'hello world'
    # Python中可以在函数内部再定义函数
    def data1(): 
        b = True
        print(a)
        print(b)
        print(c)
    data1() # 嵌套函数要调用时,要在父函数里面调用

if __name__  ==  '__main__': # 调用全局变量
    c = 100
    data()
# 03 | 在list中增减元素

```python
list = [1,4,35,65,45]
# 增加元素
list.append(2)
list.insert(100,200)
# 删除
list.remove(35)
# 删除指定位置
list.pop(0)
# 切片
list[1:3]
# 排序
list.sort(reverse=True) # 倒序

05 | tuple 转换list

tuple1 = ('tuple','list',1,3,5)
# 转换list
tuple1 = list(tuple1)
# 新增值
tuple1[0] = 'value'
print(tuple1)

06 | 集合的基本操作

import numpy as np
random1 = np.random.randint(1,50,10)
set = set(random1)
set.add(100)
print(set)
set.discard(5)
print(set)

在这里插入图片描述

07 | 写一个跑马灯脚本

import time

def run():
    content = '这是跑马灯哔哔哔哔哔……'
    while True:
        print(content)
        time.sleep(0.2)
        content = content[1:] + content[0]

if '__name__' == '__main__':
    run()

08 | 生成一个长度为4的随机验证码

import random
def code():
    password = 'asfdsfdsf214dsfsd23s5435d6fd65a3654fdfdsfd534543ddsw43534qee4353cfds4saddsqfdgd324325ewdsfdsfsg435esfdsf'
    number = 0
    passcode = ''
    while True:
        i = random.randint(0, len(password))
        get = password[i]
        passcode += get
        number += 1
        if number == 4:
            break
    print(passcode)
code()

09 | 写一个时钟

import time

class Clock():
    def __init__(self,h,m,s):
        self.h = h
        self.m = m
        self.s = s

    def run(self):
        self.s += 1
        if self.s == 60:
            self.s = 0
            self.m += 1
        if self.m == 60:
            self.m = 0
            self.h += 1
        if self.h == 24:
            self.h = 0

    def show(self):
        return('%d:%d:%d' % (self.h,self.m,self.s))

time_now = Clock(15,22,11)
while True:
    print(time_now.show())
    time.sleep(1)
    time_now.run()

10.webbrowser

# 导入webbrowser模块
import webbrowser
#输入需要打开的页面,可以多个页面
webbrowser.open('https://blog.csdn.net/weixin_52730784?spm=1000.2115.3001.5343')

11.| 爬取有道词典

```python
# 导入urllib库
import urllib.request
import urllib.parse
import json

while True:  # 循环翻译
    content = input('输入内容,输入x结束):')
    # 结束条件
    if content == 'x':
        break

    url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'  # 选择要爬取的网页,上面找过了
    '''
       加上head,减少被发现的概率。User Agent是网站设置的一种反爬策略。
       不同的浏览器访问,会有不同的User Agent,随机使用不同的ser Agent可以避免被识别爬虫
    '''
    head = {}
    head['User - Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'

    # 伪装计算机提交翻译申请(这些内容可以在F12-Network-transform文件-header找到)
    data = {}
    data['type'] = 'AUTO'
    data['i'] = content
    data['doctype'] = 'json'
    data['version'] = '2.1'
    data['keyfrom:'] = 'fanyi.web'
    data['ue'] = 'UTF-8'
    data['typoResult'] = 'true'
    data = urllib.parse.urlencode(data).encode('utf-8')

    response = urllib.request.urlopen(url, data)
    # 解码
    html = response.read().decode('utf-8')

    paper = json.loads(html)

    # 打印翻译结果
    print("翻译结果: %s" % (paper['translateResult'][0][0]['tgt']))

12.GUI界面

from tkinter import *
import tkinter as tk

class pen(Canvas): # Canvas是画布
    def __init__(self,master = None):
        super().__init__() # 调用父类中__init__的函数
        self.master = master
        self.fill = 'red'
        # 定义鼠标当前位置
        self.prex = self.prey = -10
        # 画图开关一开始关闭
        self.create_dot = False
        # 定义开始,移动,介绍,清除的函数
        self.bind('<Button-1>',self.start) # Button-1左键
        self.bind('<B1-Motion>',self.move)
        self.bind('<ButtonRelease>',self.end)
        self.bind('<Button-3>',self.clean) # Button-3右键
        self.pack(fill=BOTH, expand=YES)

    def start(self,event):
        self.create_dot = True
        if event.x > 0 and event.y > 0:
            # 开始绘图后,改变鼠标形状
            self.master['cursor'] = 'target'

    def move(self,event):
        if self.prex > 0 and self.prey > 0 and self.create_dot ==True:
            # 开始绘制
            self.create_line(self.prex,self.prey,event.x,event.y)
        self.prex,self.prey = event.x,event.y

    def end(self,event):
        self.create_dot =False
        # 鼠标复原
        self.master['cursor'] = 'arrow'
        self.prex = self.prey = -10

    def clean(self,event):
        # 设置删除菜单
        self.delete('all')
        self.prex = self.prey = -10

# if '__name__' == "__main__":
root = tk.Tk()
root.geometry('600x400')  # 设置window大小
root.resizable(width=False, height=False)
root.title('绘图')
pen(root)
root.mainloop()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值