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文件,把结果复制进去。如下图,点击右上交搜狗浏览器图标进入浏览器打开

    运行结果

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

  • 相关阅读:
    搭建非域AlwaysOn win2016+SQL2016
    从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点)
    从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)
    从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)
    从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)
    四、基于Windows 2012配置SQL Server 2014 AlwaysOn
    三、安装SQLserver 2014(For AlwaysOn)
    二、 Windows 2012配置故障转移(For SQLServer 2014 AlwaysOn)
    Mybatis-SQL语句构建器类及日志
    Mybatis-JavaAPI
  • 原文地址:https://www.cnblogs.com/ludingchao/p/11741534.html
Copyright © 2011-2022 走看看