zoukankan      html  css  js  c++  java
  • python奇闻杂技04 列表,元祖,统计值计算示例,py文件转为EXE文件,爬虫初步学习

    列表,元组

    #list
    l1 = [1, 2, 3, '高弟弟']            #定义一个列表
    #
    l1.append("DSB")                   #最后增加"DSB"的元素
    #
    l1.remove("高弟弟")                 #删除"高弟弟"元素
    l1.pop(3)                          #删除列表第4个元素
    del l1[-1]                         #删除列表最后一个元素
    #
    l1[3] = 'DSB'                      #修改第4个元素为'DSB'
    #
    l2 = [2, 5, 4, 8, 6, 1, 4, 5, 3, 5]
    l2.sort(reverse=False)           #把列表正序排列
    l2.sort(reverse=True)            #把列表倒序排列
    l2_sort = sorted(l2)               #把列表正序排列
    l1.reverse()                      #把列表倒叙排列
    
    ## 元组(tuple)
    t1 = (1,2,3,'高弟弟')               #定义一个元组,元组无法进行更改
    t2 = tuple(l1)                     #转为元组类型
    l3=list(t1)                        #转为列表,即可进行更改

     统计值计算示例

    def get_nums():
        """获取数据"""
        nums = []
        num = input("请输入列表数字: ").strip()
        while num != '':
            nums.append(num)
            num = input("请输入数字: ").strip()
        return nums  # 函数返回nums
    
    
    def get_len(a):
        """获取长度"""
        len = 0
        for i in a:
            if i != '':
                len += 1
        return len
    
    
    def get_add(a):
        """求和"""
        sum = 0
        for i in a:
            if i != '':
                sum += eval(i)  # 去除字符串引号
        return sum
    
    
    def get_mean(a):
        """求平均数"""
        mean = get_add(a) / get_len(a)
        return mean
    
    
    def get_var(a):
        """求方差"""
        sum = 0
        for i in a:
            sum += (get_mean(a) - eval(i)) ** 2  # 去除字符串引号
        var = sum / get_len(a)
        return var
    
    
    def get_median(a):
        """求中位数"""
        num_sort = sorted(a)  # 正序排列
        len = get_len(a)
        if len % 2 == 0:
            med = (eval(num_sort[len // 2 - 1]) + eval(num_sort[len // 2])) / 2
        else:
            med = eval(num_sort[len // 2])
        return med
    
    
    def calculator():
        while True:
            input_list = get_nums()
            # 三引号字符串可以换行
            print("""请输入以下数字:
            1.求列表长度
            2.求和
            3.求平均值
            4.求方差
            5.求中位数
            6.退出""")
            while True:
                input_num = input("请输入数字:")
                if input_num == '1':
                    print(get_len(input_list))
                elif input_num == '2':
                    print(get_add(input_list))
                elif input_num == '3':
                    print(get_mean(input_list))
                elif input_num == '4':
                    print(get_var(input_list))
                elif input_num == '5':
                    print(get_median(input_list))
                elif input_num == '6':
                    print("结束")
                    return  # 结束当前函数
                else:
                    print("输入无效,请重新输入")
    
    
    calculator()

     

    py文件转为EXE文件

    1.运行cmd,输入  pip install pyinstaller(如果慢,可把下载源改为清华源,方法见 https://mirrors.tuna.tsinghua.edu.cn/help/pypi/) ,安装pyinstaller

     2.输入 pyinstaller --version,可查看当前pyinstaller库的版本

     3.拷贝需要转为exe文件格式的项目路径。也可以打开pycharm程序,如下图对项目右键,点击copy path

     4.在cmd中打开到当前路径(生成文件会在此路径下,否则在默认路径),输入pyinstaller -F -w 项目名称,其中-w参数可取消exe运行时cmd弹出窗口

     

     

     5.exe文件生成完成,在画框的位置下

     6.如下右图生成统计值计算exe文件,其中如下左图再上一个文件目录下会生成spec的临时文件,可以删除

    然而打开文件,电脑报错

     经过网上查找分析,我猜测与pyinstaller -F -w 命令中,-w参数取消exe运行时cmd弹出窗口有关。于是我测试在cmd下运行 pyinstaller -F 统计值计算.exe

     经测试,运行成功,推断正确

    爬虫初步学习

    安装 http请求模块,为爬虫做准备

    爬取百度首页

    import requests
    
    url='http://baidu.com'
    
    res=requests.get(url=url)       #发送请求,url=可以省略
    res.encoding=res.apparent_encoding      #res.encoding获取res的编码格式;res.apparent_encoding获取网页正确的编码格式
    print(res.text)                 #返回的结果是处理过的Unicode类型的数据


    resutlt:

    <html>
    <meta http-equiv="refresh" content="0;url=http://www.baidu.com/">
    </html>

    爬取抽屉网信息

    抽屉网会自动判断是否是脚本发送请求,如下图右下角复制用户代理信息

    import requests
    
    
    header = {
        'User-Agent':  'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
    }       #黏贴浏览器用户代理信息代理,并改为字典类型,伪装成浏览器访问
    
    url = 'https://dig.chouti.com/'
    
    res = requests.get(url,headers=header)      #发送请求,header参数设定为给定参数,不设定header参数会被抽屉网判断为脚本
    
    print(res.text)                             #返回的结果是处理过的Unicode类型的数据

    爬取所得:

     在pycharm中新键一个html文件,把结果复制进去。如下图,点击右上交搜狗浏览器图标进入浏览器打开

    运行结果

     图片无法显示,原因是抽屉网图片使用相对路径,非绝对路径,无法直接调用

  • 相关阅读:
    解决弹出的窗口window.open会被浏览器阻止的问题(自定义open方法)
    js call
    说说JSON和JSONP,也许你会豁然开朗
    按需加载/懒加载
    Sublime Text2 中Emmet(之前叫Zencoding)插件安装以及使用
    求数组中的最小值以及最小值的序列号
    软件工程概论作业03--将随机产生的表达式导入数据库
    软件工程作业01--四则运算1
    梦断代码阅读笔记
    学习进度条--第二周
  • 原文地址:https://www.cnblogs.com/ludingchao/p/11741534.html
Copyright © 2011-2022 走看看