鱼C论坛

 找回密码
 立即注册
查看: 852|回复: 4

新手应该怎样入门Python

[复制链接]
发表于 2019-1-14 15:16:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
亲爱的鱼油们大家好。我目前学习python大概两周了。之前一直在看一本书,是那本Python Crash Course。后来发现了小甲鱼的视频,觉得讲的很详细。我目前大致掌握了python基本的语法,可是就感觉自己的逻辑能力很差。请问这种情况对于新手来说常见吗?应该怎样训练自己的逻辑思维能力呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-1-14 15:34:25 | 显示全部楼层
慢慢学就有感觉了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-14 16:13:07 | 显示全部楼层
刷题,来把,来这里每日一题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-1-15 12:38:59 | 显示全部楼层
结合实例进行学习,多练,熟能生巧。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-16 14:10:56 | 显示全部楼层
像我一样,把原人的原码拿过来,一行一行的写备注。然后抓住 一个库学明白了,比如我刚弄明白time和 requests

# -*- coding: cp936 -*-
'''
python 3

多进程爬取金庸小说全集,存在程序运行目录下,应用windows
'''
import time
import os
from urllib import request
from multiprocessing import  Pool
from lxml import etree
from concurrent.futures import ThreadPoolExecutor


def get_html(url):
    #定义函数get_html
    headers = {'User-Agent': r'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0',
               'Connection': r'keep-alive',
               'Referer': r'http://www.itcast.cn/channel/teacher.shtml'}
    #设置爬虫的虚拟头
    req = request.Request(url, headers=headers)
    #等于req = request.get(url)#多了一个headers头伪装
    page = request.urlopen(req).read().decode('utf-8')#得到表页
    html = etree.HTML(page)#新增表页地址
    print(page)
    return html        #得到新的地址


def download(url_3,m):
        html_3 = get_html(url_3)
        # 得到小说名称
        title_novel = html_3.xpath('//div/div/span/a/text()')[1]
        # print(title_novel)
        #得到小说每一个章节的名称
        chapter = html_3.xpath('//div/h1/text()')[0]
        # print(chapter)
        #得到每一个章节小说的内容
        content = html_3.xpath('//body/div/div/p/text()')
        if m == 'o':
            folder = r'旧版/%s/' % title_novel
            #定义小说名的目录
            if (not os.path.exists(folder)):
                os.makedirs(folder)
                #如果没有目录,就新建这个目录
        elif m == 'n':
            folder = '新修版/%s/' % title_novel
            if (not os.path.exists(folder)):
                os.makedirs(folder)
        else:
            folder = '修订版/%s/' % title_novel
            if (not os.path.exists(folder)):
                os.makedirs(folder)

        filename = folder + chapter + '.txt'
        with open(filename, 'a', encoding="utf-8") as f:
            f.write(chapter + '\n')
        for j in content:
            with open(filename, 'a', encoding="utf-8") as f:
                f.write(j + '\n')
        print('正在下载' + title_novel + chapter + ',请稍后....')


def main(url):
    url_2 = 'http://www.jinyongwang.com' + url
    html_2 = get_html(url_2)
    data_urls = html_2.xpath('//ul[@class="mlist"]/li/a/@href')
    #进入微循环,下载每一个资料,并交download函数处理
    for i in data_urls:
            #循环处理data_urls里面的数据
        url_3 = 'http://www.jinyongwang.com' + i
        #在每一个data_urls里面的数据前面加上http://www.jinyongwang.com的全称,然后赋值给url_3
        m = i[1]
        download(url_3,m)


if __name__ == '__main__':
    #需要获取的第一个网址
    #程序开始,如果执行名包括程序名,程序开始执行
    start_time = time.time()
    #记录程序开始时间
    star_url = 'http://www.jinyongwang.com/book/'
    #设置要抓哪个网址
    html_1 = get_html(star_url)
    print(html_1)
    '''
    #用def的get_html函数第一步处理目标网址
    urls = html_1.xpath('//ul[@class="list"]/li/p[@class="title"]/a/@href')
    p = ThreadPoolExecutor(max_workers=20)
    #线程池的个数不超过CPU的5倍,20是双核四线程cpu
    for i in urls:
            #进入循环,处理urls里面的每一个值,并且把每一个值赋给i,然后处理完。
        p.submit(main,i)#下载页面。利用main函数
    p.shutdown()
    #处理得到的页面,并整理保存。
    end_time = time.time()
    #记录程序结束时间
    time1 = end_time-start_time
    print("用时" + time1)
    #输出程序结束时间-开始时间,得到程序执行了多久。
'''
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-13 09:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表