replace new website

This commit is contained in:
P小二
2024-01-15 22:42:51 +08:00
parent 37acfa34c6
commit e34de7b513
72 changed files with 198 additions and 8826 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

78
.github/workflows/hugo.yaml vendored Normal file
View File

@@ -0,0 +1,78 @@
# Sample workflow for building and deploying a Hugo site to GitHub Pages
name: Deploy Hugo site to Pages
on:
# Runs on pushes targeting the default branch
push:
branches:
- main
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false
# Default to bash
defaults:
run:
shell: bash
jobs:
# Build job
build:
runs-on: ubuntu-latest
env:
HUGO_VERSION: 0.121.0
steps:
- name: Install Hugo CLI
run: |
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
- name: Install Dart Sass
run: sudo snap install dart-sass
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
- name: Setup Pages
id: pages
uses: actions/configure-pages@v4
- name: Install Node.js dependencies
run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"
- name: Build with Hugo
env:
# For maximum backward compatibility with Hugo modules
HUGO_ENVIRONMENT: production
HUGO_ENV: production
run: |
hugo \
--gc \
--minify \
--baseURL "${{ steps.pages.outputs.base_url }}/"
- name: Upload artifact
uses: actions/upload-pages-artifact@v2
with:
path: ./public
# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v3

5
archetypes/default.md Normal file
View File

@@ -0,0 +1,5 @@
+++
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
date = {{ .Date }}
draft = true
+++

View File

@@ -1,127 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="banner-wrapper">
<div class="container banner-container"></div>
</section>
<section class="wrapper menu-wrapper">
<nav class="container">
<a href="/" class="active">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a><a href="/fly/飞蟒微课堂/" class="" title="飞蟒微课堂">飞蟒微课堂</a><a href="/fly/自然语言处理/cs224n/" class="" title="cs224n">cs224n</a><a href="/fly/飞蟒微课堂/LeetCode/" class="" title="LeetCode">LeetCode</a>
</nav>
</section>
<div class="wrapper index-wrapper">
<ul class="container list-container">
<li class="post-i-wrapper">
<a href="/article/about/" class="wrapper post-i-link" title="关于我们">
<div class="wrapper cover">
<img src="/images/flypython.png" alt="关于我们">
</div>
<h3 class="wrapper title" title="关于我们">关于我们</h3>
<p class="wrapper subtitle">
关于飞蟒Python
</p>
<div class="wrapper time">2018-01-01</div>
</a>
</li>
</ul>
</div>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,127 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="banner-wrapper">
<div class="container banner-container"></div>
</section>
<section class="wrapper menu-wrapper">
<nav class="container">
<a href="/" class="active">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a><a href="/fly/飞蟒微课堂/" class="" title="飞蟒微课堂">飞蟒微课堂</a><a href="/fly/自然语言处理/cs224n/" class="" title="cs224n">cs224n</a><a href="/fly/飞蟒微课堂/LeetCode/" class="" title="LeetCode">LeetCode</a>
</nav>
</section>
<div class="wrapper index-wrapper">
<ul class="container list-container">
<li class="post-i-wrapper">
<a href="/article/about/" class="wrapper post-i-link" title="关于我们">
<div class="wrapper cover">
<img src="/images/flypython.png" alt="关于我们">
</div>
<h3 class="wrapper title" title="关于我们">关于我们</h3>
<p class="wrapper subtitle">
关于飞蟒Python
</p>
<div class="wrapper time">2018-01-01</div>
</a>
</li>
</ul>
</div>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,179 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="banner-wrapper">
<div class="container banner-container"></div>
</section>
<section class="wrapper menu-wrapper">
<nav class="container">
<a href="/" class="active">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a><a href="/fly/飞蟒微课堂/" class="" title="飞蟒微课堂">飞蟒微课堂</a><a href="/fly/自然语言处理/cs224n/" class="" title="cs224n">cs224n</a><a href="/fly/飞蟒微课堂/LeetCode/" class="" title="LeetCode">LeetCode</a>
</nav>
</section>
<div class="wrapper index-wrapper">
<ul class="container list-container">
<li class="post-i-wrapper">
<a href="/article/python-oa-05/" class="wrapper post-i-link" title="Python读取PDF图片">
<div class="wrapper cover">
<img src="/images/oa4.jpg" alt="Python读取PDF图片">
</div>
<h3 class="wrapper title" title="Python读取PDF图片">Python读取PDF图片</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-05</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-oa-04/" class="wrapper post-i-link" title="Python读取PDF文字和表格">
<div class="wrapper cover">
<img src="/images/oa4.jpg" alt="Python读取PDF文字和表格">
</div>
<h3 class="wrapper title" title="Python读取PDF文字和表格">Python读取PDF文字和表格</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-04</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-oa-03/" class="wrapper post-i-link" title="Python批量转换任意文档格式">
<div class="wrapper cover">
<img src="/images/oa3.jpg" alt="Python批量转换任意文档格式">
</div>
<h3 class="wrapper title" title="Python批量转换任意文档格式">Python批量转换任意文档格式</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-03</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-oa-02/" class="wrapper post-i-link" title="Python写入Word文档">
<div class="wrapper cover">
<img src="/images/oa2.jpg" alt="Python写入Word文档">
</div>
<h3 class="wrapper title" title="Python写入Word文档">Python写入Word文档</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-oa-01/" class="wrapper post-i-link" title="Python写入Excel表格">
<div class="wrapper cover">
<img src="/images/oa1.jpg" alt="Python写入Excel表格">
</div>
<h3 class="wrapper title" title="Python写入Excel表格">Python写入Excel表格</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-01</div>
</a>
</li>
</ul>
</div>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,153 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="banner-wrapper">
<div class="container banner-container"></div>
</section>
<section class="wrapper menu-wrapper">
<nav class="container">
<a href="/" class="active">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a><a href="/fly/飞蟒微课堂/" class="" title="飞蟒微课堂">飞蟒微课堂</a><a href="/fly/自然语言处理/cs224n/" class="" title="cs224n">cs224n</a><a href="/fly/飞蟒微课堂/LeetCode/" class="" title="LeetCode">LeetCode</a>
</nav>
</section>
<div class="wrapper index-wrapper">
<ul class="container list-container">
<li class="post-i-wrapper">
<a href="/article/python-tutorial-03/" class="wrapper post-i-link" title="Python正则15分钟入门">
<div class="wrapper cover">
<img src="/images/tutorial3.png" alt="Python正则15分钟入门">
</div>
<h3 class="wrapper title" title="Python正则15分钟入门">Python正则15分钟入门</h3>
<p class="wrapper subtitle">
Python入门教程
</p>
<div class="wrapper time">2019-02-03</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-tutorial-02/" class="wrapper post-i-link" title="潘石屹我们为什么要学习Python语言">
<div class="wrapper cover">
<img src="/images/tutorial2.png" alt="潘石屹我们为什么要学习Python语言">
</div>
<h3 class="wrapper title" title="潘石屹我们为什么要学习Python语言">潘石屹我们为什么要学习Python语言</h3>
<p class="wrapper subtitle">
Python入门教程
</p>
<div class="wrapper time">2019-02-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-tutorial-01/" class="wrapper post-i-link" title="你是如何自学Python的">
<div class="wrapper cover">
<img src="/images/tutorial1.png" alt="你是如何自学Python的">
</div>
<h3 class="wrapper title" title="你是如何自学Python的">你是如何自学Python的</h3>
<p class="wrapper subtitle">
Python入门教程
</p>
<div class="wrapper time">2019-02-01</div>
</a>
</li>
</ul>
</div>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,127 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="banner-wrapper">
<div class="container banner-container"></div>
</section>
<section class="wrapper menu-wrapper">
<nav class="container">
<a href="/" class="active">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a><a href="/fly/飞蟒微课堂/" class="" title="飞蟒微课堂">飞蟒微课堂</a><a href="/fly/自然语言处理/cs224n/" class="" title="cs224n">cs224n</a><a href="/fly/飞蟒微课堂/LeetCode/" class="" title="LeetCode">LeetCode</a>
</nav>
</section>
<div class="wrapper index-wrapper">
<ul class="container list-container">
<li class="post-i-wrapper">
<a href="/article/python-nlp-01/" class="wrapper post-i-link" title="使用 Python 生成《红楼梦》词云">
<div class="wrapper cover">
<img src="/images/nlp1.png" alt="使用 Python 生成《红楼梦》词云">
</div>
<h3 class="wrapper title" title="使用 Python 生成《红楼梦》词云">使用 Python 生成《红楼梦》词云</h3>
<p class="wrapper subtitle">
Python自然语言处理教程
</p>
<div class="wrapper time">2019-03-01</div>
</a>
</li>
</ul>
</div>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,140 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="banner-wrapper">
<div class="container banner-container"></div>
</section>
<section class="wrapper menu-wrapper">
<nav class="container">
<a href="/" class="active">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a><a href="/fly/飞蟒微课堂/" class="" title="飞蟒微课堂">飞蟒微课堂</a><a href="/fly/自然语言处理/cs224n/" class="" title="cs224n">cs224n</a><a href="/fly/飞蟒微课堂/LeetCode/" class="" title="LeetCode">LeetCode</a>
</nav>
</section>
<div class="wrapper index-wrapper">
<ul class="container list-container">
<li class="post-i-wrapper">
<a href="/article/python-new-02/" class="wrapper post-i-link" title="Python 3.8新特性——仅限位置形参">
<div class="wrapper cover">
<img src="/images/new-02.png" alt="Python 3.8新特性——仅限位置形参">
</div>
<h3 class="wrapper title" title="Python 3.8新特性——仅限位置形参">Python 3.8新特性——仅限位置形参</h3>
<p class="wrapper subtitle">
介绍Python语言新的特性
</p>
<div class="wrapper time">2019-04-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-new-01/" class="wrapper post-i-link" title="Python 3.8新特性——赋值表达式">
<div class="wrapper cover">
<img src="/images/new-01.png" alt="Python 3.8新特性——赋值表达式">
</div>
<h3 class="wrapper title" title="Python 3.8新特性——赋值表达式">Python 3.8新特性——赋值表达式</h3>
<p class="wrapper subtitle">
介绍Python语言新的特性
</p>
<div class="wrapper time">2019-04-01</div>
</a>
</li>
</ul>
</div>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,257 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="banner-wrapper">
<div class="container banner-container"></div>
</section>
<section class="wrapper menu-wrapper">
<nav class="container">
<a href="/" class="active">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a><a href="/fly/飞蟒微课堂/" class="" title="飞蟒微课堂">飞蟒微课堂</a><a href="/fly/自然语言处理/cs224n/" class="" title="cs224n">cs224n</a><a href="/fly/飞蟒微课堂/LeetCode/" class="" title="LeetCode">LeetCode</a>
</nav>
</section>
<div class="wrapper index-wrapper">
<ul class="container list-container">
<li class="post-i-wrapper">
<a href="/article/python-new-02/" class="wrapper post-i-link" title="Python 3.8新特性——仅限位置形参">
<div class="wrapper cover">
<img src="/images/new-02.png" alt="Python 3.8新特性——仅限位置形参">
</div>
<h3 class="wrapper title" title="Python 3.8新特性——仅限位置形参">Python 3.8新特性——仅限位置形参</h3>
<p class="wrapper subtitle">
介绍Python语言新的特性
</p>
<div class="wrapper time">2019-04-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-new-01/" class="wrapper post-i-link" title="Python 3.8新特性——赋值表达式">
<div class="wrapper cover">
<img src="/images/new-01.png" alt="Python 3.8新特性——赋值表达式">
</div>
<h3 class="wrapper title" title="Python 3.8新特性——赋值表达式">Python 3.8新特性——赋值表达式</h3>
<p class="wrapper subtitle">
介绍Python语言新的特性
</p>
<div class="wrapper time">2019-04-01</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-nlp-01/" class="wrapper post-i-link" title="使用 Python 生成《红楼梦》词云">
<div class="wrapper cover">
<img src="/images/nlp1.png" alt="使用 Python 生成《红楼梦》词云">
</div>
<h3 class="wrapper title" title="使用 Python 生成《红楼梦》词云">使用 Python 生成《红楼梦》词云</h3>
<p class="wrapper subtitle">
Python自然语言处理教程
</p>
<div class="wrapper time">2019-03-01</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-tutorial-03/" class="wrapper post-i-link" title="Python正则15分钟入门">
<div class="wrapper cover">
<img src="/images/tutorial3.png" alt="Python正则15分钟入门">
</div>
<h3 class="wrapper title" title="Python正则15分钟入门">Python正则15分钟入门</h3>
<p class="wrapper subtitle">
Python入门教程
</p>
<div class="wrapper time">2019-02-03</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-tutorial-02/" class="wrapper post-i-link" title="潘石屹我们为什么要学习Python语言">
<div class="wrapper cover">
<img src="/images/tutorial2.png" alt="潘石屹我们为什么要学习Python语言">
</div>
<h3 class="wrapper title" title="潘石屹我们为什么要学习Python语言">潘石屹我们为什么要学习Python语言</h3>
<p class="wrapper subtitle">
Python入门教程
</p>
<div class="wrapper time">2019-02-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-tutorial-01/" class="wrapper post-i-link" title="你是如何自学Python的">
<div class="wrapper cover">
<img src="/images/tutorial1.png" alt="你是如何自学Python的">
</div>
<h3 class="wrapper title" title="你是如何自学Python的">你是如何自学Python的</h3>
<p class="wrapper subtitle">
Python入门教程
</p>
<div class="wrapper time">2019-02-01</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-oa-05/" class="wrapper post-i-link" title="Python读取PDF图片">
<div class="wrapper cover">
<img src="/images/oa4.jpg" alt="Python读取PDF图片">
</div>
<h3 class="wrapper title" title="Python读取PDF图片">Python读取PDF图片</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-05</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-oa-04/" class="wrapper post-i-link" title="Python读取PDF文字和表格">
<div class="wrapper cover">
<img src="/images/oa4.jpg" alt="Python读取PDF文字和表格">
</div>
<h3 class="wrapper title" title="Python读取PDF文字和表格">Python读取PDF文字和表格</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-04</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-oa-03/" class="wrapper post-i-link" title="Python批量转换任意文档格式">
<div class="wrapper cover">
<img src="/images/oa3.jpg" alt="Python批量转换任意文档格式">
</div>
<h3 class="wrapper title" title="Python批量转换任意文档格式">Python批量转换任意文档格式</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-03</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-oa-02/" class="wrapper post-i-link" title="Python写入Word文档">
<div class="wrapper cover">
<img src="/images/oa2.jpg" alt="Python写入Word文档">
</div>
<h3 class="wrapper title" title="Python写入Word文档">Python写入Word文档</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-oa-01/" class="wrapper post-i-link" title="Python写入Excel表格">
<div class="wrapper cover">
<img src="/images/oa1.jpg" alt="Python写入Excel表格">
</div>
<h3 class="wrapper title" title="Python写入Excel表格">Python写入Excel表格</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-01</div>
</a>
</li>
</ul>
</div>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,166 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="banner-wrapper">
<div class="container banner-container"></div>
</section>
<section class="wrapper menu-wrapper">
<nav class="container">
<a href="/" class="active">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a><a href="/fly/飞蟒微课堂/" class="" title="飞蟒微课堂">飞蟒微课堂</a><a href="/fly/自然语言处理/cs224n/" class="" title="cs224n">cs224n</a><a href="/fly/飞蟒微课堂/LeetCode/" class="" title="LeetCode">LeetCode</a>
</nav>
</section>
<div class="wrapper index-wrapper">
<ul class="container list-container">
<li class="post-i-wrapper">
<a href="/article/python-class-02/" class="wrapper post-i-link" title="飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划">
<div class="wrapper cover">
<img src="/images/class-02.png" alt="飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划">
</div>
<h3 class="wrapper title" title="飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划">飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划</h3>
<p class="wrapper subtitle">
LeetCode刷题计划启动啦
</p>
<div class="wrapper time">2020-01-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-cs224n-02/" class="wrapper post-i-link" title="cs224n 解答拾遗word embedding 之SVD分解">
<div class="wrapper cover">
<img src="/images/cs224n-02.png" alt="cs224n 解答拾遗word embedding 之SVD分解">
</div>
<h3 class="wrapper title" title="cs224n 解答拾遗word embedding 之SVD分解">cs224n 解答拾遗word embedding 之SVD分解</h3>
<p class="wrapper subtitle">
cs224n解答
</p>
<div class="wrapper time">2020-01-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-cs224n-01/" class="wrapper post-i-link" title="cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量">
<div class="wrapper cover">
<img src="/images/cs224n-01.png" alt="cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量">
</div>
<h3 class="wrapper title" title="cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量">cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量</h3>
<p class="wrapper subtitle">
cs224n解答
</p>
<div class="wrapper time">2020-01-01</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-class-01/" class="wrapper post-i-link" title="为什么在今年你需要学习Python">
<div class="wrapper cover">
<img src="/images/class-01.png" alt="为什么在今年你需要学习Python">
</div>
<h3 class="wrapper title" title="为什么在今年你需要学习Python">为什么在今年你需要学习Python</h3>
<p class="wrapper subtitle">
飞蟒微课堂正式开班
</p>
<div class="wrapper time">2020-01-01</div>
</a>
</li>
</ul>
</div>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,153 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="banner-wrapper">
<div class="container banner-container"></div>
</section>
<section class="wrapper menu-wrapper">
<nav class="container">
<a href="/" class="active">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a><a href="/fly/飞蟒微课堂/" class="" title="飞蟒微课堂">飞蟒微课堂</a><a href="/fly/自然语言处理/cs224n/" class="" title="cs224n">cs224n</a><a href="/fly/飞蟒微课堂/LeetCode/" class="" title="LeetCode">LeetCode</a>
</nav>
</section>
<div class="wrapper index-wrapper">
<ul class="container list-container">
<li class="post-i-wrapper">
<a href="/article/python-leetcode-lcci0102/" class="wrapper post-i-link" title="LCCI 01.02.判定是否互为字符重排">
<div class="wrapper cover">
<img src="/images/leetcode-0102.png" alt="LCCI 01.02.判定是否互为字符重排">
</div>
<h3 class="wrapper title" title="LCCI 01.02.判定是否互为字符重排">LCCI 01.02.判定是否互为字符重排</h3>
<p class="wrapper subtitle">
LeetCode刷题计划
</p>
<div class="wrapper time">2020-02-26</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-leetcode-lcci0101/" class="wrapper post-i-link" title="LCCI 01.01.判定字符是否唯一">
<div class="wrapper cover">
<img src="/images/leetcode-0101.png" alt="LCCI 01.01.判定字符是否唯一">
</div>
<h3 class="wrapper title" title="LCCI 01.01.判定字符是否唯一">LCCI 01.01.判定字符是否唯一</h3>
<p class="wrapper subtitle">
LeetCode刷题计划
</p>
<div class="wrapper time">2020-02-25</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-leetcode-0000/" class="wrapper post-i-link" title="0000.为什么需要复杂度分析">
<div class="wrapper cover">
<img src="/images/leetcode-0000.png" alt="0000.为什么需要复杂度分析">
</div>
<h3 class="wrapper title" title="0000.为什么需要复杂度分析">0000.为什么需要复杂度分析</h3>
<p class="wrapper subtitle">
LeetCode刷题计划第0篇
</p>
<div class="wrapper time">2020-02-24</div>
</a>
</li>
</ul>
</div>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,205 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="banner-wrapper">
<div class="container banner-container"></div>
</section>
<section class="wrapper menu-wrapper">
<nav class="container">
<a href="/" class="active">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a><a href="/fly/飞蟒微课堂/" class="" title="飞蟒微课堂">飞蟒微课堂</a><a href="/fly/自然语言处理/cs224n/" class="" title="cs224n">cs224n</a><a href="/fly/飞蟒微课堂/LeetCode/" class="" title="LeetCode">LeetCode</a>
</nav>
</section>
<div class="wrapper index-wrapper">
<ul class="container list-container">
<li class="post-i-wrapper">
<a href="/article/python-leetcode-lcci0102/" class="wrapper post-i-link" title="LCCI 01.02.判定是否互为字符重排">
<div class="wrapper cover">
<img src="/images/leetcode-0102.png" alt="LCCI 01.02.判定是否互为字符重排">
</div>
<h3 class="wrapper title" title="LCCI 01.02.判定是否互为字符重排">LCCI 01.02.判定是否互为字符重排</h3>
<p class="wrapper subtitle">
LeetCode刷题计划
</p>
<div class="wrapper time">2020-02-26</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-leetcode-lcci0101/" class="wrapper post-i-link" title="LCCI 01.01.判定字符是否唯一">
<div class="wrapper cover">
<img src="/images/leetcode-0101.png" alt="LCCI 01.01.判定字符是否唯一">
</div>
<h3 class="wrapper title" title="LCCI 01.01.判定字符是否唯一">LCCI 01.01.判定字符是否唯一</h3>
<p class="wrapper subtitle">
LeetCode刷题计划
</p>
<div class="wrapper time">2020-02-25</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-leetcode-0000/" class="wrapper post-i-link" title="0000.为什么需要复杂度分析">
<div class="wrapper cover">
<img src="/images/leetcode-0000.png" alt="0000.为什么需要复杂度分析">
</div>
<h3 class="wrapper title" title="0000.为什么需要复杂度分析">0000.为什么需要复杂度分析</h3>
<p class="wrapper subtitle">
LeetCode刷题计划第0篇
</p>
<div class="wrapper time">2020-02-24</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-class-02/" class="wrapper post-i-link" title="飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划">
<div class="wrapper cover">
<img src="/images/class-02.png" alt="飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划">
</div>
<h3 class="wrapper title" title="飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划">飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划</h3>
<p class="wrapper subtitle">
LeetCode刷题计划启动啦
</p>
<div class="wrapper time">2020-01-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-cs224n-02/" class="wrapper post-i-link" title="cs224n 解答拾遗word embedding 之SVD分解">
<div class="wrapper cover">
<img src="/images/cs224n-02.png" alt="cs224n 解答拾遗word embedding 之SVD分解">
</div>
<h3 class="wrapper title" title="cs224n 解答拾遗word embedding 之SVD分解">cs224n 解答拾遗word embedding 之SVD分解</h3>
<p class="wrapper subtitle">
cs224n解答
</p>
<div class="wrapper time">2020-01-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-cs224n-01/" class="wrapper post-i-link" title="cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量">
<div class="wrapper cover">
<img src="/images/cs224n-01.png" alt="cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量">
</div>
<h3 class="wrapper title" title="cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量">cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量</h3>
<p class="wrapper subtitle">
cs224n解答
</p>
<div class="wrapper time">2020-01-01</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-class-01/" class="wrapper post-i-link" title="为什么在今年你需要学习Python">
<div class="wrapper cover">
<img src="/images/class-01.png" alt="为什么在今年你需要学习Python">
</div>
<h3 class="wrapper title" title="为什么在今年你需要学习Python">为什么在今年你需要学习Python</h3>
<p class="wrapper subtitle">
飞蟒微课堂正式开班
</p>
<div class="wrapper time">2020-01-01</div>
</a>
</li>
</ul>
</div>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,361 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="banner-wrapper">
<div class="container banner-container"></div>
</section>
<section class="wrapper menu-wrapper">
<nav class="container">
<a href="/" class="active">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a><a href="/fly/飞蟒微课堂/" class="" title="飞蟒微课堂">飞蟒微课堂</a><a href="/fly/自然语言处理/cs224n/" class="" title="cs224n">cs224n</a><a href="/fly/飞蟒微课堂/LeetCode/" class="" title="LeetCode">LeetCode</a>
</nav>
</section>
<div class="wrapper index-wrapper">
<ul class="container list-container">
<li class="post-i-wrapper">
<a href="/article/python-leetcode-lcci0102/" class="wrapper post-i-link" title="LCCI 01.02.判定是否互为字符重排">
<div class="wrapper cover">
<img src="/images/leetcode-0102.png" alt="LCCI 01.02.判定是否互为字符重排">
</div>
<h3 class="wrapper title" title="LCCI 01.02.判定是否互为字符重排">LCCI 01.02.判定是否互为字符重排</h3>
<p class="wrapper subtitle">
LeetCode刷题计划
</p>
<div class="wrapper time">2020-02-26</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-leetcode-lcci0101/" class="wrapper post-i-link" title="LCCI 01.01.判定字符是否唯一">
<div class="wrapper cover">
<img src="/images/leetcode-0101.png" alt="LCCI 01.01.判定字符是否唯一">
</div>
<h3 class="wrapper title" title="LCCI 01.01.判定字符是否唯一">LCCI 01.01.判定字符是否唯一</h3>
<p class="wrapper subtitle">
LeetCode刷题计划
</p>
<div class="wrapper time">2020-02-25</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-leetcode-0000/" class="wrapper post-i-link" title="0000.为什么需要复杂度分析">
<div class="wrapper cover">
<img src="/images/leetcode-0000.png" alt="0000.为什么需要复杂度分析">
</div>
<h3 class="wrapper title" title="0000.为什么需要复杂度分析">0000.为什么需要复杂度分析</h3>
<p class="wrapper subtitle">
LeetCode刷题计划第0篇
</p>
<div class="wrapper time">2020-02-24</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-class-02/" class="wrapper post-i-link" title="飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划">
<div class="wrapper cover">
<img src="/images/class-02.png" alt="飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划">
</div>
<h3 class="wrapper title" title="飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划">飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划</h3>
<p class="wrapper subtitle">
LeetCode刷题计划启动啦
</p>
<div class="wrapper time">2020-01-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-cs224n-02/" class="wrapper post-i-link" title="cs224n 解答拾遗word embedding 之SVD分解">
<div class="wrapper cover">
<img src="/images/cs224n-02.png" alt="cs224n 解答拾遗word embedding 之SVD分解">
</div>
<h3 class="wrapper title" title="cs224n 解答拾遗word embedding 之SVD分解">cs224n 解答拾遗word embedding 之SVD分解</h3>
<p class="wrapper subtitle">
cs224n解答
</p>
<div class="wrapper time">2020-01-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-cs224n-01/" class="wrapper post-i-link" title="cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量">
<div class="wrapper cover">
<img src="/images/cs224n-01.png" alt="cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量">
</div>
<h3 class="wrapper title" title="cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量">cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量</h3>
<p class="wrapper subtitle">
cs224n解答
</p>
<div class="wrapper time">2020-01-01</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-class-01/" class="wrapper post-i-link" title="为什么在今年你需要学习Python">
<div class="wrapper cover">
<img src="/images/class-01.png" alt="为什么在今年你需要学习Python">
</div>
<h3 class="wrapper title" title="为什么在今年你需要学习Python">为什么在今年你需要学习Python</h3>
<p class="wrapper subtitle">
飞蟒微课堂正式开班
</p>
<div class="wrapper time">2020-01-01</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-new-02/" class="wrapper post-i-link" title="Python 3.8新特性——仅限位置形参">
<div class="wrapper cover">
<img src="/images/new-02.png" alt="Python 3.8新特性——仅限位置形参">
</div>
<h3 class="wrapper title" title="Python 3.8新特性——仅限位置形参">Python 3.8新特性——仅限位置形参</h3>
<p class="wrapper subtitle">
介绍Python语言新的特性
</p>
<div class="wrapper time">2019-04-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-new-01/" class="wrapper post-i-link" title="Python 3.8新特性——赋值表达式">
<div class="wrapper cover">
<img src="/images/new-01.png" alt="Python 3.8新特性——赋值表达式">
</div>
<h3 class="wrapper title" title="Python 3.8新特性——赋值表达式">Python 3.8新特性——赋值表达式</h3>
<p class="wrapper subtitle">
介绍Python语言新的特性
</p>
<div class="wrapper time">2019-04-01</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-nlp-01/" class="wrapper post-i-link" title="使用 Python 生成《红楼梦》词云">
<div class="wrapper cover">
<img src="/images/nlp1.png" alt="使用 Python 生成《红楼梦》词云">
</div>
<h3 class="wrapper title" title="使用 Python 生成《红楼梦》词云">使用 Python 生成《红楼梦》词云</h3>
<p class="wrapper subtitle">
Python自然语言处理教程
</p>
<div class="wrapper time">2019-03-01</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-tutorial-03/" class="wrapper post-i-link" title="Python正则15分钟入门">
<div class="wrapper cover">
<img src="/images/tutorial3.png" alt="Python正则15分钟入门">
</div>
<h3 class="wrapper title" title="Python正则15分钟入门">Python正则15分钟入门</h3>
<p class="wrapper subtitle">
Python入门教程
</p>
<div class="wrapper time">2019-02-03</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-tutorial-02/" class="wrapper post-i-link" title="潘石屹我们为什么要学习Python语言">
<div class="wrapper cover">
<img src="/images/tutorial2.png" alt="潘石屹我们为什么要学习Python语言">
</div>
<h3 class="wrapper title" title="潘石屹我们为什么要学习Python语言">潘石屹我们为什么要学习Python语言</h3>
<p class="wrapper subtitle">
Python入门教程
</p>
<div class="wrapper time">2019-02-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-tutorial-01/" class="wrapper post-i-link" title="你是如何自学Python的">
<div class="wrapper cover">
<img src="/images/tutorial1.png" alt="你是如何自学Python的">
</div>
<h3 class="wrapper title" title="你是如何自学Python的">你是如何自学Python的</h3>
<p class="wrapper subtitle">
Python入门教程
</p>
<div class="wrapper time">2019-02-01</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-oa-05/" class="wrapper post-i-link" title="Python读取PDF图片">
<div class="wrapper cover">
<img src="/images/oa4.jpg" alt="Python读取PDF图片">
</div>
<h3 class="wrapper title" title="Python读取PDF图片">Python读取PDF图片</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-05</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-oa-04/" class="wrapper post-i-link" title="Python读取PDF文字和表格">
<div class="wrapper cover">
<img src="/images/oa4.jpg" alt="Python读取PDF文字和表格">
</div>
<h3 class="wrapper title" title="Python读取PDF文字和表格">Python读取PDF文字和表格</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-04</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-oa-03/" class="wrapper post-i-link" title="Python批量转换任意文档格式">
<div class="wrapper cover">
<img src="/images/oa3.jpg" alt="Python批量转换任意文档格式">
</div>
<h3 class="wrapper title" title="Python批量转换任意文档格式">Python批量转换任意文档格式</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-03</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-oa-02/" class="wrapper post-i-link" title="Python写入Word文档">
<div class="wrapper cover">
<img src="/images/oa2.jpg" alt="Python写入Word文档">
</div>
<h3 class="wrapper title" title="Python写入Word文档">Python写入Word文档</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-oa-01/" class="wrapper post-i-link" title="Python写入Excel表格">
<div class="wrapper cover">
<img src="/images/oa1.jpg" alt="Python写入Excel表格">
</div>
<h3 class="wrapper title" title="Python写入Excel表格">Python写入Excel表格</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-01</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/about/" class="wrapper post-i-link" title="关于我们">
<div class="wrapper cover">
<img src="/images/flypython.png" alt="关于我们">
</div>
<h3 class="wrapper title" title="关于我们">关于我们</h3>
<p class="wrapper subtitle">
关于飞蟒Python
</p>
<div class="wrapper time">2018-01-01</div>
</a>
</li>
</ul>
</div>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,122 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="关于我们,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="关于我们 | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:type" content="article">
<meta property="og:url" content="http://www.flypython.com/article/about/">
<meta property="og:image" content="http://www.flypython.com/images/flypython.png">
<meta property="og:description" content="关于我们--关于飞蟒Python">
<meta name="description" content="关于我们--关于飞蟒Python">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>关于我们 | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="wrapper post-banner">
<div class="container post-banner-container">
<h2 class="wrapper title">关于我们</h2>
<div class="wrapper tips">
<span>Author</span><span>flypython</span> | <span>Date: </span><span>2018-01-01</span> | <span>Category</span><span><a href="/fly/Python入门/" title="Python入门">Python入门</a></span>
</div>
</div>
</section>
<section class="wrapper main-wrapper">
<article class="sub-container post-content">
<h2 id="关于我们"><a href="#关于我们" class="headerlink" title="关于我们"></a>关于我们</h2><p><a href="http://flypython.com" target="_blank" rel="noopener">http://flypython.com</a></p>
<h4 id="关于FlyPython"><a href="#关于FlyPython" class="headerlink" title="关于FlyPython"></a>关于FlyPython</h4><p>FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区。</p>
<h4 id="联系我们"><a href="#联系我们" class="headerlink" title="联系我们"></a>联系我们</h4><p>客服&amp;合作: 微信号 flypython</p>
<h4 id="公众号二维码"><a href="#公众号二维码" class="headerlink" title="公众号二维码"></a>公众号二维码</h4><p>FlyPython<br><img src="https://tva1.sinaimg.cn/large/006tNbRwly1gb1q8emoktj309k09k749.jpg" alt></p>
<p>FlyPython训练营<br><img src="https://tva1.sinaimg.cn/large/006tNbRwly1gai7aeyheij3076076dgb.jpg" alt></p>
</article>
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
</section>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,181 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="为什么在今年你需要学习Python,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="为什么在今年你需要学习Python | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:type" content="article">
<meta property="og:url" content="http://www.flypython.com/article/python-class-01/">
<meta property="og:image" content="http://www.flypython.com/images/class-01.png">
<meta property="og:description" content="为什么在今年你需要学习Python--飞蟒微课堂正式开班">
<meta name="description" content="为什么在今年你需要学习Python--飞蟒微课堂正式开班">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>为什么在今年你需要学习Python | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="wrapper post-banner">
<div class="container post-banner-container">
<h2 class="wrapper title">为什么在今年你需要学习Python</h2>
<div class="wrapper tips">
<span>Author</span><span>flypython</span> | <span>Date: </span><span>2020-01-01</span> | <span>Category</span><span><a href="/fly/飞蟒微课堂/" title="飞蟒微课堂">飞蟒微课堂</a></span>
</div>
</div>
</section>
<section class="wrapper main-wrapper">
<article class="sub-container post-content">
<p>你是否在朋友圈看过Python培训的广告? 你在微博是否刷出过大佬在学Python的新闻你会惊讶为什么现在都在大肆宣传Python今天我就给你答案。</p>
<p>IT行业发展日新月异每天你都会听到很多新兴技术和编程语言以及他们的最新进展。</p>
<p>对于那些对学哪种编程语言更适合感觉困惑的初学者其实不用担心FlyPython为你提供了一个计划。我们不用需要学习三大编程语言五大框架的谎言来骗你。相反我们将只关注一种语言那就是Python。</p>
<p>让我们从一个有趣的事实开始。在现在流行的编程语言中Python是最受欢迎。你可以通过在各种榜单上来确认这一事实。</p>
<h2 id="为什么要学习Python"><a href="#为什么要学习Python" class="headerlink" title="为什么要学习Python"></a>为什么要学习Python</h2><p><img src="https://tva1.sinaimg.cn/large/006tNbRwly1gb93c0tlnnj317a0cyjto.jpg" alt></p>
<p>你可能会想到的第一个问题是“为什么要专门学习Python”。嗯这个问题的答案很简单。</p>
<p>考虑一下要包含在编程语言中的因素。</p>
<h4 id="1-学习能力"><a href="#1-学习能力" class="headerlink" title="1.学习能力"></a>1.学习能力</h4><p>Python很难吗一点也不Python是很多人的第二语言现在越来越多人开始作为第一语言学习。Python语言旨在简化了复杂的编程它削减了所有低级任务并为你执行所需的任何任务提供了高级抽象。Python基础语法非常简单你可以通过一个月的练习轻松掌握它。</p>
<h4 id="2-提高生产力"><a href="#2-提高生产力" class="headerlink" title="2.提高生产力"></a>2.提高生产力</h4><p>学习了编程语言后打算做什么你是否要构建应用程序Web服务令人兴奋的游戏自动化重复性任务执行复杂的科学或数字计算或从某些数据挖掘观点Python让你无所不能。它是目前最有生产力的语言之一。</p>
<h4 id="3-高薪"><a href="#3-高薪" class="headerlink" title="3.高薪"></a>3.高薪</h4><p>学习Python是你今天可以做出的最好的投资。Python开发人员的薪水很高尤其是在Web开发机器学习和数据科学领域。薪资范围从10k起具体取决于地点和你在行业中的经验。IT行业对Python开发人员的需求很大因此你在市场上找到Python职位不会有任何麻烦。</p>
<h2 id="Python应用方向"><a href="#Python应用方向" class="headerlink" title="Python应用方向"></a>Python应用方向</h2><p>使用Python可以做的事情没有限制但是在这里我们将向你介绍一些最重要的Python实际应用以提示你可以在哪里实际使用Python编程语言。</p>
<p><img src="https://tva1.sinaimg.cn/large/006tNbRwly1gb93c7xhhaj30ma0botam.jpg" alt></p>
<h4 id="1-网站开发"><a href="#1-网站开发" class="headerlink" title="1.网站开发"></a>1.网站开发</h4><p>Python是快速开发Web应用程序的理想选择。借助DjangoTornadoFlask等许多框架Python使你可以快速构建Web应用程序。Python用于Web开发的服务器端你可以使用Python与数据库进行交互并构建REST API服务。</p>
<h4 id="2-数据科学"><a href="#2-数据科学" class="headerlink" title="2.数据科学"></a>2.数据科学</h4><p>早期的Python主要用于构建应用程序和编写脚本以自动执行任务但是现在数据科学使Python更加流行。数据科学人员非常依赖Python因为它的优点包括简单强大的社区以及轻松计算等功能。在数据科学领域流行的Python库和框架是</p>
<ul>
<li>Pandas数据分析</li>
<li>Numpy数值和科学计算</li>
<li>MatplotlibSeaborn数据可视化</li>
<li>Scikit-learn机器学习</li>
<li>TensorflowKerasPytorch深度学习</li>
</ul>
<h4 id="3-人工智能"><a href="#3-人工智能" class="headerlink" title="3.人工智能"></a>3.人工智能</h4><p>不久的将来将是人工智能时代。过去计算机被用来以很高的速度执行数学计算但是现在许多大型组织和研究人员正在致力于构建可以像人类一样执行任务的智能系统。机器在某种程度上足以理解人类的情感及其自然语言。它们可以模仿人类以前无法完成的某些动作。同样Python在构建AI系统方面很受欢迎。</p>
<p>下面列出了一些用于构建智能系统的Python库 </p>
<ul>
<li>NLTK (自然语言工具包)</li>
<li>OpenCV (开源计算机视觉库)</li>
<li>Rasa (开源聊天机器人库)</li>
</ul>
<h4 id="4-自动化"><a href="#4-自动化" class="headerlink" title="4.自动化"></a>4.自动化</h4><p>有许多重复性的与业务相关的任务。Python可以通过自动执行任务来简化工作例如抓取网站来收集数据编写测试用例自动化办公任务。<br>Python可以轻松访问和读取所有类型的文件这通过自动执行重复任务为节省大量时间提供了机会。用于自动化的框架或库是</p>
<ul>
<li>Robot Framework</li>
<li>PyTest</li>
<li>PyUnit</li>
</ul>
<p>Python在不同领域中的使用增长非常迅速并且没有停止的迹象。可以肯定地说Python将在这个瞬息万变的IT行业中会长期坚持下去。</p>
<h4 id="如何学习Python"><a href="#如何学习Python" class="headerlink" title="如何学习Python"></a>如何学习Python</h4><p><img src="https://tva1.sinaimg.cn/large/006tNbRwly1gb93cfkmq4j30p00bojtb.jpg" alt></p>
<p>你很棒已经读到了这里现在我知道你对编程感到兴奋并在思考你想使用Python构建什么样程序。让我们再迈出一步为自己制定一个计划以有效地学习Python。</p>
<p>FlyPython推出了飞蟒微课堂希望能给学员一些学习Python的路径指导。</p>
<p><img src="https://tva1.sinaimg.cn/large/006tNbRwly1gb93cn4we7j30ng0poq4j.jpg" alt></p>
<p>你的Python学习之路可以遵从以下7个步骤</p>
<h4 id="步骤1加强基础"><a href="#步骤1加强基础" class="headerlink" title="步骤1加强基础"></a>步骤1加强基础</h4><p>一切都从头开始了解与编程相关的术语和概念。因此请在你的计算机上安装Python然后开始学习Python编程语言的基本语法变量和数据类型</p>
<h4 id="步骤2了解决策和控制流程"><a href="#步骤2了解决策和控制流程" class="headerlink" title="步骤2了解决策和控制流程"></a>步骤2了解决策和控制流程</h4><p>熟悉基础知识后了解了如何使用编程语言进行决策判断。有多种不同的方法例如if和else语句可让根据条件进行决策。循环也是所有编程语言的重要组成部分。您可以使用循环轻松地执行重复性任务并通过实现不同类型的循环例如For循环while循环和嵌套循环来学习概念。</p>
<h4 id="步骤3掌握面向对象的编程"><a href="#步骤3掌握面向对象的编程" class="headerlink" title="步骤3掌握面向对象的编程"></a>步骤3掌握面向对象的编程</h4><p>面向对象编程是一种通过考虑对象和类形式的现实世界实体来解决所有问题的方法。为了成为一名更好的程序员,必须了解面向对象编程的概念和原理。在构建大型应用程序时,,面向对象设计是有益的,它通过重用可用组件来帮助我们编写简洁的代码。它们也易于维护。</p>
<h4 id="步骤4使用框架创建Web应用"><a href="#步骤4使用框架创建Web应用" class="headerlink" title="步骤4使用框架创建Web应用"></a>步骤4使用框架创建Web应用</h4><p>在Web开发环境中Python用于Web应用程序的服务器端编程。我们使用HTMLCSS和JavaScript来定义网站的外观以及过渡效果和动画。这也称为应用程序的前端。应用程序的后端涉及处理来自浏览器或前端的请求从数据库检索数据并执行操作。Python管理所有这些与服务器端相关的任务。用于Web开发的最受欢迎的Python框架是Django。另一个流行的框架是Flask。这些框架提供了应用程序的快速开发。因此你可以选择其中任何一个并通过创建具有基本CRUD操作的Web应用程序来创建一个小项目。</p>
<h4 id="步骤5掌握数据科学的技能"><a href="#步骤5掌握数据科学的技能" class="headerlink" title="步骤5掌握数据科学的技能"></a>步骤5掌握数据科学的技能</h4><p>数据科学和机器学习的世界在很大程度上取决于Python。我们开始介绍机器学习算法的类型通过实现不同的机器学习模型来练习编程。使用Pandas库分析数据使用Numpy库执行数值计算使用scikit-learn构建机器学习模型并使用matplotlib或seaborn等库可视化数据。</p>
<h4 id="步骤6Python机器学习项目"><a href="#步骤6Python机器学习项目" class="headerlink" title="步骤6Python机器学习项目"></a>步骤6Python机器学习项目</h4><p>环顾四周,思考可以解决哪些问题。创建一个项目构想列表,并从你学到的所有东西中构建出一些东西。通过集成所有内容来进行大型项目。你可以通过向用户提供某种形式的服务来构建机器学习模型并将其与网站集成。</p>
<p>准备从头开始创建Python项目</p>
<ul>
<li>虚假新闻检测</li>
<li>音频情感识别</li>
<li>聊天机器人</li>
<li>交通标志识别</li>
</ul>
<p>我们会从最初的数据准备开始构建机器学习pipeline教你真正的机器学习项目实战。</p>
<h4 id="步骤7Python面试"><a href="#步骤7Python面试" class="headerlink" title="步骤7Python面试"></a>步骤7Python面试</h4><p>Python面试分为两个部分第一部分是数据结构算法准备阶段主要是Leetcode真题解析。第二部分是各大厂面试真题解析带你实战。</p>
<h4 id="飞蟒微课堂更新计划"><a href="#飞蟒微课堂更新计划" class="headerlink" title="飞蟒微课堂更新计划"></a>飞蟒微课堂更新计划</h4><p>微课堂推出7个免费的专项课程来对应上面的7个步骤。照顾到不同的同学基础各不相同课程之间相互独立我们会同时更新不同的课程最后把整个课程体系完善。</p>
<p>目前的计划会同时启动Python面试和Python语法课程请关注公众号FlyPython和飞蟒官网。</p>
<h4 id="课程访问资源"><a href="#课程访问资源" class="headerlink" title="课程访问资源"></a>课程访问资源</h4><ul>
<li>飞蟒官网: <a href="https://flypython.com" target="_blank" rel="noopener">https://flypython.com</a></li>
<li>微课堂课程主页:<a href="http://flypython.com/python" target="_blank" rel="noopener">http://flypython.com/python</a></li>
<li>Python日报<a href="http://flypython.com/flypython_daily" target="_blank" rel="noopener">http://flypython.com/flypython_daily</a></li>
<li>LeetCode题解 <a href="http://flypython.com/leetcode" target="_blank" rel="noopener">http://flypython.com/leetcode</a></li>
</ul>
<p><img src="https://tva1.sinaimg.cn/large/006tNbRwly1gb937qeljej30p00dwq5g.jpg" alt></p>
</article>
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
</section>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,149 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划 | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:type" content="article">
<meta property="og:url" content="http://www.flypython.com/article/python-class-02/">
<meta property="og:image" content="http://www.flypython.com/images/class-02.png">
<meta property="og:description" content="飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划--LeetCode刷题计划启动啦">
<meta name="description" content="飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划--LeetCode刷题计划启动啦">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划 | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="wrapper post-banner">
<div class="container post-banner-container">
<h2 class="wrapper title">飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划</h2>
<div class="wrapper tips">
<span>Author</span><span>flypython</span> | <span>Date: </span><span>2020-01-02</span> | <span>Category</span><span><a href="/fly/飞蟒微课堂/" title="飞蟒微课堂">飞蟒微课堂</a><a href="/fly/飞蟒微课堂/LeetCode/" title="LeetCode">LeetCode</a></span>
</div>
</div>
</section>
<section class="wrapper main-wrapper">
<article class="sub-container post-content">
<h2 id="LeetCode刷题计划"><a href="#LeetCode刷题计划" class="headerlink" title="LeetCode刷题计划"></a>LeetCode刷题计划</h2><p>我至今面试过几百人,发现很多候选人基础确实有不少的问题,尤其是转专业的同学。</p>
<p>大多数的公司面试工程师时都会考察这几个方面,</p>
<ul>
<li>数据结构与算法一般为leetcode题目</li>
<li>简历上的项目探讨与深入研究</li>
<li>业务场景设计题</li>
</ul>
<p>按照不同的职位会增加相应的内容。比如算法工程师会问机器学习与深度学习算法如果有paper和比赛也会问一些。但是一般前两轮都是数据结构和算法所以数据结构与算法是敲门砖希望同学们能在这方面多下些功夫。</p>
<p>Python面试专项课程分为两部分一是刷leetcode二是公司面试真题。完整的题解目录请在FlyPython公众号菜单上查看这次主要介绍leetcode面试真题后面会有具体的介绍。</p>
<p>那怎么刷LeetCode呢你可以根据自己的实际情况来决定如果时间充裕可以通过题型来分类每个题型都刷10题左右。如果时间紧张建议刷热门题和公司题库提高命中率。你也可以每周参加leetcode的周赛来维持手感。</p>
<p>真正做到bug free确实很难有的时候刷2-3遍也不行得多做变型题多想多总结不断积累基础就变扎实了。难度以中等为主兼顾hard。</p>
<p>这次的LeetCode刷题计划是以leetcode中文站的精选TOP面试题为基础的题目共145道希望对同学们有帮助。</p>
<ul>
<li>题目链接: <a href="https://leetcode-cn.com/problemset/top/" target="_blank" rel="noopener">https://leetcode-cn.com/problemset/top/</a></li>
<li>题解总目录: <a href="http://flypython.com/leetcode/" target="_blank" rel="noopener">http://flypython.com/leetcode/</a> </li>
<li>leetcode主页: <a href="https://leetcode-cn.com/u/flypython/" target="_blank" rel="noopener">https://leetcode-cn.com/u/flypython/</a></li>
</ul>
<h2 id="附LeetCode练手题"><a href="#附LeetCode练手题" class="headerlink" title="附LeetCode练手题"></a>LeetCode练手题</h2><p>还没有注册LeetCode的同学先去注册一个并完成下面的的练手题。还没有关注FlyPython的同学长按最后的二维码关注我吧。</p>
<h4 id="LCP-1-猜数字"><a href="#LCP-1-猜数字" class="headerlink" title="LCP 1. 猜数字"></a>LCP 1. 猜数字</h4><p>链接:<a href="https://leetcode-cn.com/problems/guess-numbers/" target="_blank" rel="noopener">https://leetcode-cn.com/problems/guess-numbers/</a><br>难度:简单</p>
<h4 id="题目"><a href="#题目" class="headerlink" title="题目"></a>题目</h4><blockquote>
<p>小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次?</p>
<p>输入的guess数组为 小A 每次的猜测answer数组为 小B 每次的选择。guess和answer的长度都等于3。</p>
<p>示例 1</p>
<p>输入guess = [1,2,3], answer = [1,2,3]<br>输出3<br>解释小A 每次都猜对了。</p>
<p>示例 2</p>
<p>输入guess = [2,2,3], answer = [3,2,1]<br>输出1<br>解释小A 只猜对了第二次。</p>
<p>限制:</p>
<p>guess的长度 = 3<br>answer的长度 = 3<br>guess的元素取值为 {1, 2, 3} 之一。<br>answer的元素取值为 {1, 2, 3} 之一。</p>
</blockquote>
<h4 id="题解"><a href="#题解" class="headerlink" title="题解"></a>题解</h4><p>leetcode最简单的练手题可以循环比较计数也可以直接三个元素比较。</p>
<h4 id="解法"><a href="#解法" class="headerlink" title="解法"></a>解法</h4><p><img src="https://tva1.sinaimg.cn/large/006tNbRwly1gb1xh2ta3wg313q0hu7s8.gif" alt></p>
<p><img src="https://tva1.sinaimg.cn/large/006tNbRwly1gb937qeljej30p00dwq5g.jpg" alt></p>
</article>
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
</section>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,164 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量 | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:type" content="article">
<meta property="og:url" content="http://www.flypython.com/article/python-cs224n-01/">
<meta property="og:image" content="http://www.flypython.com/images/cs224n-01.png">
<meta property="og:description" content="cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量--cs224n解答">
<meta name="description" content="cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量--cs224n解答">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量 | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="wrapper post-banner">
<div class="container post-banner-container">
<h2 class="wrapper title">cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量</h2>
<div class="wrapper tips">
<span>Author</span><span>flypython</span> | <span>Date: </span><span>2020-01-01</span> | <span>Category</span><span><a href="/fly/自然语言处理/" title="自然语言处理">自然语言处理</a><a href="/fly/自然语言处理/cs224n/" title="cs224n">cs224n</a></span>
</div>
</div>
</section>
<section class="wrapper main-wrapper">
<article class="sub-container post-content">
<h3 id="1-前言为何一个词有2个向量"><a href="#1-前言为何一个词有2个向量" class="headerlink" title="1.前言为何一个词有2个向量"></a>1.前言为何一个词有2个向量</h3><blockquote>
<p>在cs224n 2019课程中的L1和L2中我们详细论述了word2vec skip-gram 模型,相信大家都已经掌握了。</p>
</blockquote>
<p>但这里有一个细节,肯定让不少同学非常疑惑。<br>视频中提到一个词有2个向量总参数是2d*V。</p>
<p><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/2vec_20200114150901.png" alt></p>
<p>Lecture 01 Introduction and Word Vectorsppt第23页)提到了use two vectors per word</p>
<p><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/2vec_20200114145552.png" alt></p>
<p>Lecture 01 Introduction and Word Vectorsppt第27页</p>
<p>如上图示在训练过程中是存在2个词向量的。这怎么理解明明一个词最终输出的时候只有一个词向量呀。</p>
<h3 id="2-word2vec回顾"><a href="#2-word2vec回顾" class="headerlink" title="2.word2vec回顾"></a>2.word2vec回顾</h3><p>在视频中Manning教授简单提了一嘴我们这里详细说明一下,word2vec为什么要在训练的时候使用2个词向量这2个词向量是什么关系最终输出的是什么词向量。</p>
<p>这2个词向量一个是词$w$的word representations $v_w$ 在下图中表示为V一个是该词w的context representations $u_w$在下图中表示为U。</p>
<p><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/2vec_20200114145755.png" alt></p>
<p>Lecture 02 Word Vectors 2 and Word Senses ppt第4页</p>
<p>在我们训练词向量的时候对于训练语料使得P(o|c)的概率最大,也就是<br>J=-logP(o|c)最小如果没有负号则是求最大cs224n视频的ppt就没有负号</p>
<p>我们是怎么定义P(o|c)的呢?</p>
<p>定义如下:</p>
<p>$P(o|c)={exp(u_o^Tv_c)}/{\sum_{w=1}^V exp(u_w^Tv_c)}$</p>
<p>可以看到这个条件概率是中心词和上下文词2个词向量的点乘再取e的指数并除以所有词的词向量和中心词的点乘取e的指数之和公式的本质是一个向量点乘+softmax。</p>
<p>这里当w是o 中心词的时候使用词的word representations而w是c上下文词的时候使用词的context representations。</p>
<h3 id="3-问:为什么要这么做呢,为什么不都使用同一个词向量呢?"><a href="#3-问:为什么要这么做呢,为什么不都使用同一个词向量呢?" class="headerlink" title="3.问:为什么要这么做呢,为什么不都使用同一个词向量呢?"></a>3.问:为什么要这么做呢,为什么不都使用同一个词向量呢?</h3><p>使用2个词向量的目的是训练时我们需要让具有相同上下文的词的词向量相互接近但我们不希望这些词的上下文的词也相互接近。</p>
<p>以下面2句话的例子讲解一下</p>
<p>the <strong>dog</strong> has a tail</p>
<p>the <strong>cat</strong> has a tail</p>
<p>这里采用word2vec skip-gram ,naive softmax 模型窗口大小采用k=1。</p>
<p>对于中心词dog来说需要计算</p>
<p>P(dog|has) </p>
<p>P(dog|the) </p>
<p>对于中心词cat来说需要计算</p>
<p>P(cat|has)</p>
<p>P(cat|the)</p>
<p>这里的条件概率公式是上面的:<br>$P(o|c)={exp(u_o^Tv_c)}/{\sum_{w=1}^V exp(u_w^Tv_c)}$</p>
<p>分别把中心词dog/cat 和上下文词has/the带入就可求出概率。<br>对于目标函数J=-logP(o|c)我们要求其最小值那么在word2vec算法中需要做梯度下降算法。这里使用sgd只需要对每个样本进行梯度下降如下公式</p>
<p>$u_o(new)=u_o(old)-\alpha \partial J/(\partial u_o)$</p>
<p>$v_c(new)=v_c(old)-\alpha \partial J/(\partial v_c)$</p>
<p>多次迭代sgd后会使得J变小而$u_o$和$v_c$的点乘会变大进而使得两者余弦距离接近。那么如果dog/cat 分别和has/the 接近了dog和cat的词余弦距离就会接近。</p>
<p>假设这里$u_o$和$v_c$都是同一种向量那么不光dog和cat的词余弦距离接近cat和has也会相近连has和the都会相近。</p>
<p>但是我们希望最后输出的词向量dog和cat相近但不希望cat和has相近也不希望has和the相近。如果都相近词就没有区分度了。</p>
<p>所以我们对于每个词采用双词向量对于dog 这个词有一个word representations $v_c$ 用来作为中心词时计算有一个context representations $u_o$)作为上下文词时进行计算。</p>
<p>context representations训练为了使得中心词word representations相近context representations作为中间结果不输出而word representations作为最终结果输出。这样就避免了所有中心词的词向量都接近的困境了。</p>
<p>最终我们保存中心词的word representations既公式中的$v_c$ 。</p>
<h3 id="4-考古"><a href="#4-考古" class="headerlink" title="4.考古"></a>4.考古</h3><p>解释清楚这个问题以后我们知道最早的算法是否使用2个vec的。</p>
<p>在word2vec提出者Tomas Mikolov 的论文Distributed Representations of Words and Phrases and their Compositionality<br>和他提供的word2vec.c代码里训练过程中每个word都存在2个词向量。</p>
<p>如下图<br><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/2vec_20200114150350.png" alt><br>论文Distributed Representations of Words and Phrases and their Compositionality 中截图</p>
<p><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/2vec_20200114150726.png" alt><br>word2vec.c代码截图</p>
<p>所以我们清楚了最早的word2vec算法确实在训练的时候是存在2个vec的。</p>
<h3 id="5-参考文献:"><a href="#5-参考文献:" class="headerlink" title="5.参考文献:"></a>5.参考文献:</h3><p><a href="https://www.quora.com/Why-does-word2vec-have-two-different-representation-for-words" target="_blank" rel="noopener">https://www.quora.com/Why-does-word2vec-have-two-different-representation-for-words</a></p>
<p>论文Distributed Representations of Words and Phrases<br>and their Compositionality</p>
</article>
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
</section>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,157 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="cs224n 解答拾遗word embedding 之SVD分解,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="cs224n 解答拾遗word embedding 之SVD分解 | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:type" content="article">
<meta property="og:url" content="http://www.flypython.com/article/python-cs224n-02/">
<meta property="og:image" content="http://www.flypython.com/images/cs224n-02.png">
<meta property="og:description" content="cs224n 解答拾遗word embedding 之SVD分解--cs224n解答">
<meta name="description" content="cs224n 解答拾遗word embedding 之SVD分解--cs224n解答">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>cs224n 解答拾遗word embedding 之SVD分解 | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="wrapper post-banner">
<div class="container post-banner-container">
<h2 class="wrapper title">cs224n 解答拾遗word embedding 之SVD分解</h2>
<div class="wrapper tips">
<span>Author</span><span>flypython</span> | <span>Date: </span><span>2020-01-02</span> | <span>Category</span><span><a href="/fly/自然语言处理/" title="自然语言处理">自然语言处理</a><a href="/fly/自然语言处理/cs224n/" title="cs224n">cs224n</a></span>
</div>
</div>
</section>
<section class="wrapper main-wrapper">
<article class="sub-container post-content">
<blockquote>
<p>老师请问共现矩阵奇异值分解后为什么是用U的行来做word embedding呢?</p>
</blockquote>
<p>cs224n课程第一周里提到了2种生成word embedding的方法。<br>一种是基于word2vec的神经网络生成词向量的方法。<br>另一种是基于统计的词向量生成的方法使用共现矩阵再进行SVD分解。</p>
<p><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/count_based.png" alt></p>
<p>首先要说明这2种方法输出的word embedding 都是distributed representation(稠密表达)。</p>
<p>其次值得说的是这2种方法各有优缺点可能面试里会问在glove方法中综合进行了两种算法达到最优的效果。</p>
<p>那么我们这里详细探讨一下利用SVD生成词向量的过程解答上面提到的问题。</p>
<blockquote>
<p>共现矩阵奇异值分解后为什么是用U的行来做word embedding</p>
</blockquote>
<h3 id="1-生成共现矩阵Window-based-Co-occurrence-Matrix"><a href="#1-生成共现矩阵Window-based-Co-occurrence-Matrix" class="headerlink" title="1.生成共现矩阵Window based Co-occurrence Matrix"></a>1.生成共现矩阵Window based Co-occurrence Matrix</h3><p>构造一个矩阵X这个矩阵的大小是 $V*V$ 这里V是词表的长度。这个矩阵称之为共现矩阵。</p>
<p>我们要统计每个中心词在左右k个窗口的范围内上下文词出现的词频。于是这里的共现矩阵第一个维度代表这个中心词第二个维度代表这个中心词对应的上下文词。<br>$X={x_{ij}}$为第i个词作为中心词时对应第j个词作为其上下文词时候的词频。</p>
<p>我们还是用课上的例子有3句话</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">I enjoy flying。</span><br><span class="line">I like NLP。</span><br><span class="line">I like deep learning。</span><br></pre></td></tr></table></figure>
<p>假设这里k=1统计的共现矩阵X为<br><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/Window_based_Co-occurrence_Matrix1.png" alt></p>
<p>可以看出这里的共现矩阵X为对称矩阵也就是对中心词likeenjoy的出现次数是等于对于中心词enjoylike的出现次数。</p>
<h3 id="2-SVD分解的过程"><a href="#2-SVD分解的过程" class="headerlink" title="2.SVD分解的过程"></a>2.SVD分解的过程</h3><p>假设X的size是$V<em>V$,那么U的矩阵是$V</em>K$,奇异值矩阵S是$K<em>K$,而$V^T$的矩阵size 是$K</em>V$.<br>这里V是词表长度上面解释了K是指最后需要输出的词向量维度一般我们取100-300之间的一个值。</p>
<p>SVD分解公式可以写作<br>$X=USV^T$<br>写成分量式为:</p>
<p>$x_{ij}= \sum_{k=1}^n u_{ij}s_kv_{jk}$</p>
<p>那么从这个公式看出对于每个样本word $x_{ij}$ 与$u_{ij}$是对于的,而不是与$v^T_j$对应,$v^T_j$与每个维度对应。<br><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/svd1.png" alt></p>
<h4 id="这里需要解释一下我们是如何得到SVD分解公式的"><a href="#这里需要解释一下我们是如何得到SVD分解公式的" class="headerlink" title="这里需要解释一下我们是如何得到SVD分解公式的"></a>这里需要解释一下我们是如何得到SVD分解公式的</h4><p>由线性代数基本知识可知对于任意矩阵Xsize $V*V$ )来说,我们可以进行奇异值分解,</p>
<p>$X=U \Lambda V^T$</p>
<p>这里, $U, V, \Lambda$都是size $V*V$ 的对角矩阵,并且每个值都是非负实数,按大小从大到小排列。</p>
<p><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/svd2.png" alt></p>
<p>那么我们对$\Lambda$进行降维只保留前K个值这样U和V也会跟着变从维度上看矩阵U去掉了后面的一些列变成了$V<em>K$;矩阵$V^T$,去掉了前面的一些行,变成了$K</em>V$(实质上做了空间变换,而不是简单的去除一些数据)。也就是上面的图:<br><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/svd1.png" alt></p>
<p>这里就解释了为什么是用U的行来做word embedding。</p>
<h3 id="3-如果U对应的词向量那么V对应的是什么呢"><a href="#3-如果U对应的词向量那么V对应的是什么呢" class="headerlink" title="3.如果U对应的词向量那么V对应的是什么呢"></a>3.如果U对应的词向量那么V对应的是什么呢</h3><p>还有一个问题如果U对应的词向量那么V对应的是什么呢对于词共现矩阵来说V的意义还不是很清晰我们考虑这样一个矩阵</p>
<p>词-文档矩阵 Word-Document Matrix行是所有的词维度为V列是每个文档维度为M。</p>
<p>对这样一个矩阵进行SVD分解并降维到K个奇异值上取值</p>
<p><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/lsa1.png" alt></p>
<p>SVD分解公式可以写作<br>$X=U\Sigma V^T$</p>
<p>U的矩阵size$V*K$,</p>
<p>$V^T$的矩阵size 是$K*V$</p>
<p>写成分量式为:</p>
<p>$x_{ij}= \sum_{k=1}^n u_{ij}\sigma_kv_{jk}$</p>
<p>$u_{ij}$ 对应的第i个词和第j个主题的相关度$u_{i}是词的主题向量$。</p>
<p>$v_{jk}$ 对应第j个文档和第k个主题的相关度<strong>所以$v_j$是第j个文档的文档向量。</strong></p>
<p>这样就说明了V在SVD分解的意义。</p>
</article>
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
</section>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,201 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="0000.为什么需要复杂度分析,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="0000.为什么需要复杂度分析 | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:type" content="article">
<meta property="og:url" content="http://www.flypython.com/article/python-leetcode-0000/">
<meta property="og:image" content="http://www.flypython.com/images/leetcode-0000.png">
<meta property="og:description" content="0000.为什么需要复杂度分析--LeetCode刷题计划第0篇">
<meta name="description" content="0000.为什么需要复杂度分析--LeetCode刷题计划第0篇">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>0000.为什么需要复杂度分析 | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="wrapper post-banner">
<div class="container post-banner-container">
<h2 class="wrapper title">0000.为什么需要复杂度分析</h2>
<div class="wrapper tips">
<span>Author</span><span>flypython</span> | <span>Date: </span><span>2020-02-24</span> | <span>Category</span><span><a href="/fly/飞蟒微课堂/" title="飞蟒微课堂">飞蟒微课堂</a><a href="/fly/飞蟒微课堂/LeetCode/" title="LeetCode">LeetCode</a></span>
</div>
</div>
</section>
<section class="wrapper main-wrapper">
<article class="sub-container post-content">
<h2 id="写在前面"><a href="#写在前面" class="headerlink" title="写在前面"></a>写在前面</h2><p>FlyPython推出的《Python面试专项课程》原计划在春节假期后开始更新考虑到后面刷题的需求可能增多我们对题目进行了调整并于今天开始更新。</p>
<p>原先的<a href="https://mp.weixin.qq.com/s/8EtaSfjyWWJikumG3_l_YQ" target="_blank" rel="noopener">LeetCode刷题计划</a>中的精选TOP面试题推后我们先过一遍《程序员面试金典》这本书上的面试题为基础薄弱的同学夯实基础。</p>
<ul>
<li>网址:<a href="https://leetcode-cn.com/problemset/lcci/" target="_blank" rel="noopener">https://leetcode-cn.com/problemset/lcci/</a></li>
<li>总题数: 97</li>
</ul>
<p>欢迎关注我们的公众号flypython和网站flypython.com我们将持续更新这个专项课程。</p>
<h2 id="为什么需要复杂度分析"><a href="#为什么需要复杂度分析" class="headerlink" title="为什么需要复杂度分析"></a>为什么需要复杂度分析</h2><p>今天是这个专项课程的第0课我们带来算法学习最重要的一个部分复杂度分析。</p>
<p>为什么说复杂度分析是最重要呢?因为数据结构和算法其实解决的是”快”和”省”的问题。”快”就是如何让代码运行得更快,”省”就是让代码节约存储空间。怎么样来衡量你编写的算法代码执行效率呢?这里引出来今天要讲的内容:时间、空间复杂度分析。</p>
<p>你可能会说不就是执行效率么我把代码跑一遍增加cProfile的一些操作不就得到了执行时间和内存占用么。</p>
<p>其实你上面说的也是一种方法叫事后统计法在做性能优化时会大量采用。但是事后统计法有它的局限性。第一它依赖测试环境测试环境不一样得到的数据会都不一样第二它受数据规模的影响大比如排序排10个数和排100万个数肯定不一样。所以我们不能以具体测试数据来表示需要的是一个估算的执行效率的方法。这个方法就是我们要讲的大O复杂度表示法。</p>
<h2 id="大O复杂度表示法"><a href="#大O复杂度表示法" class="headerlink" title="大O复杂度表示法"></a>大O复杂度表示法</h2><p>我们从一个例子开始下面是求1,2,3,…n的累加和的代码</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">1 int cal(int n) &#123;</span><br><span class="line">2 int sum = 0;</span><br><span class="line">3 int i = 1;</span><br><span class="line">4 for (; i &lt;= n; ++i) &#123;</span><br><span class="line">5 sum = sum + i;</span><br><span class="line">6 &#125;</span><br><span class="line">7 return sum;</span><br><span class="line">8 &#125;</span><br></pre></td></tr></table></figure>
<p>我们假设每一行代码的执行时间是相同的为unit_time那么这一段代码第23行执行了一次45行执行了n遍第7行执行了一次那总共执行的次数2n+3,执行时间为(2n+3)* unit_time。</p>
<p>可以看出,所有代码的执行时间 T(n) 与每行代码的执行次数成正比。可以用以下公式表示:</p>
<p><img src="https://tva1.sinaimg.cn/large/0082zybply1gc7k3lrcljj30vh031dfr.jpg" alt></p>
<p>其中T(n)为所有代码的执行时间<br>其中f(n)表示每行代码执行的次数总和</p>
<p>公式中的O表示代码的执行时间 T(n) 与 f(n) 表达式成正比。我们的例子中T(n)=O(2n+3)这就是大O时间复杂度表示法。</p>
<p>大 O 时间复杂度实际上并不具体表示代码真正的执行时间而是表示代码执行时间随数据规模增长的变化趋势所以也叫作渐进时间复杂度asymptotic time complexity简称时间复杂度。</p>
<h4 id="时间复杂度分析"><a href="#时间复杂度分析" class="headerlink" title="时间复杂度分析"></a>时间复杂度分析</h4><ul>
<li>O(1): 常数</li>
<li>O(logn): 对数</li>
<li>O(n): 线性</li>
<li>O(nlogn):线性对数</li>
<li>O(n^2): 平⽅</li>
<li>O(n^3): 立⽅ </li>
<li>O(n^k): K次方</li>
<li>O(2^n): 指数 </li>
<li>O(n!): 阶乘 </li>
</ul>
<h5 id="O-1"><a href="#O-1" class="headerlink" title="O(1)"></a>O(1)</h5><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">int a=0;</span><br><span class="line">int b=a;</span><br></pre></td></tr></table></figure>
<p>O(1) 只是常量级时间复杂度的一种表示方法,并不是指只执行了一行代码。只要代码的执行时间不随 n 的增大而增长,这样代码的时间复杂度我们都记作 O(1)。</p>
<h5 id="O-log-n"><a href="#O-log-n" class="headerlink" title="O(log n)"></a>O(log n)</h5><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">for(int i=1; i&lt;n; i=i*2)&#123;</span><br><span class="line"> printf(i);</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
<p>对数阶时间复杂度非常常见,同时也是最难分析的一种时间复杂度。从代码中可以看出,变量 i 的值从 1 开始取,每循环一次就乘以 2。当大于 n 时,循环结束。还记得我们高中学过的等比数列吗?实际上,变量 i 的取值就是一个等比数列</p>
<p><img src="https://tva1.sinaimg.cn/large/0082zybply1gc7k3xx5grj30vq043aa2.jpg" alt></p>
<p>通过 2^x = n 求解 x, x=log2n这段代码的时间复杂度就是 O(log2n)忽略系数表示为O(logn)。</p>
<h5 id="O-n"><a href="#O-n" class="headerlink" title="O(n)"></a>O(n)</h5><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">for(int i=1; i&lt;=n; i++)&#123;</span><br><span class="line"> printf(i);</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
<p>for循环代码执行了n遍因此它消耗的时间是随着n的变化而变化的所以通过O(n)来表示。如果平行存在一个for循环m遍的如下:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">for(int i=1; i&lt;=n; i++)&#123;</span><br><span class="line"> printf(i);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">for(int i=1; i&lt;=m; i++)&#123;</span><br><span class="line"> printf(i);</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
<p>那时间复杂度为O(m+n)。</p>
<h5 id="O-nlogn"><a href="#O-nlogn" class="headerlink" title="O(nlogn)"></a>O(nlogn)</h5><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">for(int i=1; i&lt;=n; i++)&#123;</span><br><span class="line"> for(int j=1; j&lt;=n;j=j*2) &#123;</span><br><span class="line"> printf(i,j);</span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
<p>线性对数O(nlogn)就是将时间复杂度为O(logn)的代码循环N遍的话那么它的时间复杂度就是n* O(logn)也就是了O(nlogn)</p>
<h5 id="O-n-2"><a href="#O-n-2" class="headerlink" title="O(n^2)"></a>O(n^2)</h5><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">for(int i=1; i&lt;=n; i++)&#123;</span><br><span class="line"> for(int j=1; j&lt;=n;j++) &#123;</span><br><span class="line"> printf(i,j);</span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
<p>平方就是O(n)代码再嵌套循环一遍2层n循环O(n * n) 为O(n^2)。如果嵌套3层n循环则为O(n^3)如果嵌套k层则为O(n^k)。</p>
<p>如果其中一层循环中的n改为m如下所示:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">for(int i=1; i&lt;=m; i++)&#123;</span><br><span class="line"> for(int j=1; j&lt;=n;j++) &#123;</span><br><span class="line"> printf(i,j);</span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
<p>那它的时间复杂度为O(m * n)</p>
<h5 id="O-2-n-和O-n"><a href="#O-2-n-和O-n" class="headerlink" title="O(2^n)和O(n!)"></a>O(2^n)和O(n!)</h5><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">for(int i=1; i&lt;=math.pow(2,n); i++)&#123;</span><br><span class="line"> printf(i);</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">for(int i=1; i&lt;=factorial(n); i++)&#123;</span><br><span class="line"> printf(i);</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
<p>以上两个代码例子分别为O(2^n)复杂度和O(n!)复杂度,指数复杂度和阶乘复杂度属于非多项式量级,我们把时间复杂度为非多项式量级的算法问题叫作 NPNon-Deterministic Polynomial非确定多项式问题。</p>
<p>当数据规模 n 越来越大时,非多项式量级算法的执行时间会急剧增加,求解问题的执行时间会无限增长。所以,非多项式时间复杂度的算法其实是非常低效的算法。</p>
<p>具体增长曲线如下图所示:</p>
<p><img src="https://tva1.sinaimg.cn/large/0082zybply1gc7k46ndw2j319m0u00yx.jpg" alt></p>
<h4 id="空间复杂度分析"><a href="#空间复杂度分析" class="headerlink" title="空间复杂度分析"></a>空间复杂度分析</h4><ul>
<li>O(1)</li>
<li>O(n)</li>
<li>O(n²)</li>
</ul>
<h5 id="O-1-1"><a href="#O-1-1" class="headerlink" title="O(1)"></a>O(1)</h5><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">int i=0;</span><br><span class="line">int j=1;</span><br><span class="line">int m = i + j;</span><br></pre></td></tr></table></figure>
<p>代码中的i,j,m不随着处理数据量变化而变化算法需要的临时空间是固定的可以表示为空间复杂度O(1)</p>
<h5 id="O-n-1"><a href="#O-n-1" class="headerlink" title="O(n)"></a>O(n)</h5><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">int[] m = new int[n];</span><br><span class="line">for(i=1; i&lt;=n; ++i)</span><br><span class="line">&#123;</span><br><span class="line"> printf(i);</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
<p>这段代码中第一行new了一个数组出来这个数据占用的大小为n这段代码的2-5行虽然有循环但没有再分配新的空间所以这段代码的空间复杂度为O(n)</p>
<h5 id="O-n-2-1"><a href="#O-n-2-1" class="headerlink" title="O(n^2)"></a>O(n^2)</h5><p>平方空间复杂度与O(n)类似new出来的数组如果是n * n的多维数组那就是O(n^2)复杂度如果是m * n的多维数组,那就是O(m * n)复杂度。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">int[][] a = new int[n][n];</span><br><span class="line">int[][] a = new int[m][n];</span><br></pre></td></tr></table></figure>
<h2 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h2><p>今天我们学习了复杂度分析的相关基础知识,包括了时间复杂度和空间复杂度,主要是用来分析算法执行效率与数据规模之间的增长关系。</p>
<p>常见的复杂度从低阶到高阶有O(1)、O(logn)、O(n)、O(nlogn)、O(n^2),几乎包括了后面学习的所有数据结构和算法的复杂度,希望大家可以好好的掌握。</p>
<p><img src="https://tva1.sinaimg.cn/large/0082zybply1gc7l65ikduj30vq0hs3zg.jpg" alt></p>
<p>时间复杂度分析还有最好,最坏,平均,均摊时间复杂度等话题需要好好讨论,请关注后续文章,我们会在刷题过程中穿插讲解。</p>
<h4 id="参考资料"><a href="#参考资料" class="headerlink" title="参考资料"></a>参考资料</h4><ul>
<li>analysis_of_algorithms: <a href="https://en.wikipedia.org/wiki/Master_theorem_(analysis_of_algorithms)" target="_blank" rel="noopener">https://en.wikipedia.org/wiki/Master_theorem_(analysis_of_algorithms)</a></li>
</ul>
</article>
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
</section>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,156 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="LCCI 01.01.判定字符是否唯一,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="LCCI 01.01.判定字符是否唯一 | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:type" content="article">
<meta property="og:url" content="http://www.flypython.com/article/python-leetcode-lcci0101/">
<meta property="og:image" content="http://www.flypython.com/images/leetcode-0101.png">
<meta property="og:description" content="LCCI 01.01.判定字符是否唯一--LeetCode刷题计划">
<meta name="description" content="LCCI 01.01.判定字符是否唯一--LeetCode刷题计划">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>LCCI 01.01.判定字符是否唯一 | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="wrapper post-banner">
<div class="container post-banner-container">
<h2 class="wrapper title">LCCI 01.01.判定字符是否唯一</h2>
<div class="wrapper tips">
<span>Author</span><span>flypython</span> | <span>Date: </span><span>2020-02-25</span> | <span>Category</span><span><a href="/fly/飞蟒微课堂/" title="飞蟒微课堂">飞蟒微课堂</a><a href="/fly/飞蟒微课堂/LeetCode/" title="LeetCode">LeetCode</a></span>
</div>
</div>
</section>
<section class="wrapper main-wrapper">
<article class="sub-container post-content">
<h2 id="01-01-判定字符是否唯一"><a href="#01-01-判定字符是否唯一" class="headerlink" title="01.01.判定字符是否唯一"></a>01.01.判定字符是否唯一</h2><p>链接:<a href="https://leetcode-cn.com/problems/is-unique-lcci/" target="_blank" rel="noopener">https://leetcode-cn.com/problems/is-unique-lcci/</a><br>难度:简单</p>
<h4 id="题目"><a href="#题目" class="headerlink" title="题目"></a>题目</h4><blockquote>
<p>实现一个算法,确定一个字符串 s 的所有字符是否全都不同。</p>
<p>示例 1</p>
<p>输入: s = “leetcode”<br>输出: false<br>示例 2</p>
<p>输入: s = “abc”<br>输出: true</p>
<p>限制:</p>
<p>0 &lt;= len(s) &lt;= 100<br>如果你不使用额外的数据结构,会很加分。</p>
</blockquote>
<h4 id="思路"><a href="#思路" class="headerlink" title="思路"></a>思路</h4><p>首先,你得理解题意。不确定的东西,需要问或者尝试验证。</p>
<p>比如这里你可以问面试官字符串s是ASCII还是Unicode字符串如果是编程平台你可以写测试来判断。</p>
<p>在这里我们假定字符集为ASCII那如果字符串长度大于128那肯定是false不过有限制条件len(s)&lt;=100那这个判断就不必要了。限制里面还要求不使用额外的数据结构这就过滤掉了很多的方案。</p>
<p>比如使用set就一行代码解决</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">class Solution:</span><br><span class="line"> def isUnique(self, astr: str) -&gt; bool:</span><br><span class="line"> return len(astr)== len(set(astr))</span><br></pre></td></tr></table></figure>
<p>我们很容易想到hash计数的方法经过测试字符串中只出现az26个小写字母那只需要一个bool数组直接统计出现的频率判断是否重复。</p>
<p>考虑到不使用额外的数据结构那我们可以尝试使用bitmap把数组换成一个整型数按照位上01来判断是否重复。</p>
<p>开始我们算出字符离最开始的字符a的距离然后1移动这个距离来表示这个数。后面用一个测试变量来测试p如果存在则返回False如果不存在则写入。</p>
<p>具体代码:</p>
<pre><code>def isUnique(self, astr: str) -&gt; bool:
t = 0
for c in astr:
if t &amp; (p := 1 &lt;&lt; (ord(c) - ord(&apos;a&apos;))):
return False
t |= p
return True</code></pre><p>在解答中使用了Python3.8的新特性:海象运算符,点击下面的链接,学习使用它。<br><a href="https://mp.weixin.qq.com/s/3xKdt-26guYHoFb3xP0muw" target="_blank" rel="noopener">https://mp.weixin.qq.com/s/3xKdt-26guYHoFb3xP0muw</a></p>
<h4 id="方案代码"><a href="#方案代码" class="headerlink" title="方案代码"></a>方案代码</h4><p>解法:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">class Solution:</span><br><span class="line"> def isUnique(self, astr: str) -&gt; bool:</span><br><span class="line"> t = 0</span><br><span class="line"> for c in astr:</span><br><span class="line"> if t &amp; (p := 1 &lt;&lt; (ord(c) - ord(&apos;a&apos;))):</span><br><span class="line"> return False</span><br><span class="line"> t |= p</span><br><span class="line"> return True</span><br></pre></td></tr></table></figure>
<p>另外还有三种使用数据结构的解法</p>
<p>解法1:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">class Solution:</span><br><span class="line"> def isUnique(self, astr: str) -&gt; bool:</span><br><span class="line"> return len(astr)== len(set(astr))</span><br></pre></td></tr></table></figure>
<p>解法2:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">class Solution:</span><br><span class="line"> def isUnique(self, astr: str) -&gt; bool:</span><br><span class="line"> adict=&#123;&#125;</span><br><span class="line"> for value in astr:</span><br><span class="line"> if value in adict.keys():</span><br><span class="line"> return False</span><br><span class="line"> else:</span><br><span class="line"> adict[value]=0</span><br><span class="line"> return True</span><br></pre></td></tr></table></figure>
<p>解法3:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">class Solution:</span><br><span class="line"> def isUnique(self, astr: str) -&gt; bool:</span><br><span class="line"> l=[]</span><br><span class="line"> for i in astr:</span><br><span class="line"> if i in l:</span><br><span class="line"> return False</span><br><span class="line"> else:</span><br><span class="line"> l.append(i)</span><br><span class="line"> return True</span><br></pre></td></tr></table></figure>
</article>
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
</section>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,161 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="LCCI 01.02.判定是否互为字符重排,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="LCCI 01.02.判定是否互为字符重排 | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:type" content="article">
<meta property="og:url" content="http://www.flypython.com/article/python-leetcode-lcci0102/">
<meta property="og:image" content="http://www.flypython.com/images/leetcode-0102.png">
<meta property="og:description" content="LCCI 01.02.判定是否互为字符重排--LeetCode刷题计划">
<meta name="description" content="LCCI 01.02.判定是否互为字符重排--LeetCode刷题计划">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>LCCI 01.02.判定是否互为字符重排 | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="wrapper post-banner">
<div class="container post-banner-container">
<h2 class="wrapper title">LCCI 01.02.判定是否互为字符重排</h2>
<div class="wrapper tips">
<span>Author</span><span>flypython</span> | <span>Date: </span><span>2020-02-26</span> | <span>Category</span><span><a href="/fly/飞蟒微课堂/" title="飞蟒微课堂">飞蟒微课堂</a><a href="/fly/飞蟒微课堂/LeetCode/" title="LeetCode">LeetCode</a></span>
</div>
</div>
</section>
<section class="wrapper main-wrapper">
<article class="sub-container post-content">
<h2 id="01-02-判定是否互为字符重排"><a href="#01-02-判定是否互为字符重排" class="headerlink" title="01.02.判定是否互为字符重排"></a>01.02.判定是否互为字符重排</h2><p>链接:<a href="https://leetcode-cn.com/problems/check-permutation-lcci/" target="_blank" rel="noopener">https://leetcode-cn.com/problems/check-permutation-lcci/</a><br>难度:简单</p>
<h4 id="题目"><a href="#题目" class="headerlink" title="题目"></a>题目</h4><blockquote>
<p>给定两个字符串 s1 和 s2请编写一个程序确定其中一个字符串的字符重新排列后能否变成另一个字符串。</p>
<p>示例 1</p>
<p>输入: s1 = “abc”, s2 = “bca”<br>输出: true<br>示例 2</p>
<p>输入: s1 = “abc”, s2 = “bad”<br>输出: false</p>
<p>说明:<br>0 &lt;= len(s1) &lt;= 100<br>0 &lt;= len(s2) &lt;= 100</p>
</blockquote>
<h4 id="思路"><a href="#思路" class="headerlink" title="思路"></a>思路</h4><p>开始我们还是先理解题意确定是否区分大小写是否忽略空白字符等。有了01.01题的hash计数01判断的经历在这里很容易想到使用hash计数。</p>
<p>因为字符可以重复需要对字符进行计数这个时候我们会想到collections库中的Counter。于是有了下面两行代码解决了问题。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">from collections import Counter</span><br><span class="line">return Counter(s1) == Counter(s2)</span><br></pre></td></tr></table></figure>
<p>但是上面的方法严格来说算作弊那我们手写吧。对每个字符进行计数操作并测试是否相等不相等返回False全部相等返回True。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">class Solution:</span><br><span class="line"> def CheckPermutation(self, s1: str, s2: str) -&gt; bool:</span><br><span class="line"> if len(s1) != len(s2):</span><br><span class="line"> return False</span><br><span class="line"> </span><br><span class="line"> base = set(s1+s2)</span><br><span class="line"> for b in base:</span><br><span class="line"> if s1.count(b) != s2.count(b):</span><br><span class="line"> return False</span><br><span class="line"> return True</span><br></pre></td></tr></table></figure>
<p>上面的代码,最容易出问题的是<code>base = set(s1+s2)</code>,需要以两个字符串集的唯一字符来进行计数但这里引入了set。</p>
<p>我们测试了字符范围发现是az那么代码可以改成</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">class Solution:</span><br><span class="line"> def CheckPermutation(self, s1: str, s2: str) -&gt; bool:</span><br><span class="line"> if len(s1) != len(s2):</span><br><span class="line"> return False</span><br><span class="line"> </span><br><span class="line"> base = [chr(i) for i in range(ord(&quot;a&quot;),ord(&quot;z&quot;)+1)]</span><br><span class="line"> for b in base:</span><br><span class="line"> if s1.count(b) != s2.count(b):</span><br><span class="line"> return False</span><br><span class="line"> return True</span><br></pre></td></tr></table></figure>
<p>再进一步为了直观我们可以引入string包代码如下</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">class Solution:</span><br><span class="line"> def CheckPermutation(self, s1: str, s2: str) -&gt; bool:</span><br><span class="line"> import string </span><br><span class="line"> if len(s1) != len(s2):</span><br><span class="line"> return False</span><br><span class="line"> </span><br><span class="line"> for b in string.ascii_lowercase:</span><br><span class="line"> if s1.count(b) != s2.count(b):</span><br><span class="line"> return False</span><br><span class="line"> return True</span><br></pre></td></tr></table></figure>
<p>当然,在这里我们也可以通过排序并比较来解决,代码非常简单:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">class Solution:</span><br><span class="line"> def CheckPermutation(self, s1: str, s2: str) -&gt; bool:</span><br><span class="line"> return sorted(s1) == sorted(s2)</span><br></pre></td></tr></table></figure>
<p>空间复杂度O(nlogn)相比hash计数复杂度要高一些但是hash计数有空间复杂度。</p>
<h4 id="错误代码分析"><a href="#错误代码分析" class="headerlink" title="错误代码分析"></a>错误代码分析</h4><p>在题解中看到一份代码</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">class Solution &#123;</span><br><span class="line"> public boolean CheckPermutation(String s1, String s2) &#123;</span><br><span class="line"> if(s1.length() != s2.length()) &#123;</span><br><span class="line"> return false;</span><br><span class="line"> &#125;</span><br><span class="line"> int s1Sum = 0, s2Sum = 0;</span><br><span class="line"> for(int i = 0; i &lt; s1.length(); i++) &#123;</span><br><span class="line"> s1Sum += s1.charAt(i);</span><br><span class="line"> s2Sum += s2.charAt(i);</span><br><span class="line"> &#125;</span><br><span class="line"> return s1Sum == s2Sum;</span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
<p>此解法主要是计算s1s2字符和比较字符和。这种解法的问题就是忽略了和相同但数字并不同的情况比如 3+7 == 2+8。</p>
<p>除了计算s1s2的字符和外计算相对位移和加s1字符减s2字符等方法都有此问题。</p>
<h4 id="方案代码"><a href="#方案代码" class="headerlink" title="方案代码"></a>方案代码</h4><p>解法:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">class Solution:</span><br><span class="line"> def CheckPermutation(self, s1: str, s2: str) -&gt; bool:</span><br><span class="line"> if len(s1) != len(s2):</span><br><span class="line"> return False</span><br><span class="line"> </span><br><span class="line"> base = set(s1+s2)</span><br><span class="line"> for b in base:</span><br><span class="line"> if s1.count(b) != s2.count(b):</span><br><span class="line"> return False</span><br><span class="line"> return True</span><br></pre></td></tr></table></figure>
<p>另外含高级数据结构的三种解法</p>
<p>解法1:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">class Solution:</span><br><span class="line"> def CheckPermutation(self, s1: str, s2: str) -&gt; bool:</span><br><span class="line"> from collections import Counter</span><br><span class="line"> return Counter(s1) == Counter(s2)</span><br></pre></td></tr></table></figure>
<p>解法2:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">class Solution:</span><br><span class="line"> def CheckPermutation(self, s1: str, s2: str) -&gt; bool:</span><br><span class="line"> return sorted(s1) == sorted(s2)</span><br></pre></td></tr></table></figure>
<p>解法3:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">class Solution:</span><br><span class="line"> def CheckPermutation(self, s1: str, s2: str) -&gt; bool:</span><br><span class="line"> import string</span><br><span class="line"> if len(s1) != len(s2):</span><br><span class="line"> return False</span><br><span class="line"> </span><br><span class="line"> for b in string.ascii_lowercase:</span><br><span class="line"> if s1.count(b) != s2.count(b):</span><br><span class="line"> return False</span><br><span class="line"> return True</span><br></pre></td></tr></table></figure>
</article>
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
</section>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,169 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="Python 3.8新特性——赋值表达式,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="Python 3.8新特性——赋值表达式 | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:type" content="article">
<meta property="og:url" content="http://www.flypython.com/article/python-new-01/">
<meta property="og:image" content="http://www.flypython.com/images/new-01.png">
<meta property="og:description" content="Python 3.8新特性——赋值表达式--介绍Python语言新的特性">
<meta name="description" content="Python 3.8新特性——赋值表达式--介绍Python语言新的特性">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>Python 3.8新特性——赋值表达式 | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="wrapper post-banner">
<div class="container post-banner-container">
<h2 class="wrapper title">Python 3.8新特性——赋值表达式</h2>
<div class="wrapper tips">
<span>Author</span><span>flypython</span> | <span>Date: </span><span>2019-04-01</span> | <span>Category</span><span><a href="/fly/Python新特性/" title="Python新特性">Python新特性</a></span>
</div>
</div>
</section>
<section class="wrapper main-wrapper">
<article class="sub-container post-content">
<p>上周Python3.8版本发布,到底带来了哪些新的特性呢?我们应该在哪些场景中使用这些特性呢?本周,我们通过几篇文章来告诉你答案。</p>
<p><img src="https://tva1.sinaimg.cn/large/006tNbRwly1gai72bypmej30u00u9wl1.jpg" alt></p>
<h4 id="安装"><a href="#安装" class="headerlink" title="安装"></a>安装</h4><p>首先我们并不推荐安装最新版本到常用的开发环境中你可以使用虚拟环境或者docker来尝鲜。</p>
<p>官方安装包</p>
<p>网址:<code>https://www.python.org/downloads/release/python-380/</code></p>
<p>也可以使用docker</p>
<p>拉取镜像命令<br><code>docker pull python:3.8</code></p>
<h2 id="赋值表达式"><a href="#赋值表达式" class="headerlink" title="赋值表达式"></a>赋值表达式</h2><p><img src="https://tva1.sinaimg.cn/large/006tNbRwly1gai72nu5otj30jg0atdfq.jpg" alt></p>
<p>赋值表达式被叫做海象运算符因为它的形状像海象。如果熟悉go语言的话会对这个表达式会熟悉。</p>
<p>赋值表达式的语法是 </p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">name := expression</span><br></pre></td></tr></table></figure>
<p>和赋值语句 <code>=</code> 作用差不多,非必不可少,但可以简化代码。</p>
<h4 id="官方示例"><a href="#官方示例" class="headerlink" title="官方示例"></a>官方示例</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">&gt;&gt;&gt; a = False</span><br><span class="line">&gt;&gt;&gt; print(a)</span><br><span class="line">False</span><br><span class="line">&gt;&gt;&gt; print(a := True)</span><br><span class="line">True</span><br></pre></td></tr></table></figure>
<p>此例子赋值之后,后续还需要使用变量。赋值表达可用于简化代码,提高可读性。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">&gt;&gt;&gt; inputs = list()</span><br><span class="line">&gt;&gt;&gt; while True:</span><br><span class="line">... current = input(&quot;your input:&quot;)</span><br><span class="line">... if current == &quot;quit&quot;:</span><br><span class="line">... break</span><br><span class="line">... inputs.append(current)</span><br><span class="line">...</span><br><span class="line">your input:a</span><br><span class="line">your input:b</span><br><span class="line">your input:test</span><br><span class="line">your input:quit</span><br><span class="line">&gt;&gt;&gt; inputs</span><br><span class="line">[&apos;a&apos;, &apos;b&apos;, &apos;test&apos;]</span><br></pre></td></tr></table></figure>
<p>使用赋值操作符时:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">&gt;&gt;&gt; inputs = list()</span><br><span class="line">&gt;&gt;&gt; while (current := input(&quot;your input:&quot;)) != &quot;quit&quot;:</span><br><span class="line">... inputs.append(current)</span><br><span class="line">...</span><br><span class="line">your input:a</span><br><span class="line">your input:b</span><br><span class="line">your input:test</span><br><span class="line">your input:quit</span><br><span class="line">&gt;&gt;&gt; inputs</span><br><span class="line">[&apos;a&apos;, &apos;b&apos;, &apos;test&apos;]</span><br></pre></td></tr></table></figure>
<p>此例子,省略了一条语句,可读性上升。</p>
<p>再来一个例子</p>
<p>最初版本</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">a = [1,2,3,4]</span><br><span class="line">if len(a) &gt; 3: #计算 len(a) 一次 </span><br><span class="line"> print(f&quot;a is too long (&#123;len(a)&#125; elements,expected &lt; 3)&quot;) # 计算 len(a) 第二次</span><br></pre></td></tr></table></figure>
<p>我们改写为:</p>
<p>改进版本</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">a = [1,2,3,4]</span><br><span class="line">n = len(a) # 计算一次len(a)</span><br><span class="line">if n &gt; 3: # 多了变量n</span><br><span class="line"> print(f&quot;a is too long (&#123;n&#125; elements,expected &lt; 3)&quot;) #</span><br></pre></td></tr></table></figure>
<p>新特性重写:<br>重写版本</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">a = [1,2,3,4]</span><br><span class="line">if (n:=len(a)) &gt; 3: # 计算一次len(a)多了变量n把两行改为一行</span><br><span class="line"> print(f&quot;a is too long (&#123;n&#125; elements,expected &lt; 3)&quot;) #</span><br></pre></td></tr></table></figure>
<p>从上面可以看到,重写版本和改进版本的不同在于:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">n = len(a) </span><br><span class="line">if n &gt; 3:</span><br><span class="line"> pass</span><br></pre></td></tr></table></figure>
<p></p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">if (n:=len(a)) &gt; 3:</span><br><span class="line"> pass</span><br></pre></td></tr></table></figure>
<p>这两个版本的区别在于,<code>:=</code><code>=</code>是补充关系并不是替换关系,下面的例子可以看到官方的意图。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">x = 5</span><br><span class="line">print(f&quot;x = &#123;x&#125;&quot;)</span><br><span class="line"></span><br><span class="line">#能用=解决的就用=解决</span><br><span class="line">y := 5 # SyntaxError: invalid syntax</span><br><span class="line">print(f&quot;y = &#123;y&#125;&quot;)</span><br><span class="line"></span><br><span class="line">(z := 5)</span><br><span class="line">print(f&quot;z = &#123;z&#125;&quot;)</span><br></pre></td></tr></table></figure>
<p>由上面可以看出<code>:=</code><code>=</code>是互补关系,在应该使用<code>:=</code>的时候才可以使用<code>:=</code></p>
<p>Python语言的一致性不管是专家还是新手在同一个问题上都应该有一致的写法然后这就形成了最pythonic的写法。</p>
<p>最后带来,新特性带来的最佳实践</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"># 简化 os.fork </span><br><span class="line">if pid := os.fork():</span><br><span class="line"> # Parent code</span><br><span class="line">else:</span><br><span class="line"> # Child code</span><br><span class="line"></span><br><span class="line"># 直接到把 socket 对象的 read buffer 读完为止</span><br><span class="line">while data := sock.recv(8192):</span><br><span class="line"> print(&quot;Received data:&quot;, data)</span><br></pre></td></tr></table></figure>
<h4 id="参考"><a href="#参考" class="headerlink" title="参考"></a>参考</h4><ul>
<li><a href="https://docs.python.org/zh-cn/3.8/whatsnew/3.8.html" target="_blank" rel="noopener">https://docs.python.org/zh-cn/3.8/whatsnew/3.8.html</a></li>
<li><a href="https://www.python.org/dev/peps/pep-0572" target="_blank" rel="noopener">https://www.python.org/dev/peps/pep-0572</a></li>
</ul>
</article>
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
</section>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,146 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="Python 3.8新特性——仅限位置形参,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="Python 3.8新特性——仅限位置形参 | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:type" content="article">
<meta property="og:url" content="http://www.flypython.com/article/python-new-02/">
<meta property="og:image" content="http://www.flypython.com/images/new-02.png">
<meta property="og:description" content="Python 3.8新特性——仅限位置形参--介绍Python语言新的特性">
<meta name="description" content="Python 3.8新特性——仅限位置形参--介绍Python语言新的特性">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>Python 3.8新特性——仅限位置形参 | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="wrapper post-banner">
<div class="container post-banner-container">
<h2 class="wrapper title">Python 3.8新特性——仅限位置形参</h2>
<div class="wrapper tips">
<span>Author</span><span>flypython</span> | <span>Date: </span><span>2019-04-02</span> | <span>Category</span><span><a href="/fly/Python新特性/" title="Python新特性">Python新特性</a></span>
</div>
</div>
</section>
<section class="wrapper main-wrapper">
<article class="sub-container post-content">
<h2 id="仅限位置形参"><a href="#仅限位置形参" class="headerlink" title="仅限位置形参"></a>仅限位置形参</h2><p>Positional-only parameters官方翻译为仅限位置形参也可以理解为只接受位置参数。意思就是它只是一个位置参数不接受关键字传参。</p>
<p>语法: </p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">def funx(a,b,/): # / 指明前面的a,b参数是仅限位置形参</span><br><span class="line"> pass</span><br></pre></td></tr></table></figure>
<p>函数形参语法<code>/</code> 用来指明某些函数形参必须使用仅限位置而非关键字参数</p>
<p>其实Python内置的很多C函数接口都是这种形式比如</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">&gt;&gt;&gt; import builtins</span><br><span class="line">&gt;&gt;&gt; help(__builtins__.divmod)</span><br><span class="line">Help on built-in function divmod in module builtins:</span><br><span class="line"></span><br><span class="line">divmod(x, y, /)</span><br><span class="line"> Return the tuple (x//y, x%y). Invariant: div*y + mod == x.</span><br></pre></td></tr></table></figure>
<p>很多函数后面都有 <code>/</code>来表明,左边的这些参数只接受位置参数。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&gt;&gt;&gt; divmod(1,2)</span><br><span class="line">(0, 1)</span><br><span class="line">&gt;&gt;&gt; divmod(x=1,y=2) </span><br><span class="line">Traceback (most recent call last):</span><br><span class="line"> File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;</span><br><span class="line">TypeError: divmod() takes no keyword arguments</span><br><span class="line">&gt;&gt;&gt;</span><br></pre></td></tr></table></figure>
<p>指定关键字的参数会报语法错误,它的用途就是强制使用者用位置参数来传参。</p>
<h4 id="官方例子"><a href="#官方例子" class="headerlink" title="官方例子"></a>官方例子</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">&gt;&gt;&gt; def f(a,b,/,**kwargs):</span><br><span class="line">... print(a,b,kwargs)</span><br><span class="line">...</span><br><span class="line">&gt;&gt;&gt; f(10,20,a=1,b=2,c=3)</span><br><span class="line">10 20 &#123;&apos;a&apos;: 1, &apos;b&apos;: 2, &apos;c&apos;: 3&#125;</span><br></pre></td></tr></table></figure>
<p>由于在 <code>/</code> 左侧的形参不会被公开为可用关键字</p>
<p>这里的a,b 为仅限位置参数最后a,b会被赋值了两次。<br>位置参数赋值一次关键字参数赋值一次关键字参数以kwargs字典的形式存在需要通过 <code>kwargs[&#39;a&#39;],kwargs[&#39;b&#39;]</code>访问。</p>
<p>现在我们来看一下,添加了仅限位置形参之后的函数参数形式</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">def name(positional_only_parameters, /, positional_or_keyword_parameters,</span><br><span class="line"> *, keyword_only_parameters):</span><br></pre></td></tr></table></figure>
<p>包括了仅限位置形参, <code>/</code>, 位置形参或者关键字参数 ,<code>*</code>,仅限关键字参数。</p>
<p><img src="https://tva1.sinaimg.cn/large/006tNbRwly1gai73g9r3ej30so09mq3k.jpg" alt></p>
<p>最后,我们可以定义以下形式的函数</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">def name(p1, p2, /, p_or_kw, *, kw):</span><br><span class="line">def name(p1, p2=None, /, p_or_kw=None, *, kw):</span><br><span class="line">def name(p1, p2=None, /, *, kw):</span><br><span class="line">def name(p1, p2=None, /):</span><br><span class="line">def name(p1, p2, /, p_or_kw):</span><br><span class="line">def name(p1, p2, /):</span><br></pre></td></tr></table></figure>
<h4 id="参考"><a href="#参考" class="headerlink" title="参考"></a>参考</h4><ul>
<li><a href="https://docs.python.org/zh-cn/3.8/whatsnew/3.8.html" target="_blank" rel="noopener">https://docs.python.org/zh-cn/3.8/whatsnew/3.8.html</a></li>
<li><a href="https://docs.python.org/zh-cn/3/howto/clinic.html" target="_blank" rel="noopener">https://docs.python.org/zh-cn/3/howto/clinic.html</a></li>
<li><a href="https://www.python.org/dev/peps/pep-0570" target="_blank" rel="noopener">https://www.python.org/dev/peps/pep-0570</a></li>
</ul>
</article>
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
</section>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,145 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="使用 Python 生成《红楼梦》词云,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="使用 Python 生成《红楼梦》词云 | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:type" content="article">
<meta property="og:url" content="http://www.flypython.com/article/python-nlp-01/">
<meta property="og:image" content="http://www.flypython.com/images/nlp1.png">
<meta property="og:description" content="使用 Python 生成《红楼梦》词云--Python自然语言处理教程">
<meta name="description" content="使用 Python 生成《红楼梦》词云--Python自然语言处理教程">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>使用 Python 生成《红楼梦》词云 | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="wrapper post-banner">
<div class="container post-banner-container">
<h2 class="wrapper title">使用 Python 生成《红楼梦》词云</h2>
<div class="wrapper tips">
<span>Author</span><span>flypython</span> | <span>Date: </span><span>2019-03-01</span> | <span>Category</span><span><a href="/fly/自然语言处理/" title="自然语言处理">自然语言处理</a></span>
</div>
</div>
</section>
<section class="wrapper main-wrapper">
<article class="sub-container post-content">
<p>使用 Python 生成《红楼梦》词云</p>
<p><img src="http://jcjview.github.io/img/1210058744_15500375990201n.jpg" alt></p>
<p>本文介绍如何使用python绘制《红楼梦》的词云。</p>
<blockquote>
<p>“词云”就是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。<br><a href="http://media.people.com.cn/GB/22100/61748/61749/4281906.html" target="_blank" rel="noopener">“词云”——网络内容发布新招式 .人民网</a></p>
</blockquote>
<h2 id="0-摘要"><a href="#0-摘要" class="headerlink" title="0.摘要"></a>0.摘要</h2><p><strong>本文建议在电脑上打开,边阅读边操作。</strong></p>
<ol>
<li>安装python词云工具wordcloud画图软件matplotlib</li>
<li>准备红楼梦文本</li>
<li>编写python代码并运行</li>
<li>展示词云结果</li>
</ol>
<h2 id="1-安装wordcloud"><a href="#1-安装wordcloud" class="headerlink" title="1.安装wordcloud"></a>1.安装wordcloud</h2><p>可以在cmd窗口输入</p>
<p><code>pip install wordcloud matplotlib</code></p>
<p><img src="http://jcjview.github.io/img/wordcloud001.png" alt></p>
<h2 id="2-准备红楼梦文本"><a href="#2-准备红楼梦文本" class="headerlink" title="2.准备红楼梦文本"></a>2.准备红楼梦文本</h2><p>文本可以用下面链接下载</p>
<p><code>https://github.com/flypythoncom/flypython/blob/master/wordcloud_hlm_seg.txt</code></p>
<p>或者可以自己写代码,对文本进行清洗,分词。<br>这里需要安装jieba分词<code>pip install jieba</code></p>
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line"><span class="keyword">import</span> jieba</span><br><span class="line"><span class="keyword">import</span> re</span><br><span class="line"></span><br><span class="line">special_character_removal = re.compile(<span class="string">r'[,。、【 】“”:;()《》‘’&#123;&#125;?!⑦%&gt;℃.^-——=&amp;#@¥『』]'</span>, re.IGNORECASE)</span><br><span class="line"></span><br><span class="line">fw=open(<span class="string">"hlm_seg.txt"</span>,<span class="string">"w"</span>,encoding=<span class="string">"utf-8"</span>)</span><br><span class="line"></span><br><span class="line"><span class="keyword">with</span> open(<span class="string">'hlm.txt'</span>,encoding=<span class="string">"utf-8"</span>) <span class="keyword">as</span> fp:</span><br><span class="line"> <span class="keyword">for</span> line <span class="keyword">in</span> fp:</span><br><span class="line"> l = special_character_removal.sub(<span class="string">''</span>, line.strip())</span><br><span class="line"> words=jieba.cut(l)</span><br><span class="line"> t=<span class="string">" "</span>.join(words)</span><br><span class="line"> fw.write(t)</span><br><span class="line"> fw.write(<span class="string">"\n"</span>)</span><br><span class="line"></span><br><span class="line">fw.close()</span><br></pre></td></tr></table></figure>
<h2 id="3-编写词云python代码并运行"><a href="#3-编写词云python代码并运行" class="headerlink" title="3. 编写词云python代码并运行"></a>3. 编写词云python代码并运行</h2><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line"><span class="keyword">from</span> os <span class="keyword">import</span> path </span><br><span class="line"><span class="keyword">from</span> wordcloud <span class="keyword">import</span> WordCloud</span><br><span class="line"></span><br><span class="line">d = path.dirname(__file__) </span><br><span class="line"><span class="comment"># Read the whole text. </span></span><br><span class="line">text = open(path.join(d, <span class="string">'hlm_seg.txt'</span>),encoding=<span class="string">"utf-8"</span>).read() </span><br><span class="line"><span class="comment"># Generate a word cloud image </span></span><br><span class="line"><span class="comment"># font=path.join(d, "simkai.ttf") </span></span><br><span class="line">font=<span class="string">'C:/Windows/Fonts/simkai.ttf'</span> </span><br><span class="line">wordcloud = WordCloud(font_path=font,<span class="comment">#设置中文字体,不指定就会出现中文不显示 </span></span><br><span class="line"> width=<span class="number">1024</span>,<span class="comment">#宽 </span></span><br><span class="line"> height=<span class="number">840</span>,<span class="comment">#高 </span></span><br><span class="line"> background_color=<span class="string">'white'</span>,<span class="comment">#设置背景色 </span></span><br><span class="line"> <span class="comment"># max_words=100,#最大词汇数 </span></span><br><span class="line"> <span class="comment"># max_font_size=100#最大号字体 </span></span><br><span class="line"> ).generate(text) </span><br><span class="line"> </span><br><span class="line"><span class="comment"># Display the generated image: </span></span><br><span class="line"><span class="comment"># the matplotlib way: </span></span><br><span class="line"><span class="keyword">import</span> matplotlib.pyplot <span class="keyword">as</span> plt </span><br><span class="line"> </span><br><span class="line">plt.figure() </span><br><span class="line">plt.imshow(wordcloud) </span><br><span class="line">plt.axis(<span class="string">"off"</span>) </span><br><span class="line">plt.show()</span><br></pre></td></tr></table></figure>
<p>结果:</p>
<p><img src="http://jcjview.github.io/img/Figure_1.png" alt="词云运行结果"></p>
<p>后台回复“词云”获得完整运行代码</p>
<p><em>人生苦短我用python早下班。如果觉得不错对你工作中有帮助请加我微信公众号flypython我们一起探讨python相关问题</em></p>
<p> <img src="https://flypython.com/images/wechat.png" alt="flypython微信公众号"></p>
</article>
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
</section>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,155 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="Python写入Excel表格,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="Python写入Excel表格 | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:type" content="article">
<meta property="og:url" content="http://www.flypython.com/article/python-oa-01/">
<meta property="og:image" content="http://www.flypython.com/images/oa1.jpg">
<meta property="og:description" content="Python写入Excel表格--极简Python自动化办公系列">
<meta name="description" content="Python写入Excel表格--极简Python自动化办公系列">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>Python写入Excel表格 | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="wrapper post-banner">
<div class="container post-banner-container">
<h2 class="wrapper title">Python写入Excel表格</h2>
<div class="wrapper tips">
<span>Author</span><span>flypython</span> | <span>Date: </span><span>2019-01-01</span> | <span>Category</span><span><a href="/fly/自动化办公/" title="自动化办公">自动化办公</a></span>
</div>
</div>
</section>
<section class="wrapper main-wrapper">
<article class="sub-container post-content">
<h1 id="【极简Python-自动化办公】Python写入Excel表格"><a href="#【极简Python-自动化办公】Python写入Excel表格" class="headerlink" title="【极简Python 自动化办公】Python写入Excel表格"></a>【极简Python 自动化办公】Python写入Excel表格</h1><blockquote>
<p>【极简Python 自动化办公】专栏是介绍如何利用python办公减少工作负荷。篇幅精炼内容易懂无论是否有编程基础都非常适合。</p>
</blockquote>
<p>在上次文章中我们学习了【用python读取excel】这次我们继续学习Python写excel吧</p>
<p><img src="http://jcjview.github.io/img/flypythonpython-excel-tutorial.jpg" alt></p>
<h2 id="0-摘要"><a href="#0-摘要" class="headerlink" title="0.摘要"></a>0.摘要</h2><p><strong>本文大约需要15分钟建议在电脑上打开边阅读边操作。</strong></p>
<ol>
<li>安装Python读excel模块——xlwt</li>
<li>准备写入表格内容</li>
<li>编写python代码并运行</li>
<li>使用for循环语句读取并写入excel表格</li>
</ol>
<h2 id="1-安装xlwt"><a href="#1-安装xlwt" class="headerlink" title="1.安装xlwt"></a>1.安装xlwt</h2><p>与上篇文章类似需要在cmd窗口输入<figure class="highlight plain"><figcaption><span>install xlwt```。</span></figcaption><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line">![](http://jcjview.github.io/img/flypythonpythonexcelw2.png)</span><br><span class="line"></span><br><span class="line">## 2.准备写入表格内容</span><br><span class="line"></span><br><span class="line">这步很简单,只要想好输入内容即可,这里设计了一个简单的表格内容作为写入内容(目前这个内容还不存在)。</span><br><span class="line"></span><br><span class="line">| 序号  | 学号 |年龄 |</span><br><span class="line">| --- | --- |--- |</span><br><span class="line">| 张三 | 20190901 |11|</span><br><span class="line">| 李四 |20190902|12 |</span><br><span class="line">| 小明 | 20190903 |13 |</span><br><span class="line"></span><br><span class="line">## 3.编写python代码并运行</span><br><span class="line"></span><br><span class="line">新建一个writeexcel.py文件用记事本或其他文本编辑工具打开。</span><br><span class="line"></span><br><span class="line">本次写入excel的思路是新建文件-&gt;指定行列-&gt;写入内容。</span><br><span class="line"></span><br><span class="line">在文本编辑工具中输入如下代码,保存并关闭。</span><br></pre></td></tr></table></figure></p>
<p>import xlwt</p>
<p>f = xlwt.Workbook()<br>sheet1 = f.add_sheet(sheet1,cell_overwrite_ok=True)<br>column = [“姓名”,”学号”,”年龄”]<br>name = [“张三”,”李四”,”小明”]</p>
<p>school_code = [20190901,20190902,20190903]</p>
<p>age = [11,12,13]</p>
<p>sheet1.write(0,0,column[0])#第1行第1列<br>sheet1.write(0,1,column[1])#第3行第3列<br>sheet1.write(0,2,column[2])#第2行第2列</p>
<p>sheet1.write(1,0,name[0])#第2行第1列<br>sheet1.write(1,1,school_code[0])#第2行第1列<br>sheet1.write(1,2,age[0])#第3行第1列</p>
<p>sheet1.write(2,0,name[1])<br>sheet1.write(2,1,school_code[1])<br>sheet1.write(2,2,age[1])</p>
<p>sheet1.write(3,0,name[2])<br>sheet1.write(3,1,school_code[2])<br>sheet1.write(3,2,age[2])</p>
<p>f.save(test1.xls)</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line">还是一样注意每句的开头不可以有空格因为python用*缩进*来表示编程的层次,缩进不同就会报错了。</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">在保存writeexcel.py的位置上打开cmd运行 python writeexcel.py</span><br><span class="line">可以看到结果:</span><br><span class="line">![](http://jcjview.github.io/img/flypythonpythonexcelw4.png)</span><br><span class="line">![](http://jcjview.github.io/img/flypythonpythonexcelw5.png)</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">## 4.使用for循环语句读取并写入excel表格</span><br><span class="line"></span><br><span class="line">非常好您已经学会了如何读取和写入excel表格。</span><br><span class="line"></span><br><span class="line">但是我们只能一个一个单元格读取和写入数据这比手工操作excel表格快不了多少。</span><br><span class="line"></span><br><span class="line">接下来我们需要学习使用for循环来批量读取一个excel表格并循环写入另一个excel表格中。</span><br><span class="line"></span><br><span class="line">不要删除test1.xls在test1.xls文件的位置新建一个rwexcel.py文件将下面代码输入到文件中</span><br></pre></td></tr></table></figure>
<p>import xlrd<br>import xlwt</p>
<p>wb = xlrd.open_workbook(“test1.xls”)#打开文件<br>sheet1 = wb.sheet_by_index(0)#获取第一个表格</p>
<p>column = []#列名</p>
<p>data=[]</p>
<p>#获取列名<br>column.append(sheet1.cell(0,0).value)#姓名<br>column.append(sheet1.cell(0,1).value)#学号<br>column.append(sheet1.cell(0,2).value)#年龄</p>
<p>for i in range(1,sheet1.nrows):#sheet1.nrows 行数<br> coldata=[]<br> coldata.append(sheet1.cell(i, 0).value)#姓名<br> coldata.append(int(sheet1.cell_value(i, 1)))#学号<br> coldata.append(sheet1.cell(i, 2).value)#年龄<br> data.append(coldata)</p>
<p>f = xlwt.Workbook()<br>sheetw = f.add_sheet(sheet1,cell_overwrite_ok=True)</p>
<p>sheetw.write(0,0,column[0])#姓名<br>sheetw.write(0,2,column[2])#学号<br>sheetw.write(0,1,column[1])#年龄</p>
<p>for i in range(len(data)):<br> d=data[i]<br> sheetw.write(i+1, 0, d[0]) # 第2行第1列<br> sheetw.write(i+1, 1, d[1]) # 第2行第1列<br> sheetw.write(i+1, 2, d[2]) # 第3行第1列</p>
<p>f.save(test2.xls)</p>
<p>```</p>
<p>运行后会生成一个test2.xls与test1.xls一模一样。</p>
<p><em>人生苦短我用python早下班。如果觉得不错对你工作中有帮助请加我微信公众号flypython我们一起探讨python相关问题</em></p>
<p> <img src="https://flypython.com/images/wechat.png" alt="flypython微信公众号"></p>
</article>
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
</section>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,210 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="Python写入Word文档,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="Python写入Word文档 | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:type" content="article">
<meta property="og:url" content="http://www.flypython.com/article/python-oa-02/">
<meta property="og:image" content="http://www.flypython.com/images/oa2.jpg">
<meta property="og:description" content="Python写入Word文档--极简Python自动化办公系列">
<meta name="description" content="Python写入Word文档--极简Python自动化办公系列">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>Python写入Word文档 | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="wrapper post-banner">
<div class="container post-banner-container">
<h2 class="wrapper title">Python写入Word文档</h2>
<div class="wrapper tips">
<span>Author</span><span>flypython</span> | <span>Date: </span><span>2019-01-02</span> | <span>Category</span><span><a href="/fly/自动化办公/" title="自动化办公">自动化办公</a></span>
</div>
</div>
</section>
<section class="wrapper main-wrapper">
<article class="sub-container post-content">
<blockquote>
<p>【极简Python 自动化办公】专栏是介绍如何利用python办公减少工作负荷。篇幅精炼内容易懂无论是否有编程基础都非常适合。</p>
</blockquote>
<p>在上次文章中我们学习了【用python写入excel】这次我们学习Python写word文档吧</p>
<p>场景:<br>有时候,办公室需要按模版生成的固定的文件,模板是固定的,只是每次需要替换信息。如下图的收入证明,模版中所有标黄的都是需要替换的信息:<br><img src="http://jcjview.github.io/img/pythonword_model0.png" alt><br>如果手工来做这个事情每次至少需要10分钟的时间。假如每天要开15份则至少要花2个半小时而且手工编辑word很容易出错。</p>
<p>可不可用python写个程序解决这个问题呢</p>
<p>结论当然是肯定的!</p>
<h2 id="0-摘要"><a href="#0-摘要" class="headerlink" title="0.摘要"></a>0.摘要</h2><p><strong>本文大约需要15分钟建议在电脑上打开边阅读边操作。</strong></p>
<ol>
<li>安装Python读写word模块python-docx</li>
<li>准备word模板准备写入word文档内容</li>
<li>编写python代码并运行</li>
<li>通过读取excel表格中的信息批量生成word文件</li>
</ol>
<h2 id="1-安装python-docx模块"><a href="#1-安装python-docx模块" class="headerlink" title="1.安装python-docx模块"></a>1.安装python-docx模块</h2><p>与上篇文章类似需要在cmd窗口输入<code>pip install python-docx</code><br><img src="http://jcjview.github.io/img/flypython_python_docx_pip.png" alt></p>
<h2 id="2-准备word模板准备写入word文档内容"><a href="#2-准备word模板准备写入word文档内容" class="headerlink" title="2.准备word模板准备写入word文档内容"></a>2.准备word模板准备写入word文档内容</h2><p>word模板如上所示可以不需要标黄这里注意需要替换的文字或数字位置用”XXXX”来固定替代。保存为<code>个人收入证明.docx</code></p>
<table>
<thead>
<tr>
<th>名称</th>
<th>内容</th>
</tr>
</thead>
<tbody><tr>
<td>姓名</td>
<td>张三</td>
</tr>
<tr>
<td>身份证号</td>
<td>104111199009103531</td>
</tr>
<tr>
<td>职务</td>
<td>工程师</td>
</tr>
<tr>
<td>工作年限</td>
<td>10</td>
</tr>
<tr>
<td>月收入</td>
<td>10000</td>
</tr>
<tr>
<td>大写</td>
<td>壹万元整</td>
</tr>
<tr>
<td>联系人</td>
<td>李四</td>
</tr>
<tr>
<td>单位名称</td>
<td>格物致知股份有限公司</td>
</tr>
<tr>
<td>单位地址</td>
<td>珠海市横琴新区宝华路6号105室-67425</td>
</tr>
<tr>
<td>联系电话</td>
<td>0756-8627528</td>
</tr>
</tbody></table>
<h2 id="3-编写python代码并运行"><a href="#3-编写python代码并运行" class="headerlink" title="3. 编写python代码并运行"></a>3. 编写python代码并运行</h2><p>在word模板的同级目录新建一个writeword.py文件用记事本或其他文本编辑工具打开。</p>
<p>编程思路:</p>
<ol>
<li>用python打开对应doc模板</li>
<li>按顺序找到每一个需要替换的位置字符”XXXX”替换为对应的内容</li>
<li>另存为doc为另一个文件</li>
</ol>
<p>在文本编辑工具中输入如下代码,保存并关闭。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br></pre></td><td class="code"><pre><span class="line">from docx import Document</span><br><span class="line">#准备写入内容</span><br><span class="line">name=&quot;张三&quot;</span><br><span class="line">id_code=&quot;104111199009103531&quot;</span><br><span class="line">career=&quot;工程师&quot;</span><br><span class="line">working_years=&quot;10&quot;</span><br><span class="line">salary=&quot;10000&quot;</span><br><span class="line">salary_uppercase=&quot;壹万元整&quot;</span><br><span class="line">contact=&quot;李四&quot;</span><br><span class="line">company=&quot;格物厚德股份有限公司&quot;</span><br><span class="line">address=&quot;珠海市横琴新区宝华路6号105室-67425&quot;</span><br><span class="line">tel=&quot;0756-8627528&quot;</span><br><span class="line">#打开doc</span><br><span class="line"></span><br><span class="line">textlist=[name,id_code,career,working_years,salary,salary_uppercase,company,address,contact,tel]</span><br><span class="line"></span><br><span class="line">doc = Document(&quot;个人收入证明.docx&quot;)</span><br><span class="line"></span><br><span class="line">count=0</span><br><span class="line"></span><br><span class="line">for p in doc.paragraphs:</span><br><span class="line">        if &apos;XXXX&apos; in p.text:</span><br><span class="line">            inline = p.runs</span><br><span class="line">            for i in range(len(inline)):</span><br><span class="line">                if &apos;XXXX&apos; in inline[i].text:</span><br><span class="line">                    text = inline[i].text.replace(&apos;XXXX&apos;, textlist[count])</span><br><span class="line">                    inline[i].text = text</span><br><span class="line">                    count+=1</span><br><span class="line">                    print(count)</span><br><span class="line">doc.save(&quot;%s_个人收入证明.docx&quot;%name)</span><br></pre></td></tr></table></figure>
<p>在同级目录打开cmd运行writeword.py <code>python writeword.py</code></p>
<p>生成结果如下:<br><code>张三_个人收入证明.docx</code><br><img src="http://jcjview.github.io/img/pythonword2.png" alt></p>
<h2 id="4-通过读取excel表格中的信息批量生成word文件"><a href="#4-通过读取excel表格中的信息批量生成word文件" class="headerlink" title="4.通过读取excel表格中的信息批量生成word文件"></a>4.通过读取excel表格中的信息批量生成word文件</h2><p>这里生成了对应word文件但也有几个问题</p>
<ol>
<li>对应的日期并没有自动填写,应当填写文件生成时对应的日期</li>
<li>如果是生成大量同样word文档的话目前的程序也需要一个一个改并没有提升太多效率</li>
</ol>
<p>如果您看过我们之前的2篇用python读写excel的文章您肯定就会想到可以利用读取excel表格里的内容批量生成对应的word文档。对让我们继续吧</p>
<p>这里再准备一个excel文件将需要批量写入的信息写在excel中并保存为income.xlsx在同级目录如下图</p>
<p><img src="http://jcjview.github.io/img/pythonword23.png" alt></p>
<p>修改python 文件writeword.py</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br></pre></td><td class="code"><pre><span class="line">from docx import Document</span><br><span class="line">#准备写入内容</span><br><span class="line">import xlrd</span><br><span class="line">import time</span><br><span class="line"># 当前时间元组</span><br><span class="line">from datetime import datetime</span><br><span class="line">nt=datetime.now()</span><br><span class="line"># 可以输入中文年月日</span><br><span class="line">datestr=nt.strftime(&apos;%Y&#123;y&#125;%m&#123;m&#125;%d&#123;d&#125;&apos;).format(y=&apos;&apos;, m=&apos;&apos;, d=&apos;&apos;)</span><br><span class="line"></span><br><span class="line">xlsx=xlrd.open_workbook(&apos;income.xlsx&apos;)</span><br><span class="line">sheet=xlsx.sheet_by_index(0)</span><br><span class="line">for row in range(1,sheet.nrows):</span><br><span class="line">    doc = Document(&quot;个人收入证明.docx&quot;)</span><br><span class="line">    count=0</span><br><span class="line">    textlist=[]</span><br><span class="line">    for col in range(0,sheet.ncols):</span><br><span class="line">        textlist.append(str(sheet.cell_value(row, col)))</span><br><span class="line"></span><br><span class="line">    for p in doc.paragraphs:</span><br><span class="line">            if &apos;XXXX&apos; in p.text:</span><br><span class="line">                inline = p.runs</span><br><span class="line">                for i in range(len(inline)):</span><br><span class="line">                    if &apos;XXXX&apos; in inline[i].text:</span><br><span class="line">                        text = inline[i].text.replace(&apos;XXXX&apos;, textlist[count])</span><br><span class="line">                        inline[i].text = text</span><br><span class="line">                        count+=1</span><br><span class="line">            if &apos;X 年   X 月  X 日&apos; in p.text:</span><br><span class="line">                inline = p.runs</span><br><span class="line">                for i in range(len(inline)):</span><br><span class="line">                    if &apos;X 年   X 月  X 日&apos; in inline[i].text:</span><br><span class="line">                        text = inline[i].text.replace(&apos;X 年   X 月  X 日&apos;, datestr)</span><br><span class="line">                        inline[i].text = text</span><br><span class="line"></span><br><span class="line">    doc.save(&quot;%s_个人收入证明.docx&quot;%textlist[0])</span><br></pre></td></tr></table></figure>
<p> 运行后,输入结果:</p>
<p><img src="http://jcjview.github.io/img/pythonword3.png" alt></p>
<p><img src="http://jcjview.github.io/img/pythonword4.png" alt></p>
<p><em>人生苦短我用python早下班。如果觉得不错对你工作中有帮助请加我微信公众号flypython我们一起探讨python相关问题</em></p>
<p> <img src="https://flypython.com/images/wechat.png" alt="flypython微信公众号"></p>
</article>
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
</section>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,145 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="Python批量转换任意文档格式,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="Python批量转换任意文档格式 | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:type" content="article">
<meta property="og:url" content="http://www.flypython.com/article/python-oa-03/">
<meta property="og:image" content="http://www.flypython.com/images/oa3.jpg">
<meta property="og:description" content="Python批量转换任意文档格式--极简Python自动化办公系列">
<meta name="description" content="Python批量转换任意文档格式--极简Python自动化办公系列">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>Python批量转换任意文档格式 | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="wrapper post-banner">
<div class="container post-banner-container">
<h2 class="wrapper title">Python批量转换任意文档格式</h2>
<div class="wrapper tips">
<span>Author</span><span>flypython</span> | <span>Date: </span><span>2019-01-03</span> | <span>Category</span><span><a href="/fly/自动化办公/" title="自动化办公">自动化办公</a></span>
</div>
</div>
</section>
<section class="wrapper main-wrapper">
<article class="sub-container post-content">
<p>在工作中,常常会遇到文档格式的转换。如果数据不多,手工转换就可以。如果是大量文档,那我们应该怎么办呢?</p>
<p>今天我们将使用Python来批量处理文档转换的问题.</p>
<h4 id="关于unoconv"><a href="#关于unoconv" class="headerlink" title="关于unoconv"></a>关于unoconv</h4><p>unoconv是一款跨平台的工具用于格式转换支持命令行。底层实现是依赖于开源的LibreOffice/OpenOffice。</p>
<p>项目地址:<a href="https://github.com/unoconv/unoconv" target="_blank" rel="noopener">https://github.com/unoconv/unoconv</a></p>
<p>文档地址: <a href="http://dag.wiee.rs/home-made/unoconv/" target="_blank" rel="noopener">http://dag.wiee.rs/home-made/unoconv/</a></p>
<p>根据unoconv的文档介绍支持上百种文档格式的转换已经覆盖了绝大部分的需求。</p>
<h4 id="使用unoconv"><a href="#使用unoconv" class="headerlink" title="使用unoconv"></a>使用unoconv</h4><p>安装unoconv比较繁琐而且需要针对中文进行进一步的字符集配置。我们可以选择别人已经集成好的服务来进行操作在这里我们选择了docker-unoconv-webservice项目。</p>
<p>项目地址为: <a href="https://github.com/zrrrzzt/docker-unoconv-webservice" target="_blank" rel="noopener">https://github.com/zrrrzzt/docker-unoconv-webservice</a></p>
<p>查看项目的README接口如下: </p>
<p><code>curl --form file=@myfile.docx http://localhost/unoconv/pdf &gt; myfile.pdf</code></p>
<p>我们使用下列命令先把项目的镜像pull下来</p>
<p><code>docker pull zrrrzzt/docker-unoconv-webservice</code></p>
<p>然后启动命令如下:</p>
<p><code>docker run -d -p 80:3000 zrrrzzt/docker-unoconv-webservice</code></p>
<p>服务在80端口上提供服务如果80端口被占用可以调整为其他的端口</p>
<p>确认服务正在运行:</p>
<p><code>docker ps | grep zrrrzzt/docker-unoconv-webservice</code></p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">[flypython] docker ps | grep zrrrzzt/docker-unoconv-webservice </span><br><span class="line">c014cf335b31 zrrrzzt/docker-unoconv-webservice &quot;/bin/sh -c &apos;/usr/bi…&quot; 2 minutes ago Up 2 minutes 0.0.0.0:80-&gt;3000/tcp brave_blackburn</span><br></pre></td></tr></table></figure>
<p>从docx转换为pdf</p>
<p><code>curl --form file=@demo.docx http://localhost/unoconv/pdf &gt; demo.pdf</code> </p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">[flypython] curl --form file=@demo.docx http://localhost/unoconv/pdf &gt; demo.pdf </span><br><span class="line"> % Total % Received % Xferd Average Speed Time Time Time Current</span><br><span class="line"> Dload Upload Total Spent Left Speed</span><br><span class="line">100 12089 100 4242 100 7847 2532 4684 0:00:01 0:00:01 --:--:-- 7213</span><br><span class="line">[flypython] ls demo* </span><br><span class="line">demo.docx demo.pdf</span><br></pre></td></tr></table></figure>
<h4 id="使用Python批量请求"><a href="#使用Python批量请求" class="headerlink" title="使用Python批量请求"></a>使用Python批量请求</h4><p>Python批量请求的思路是把需要转换的文档发送到服务器服务器会返回转换后的格式我们保存为文件就可以了。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line">def post_file(url,path):</span><br><span class="line"> filename = os.path.basename(path)</span><br><span class="line"> convert_name = str(filename).split(&apos;.&apos;)[0] + &apos;.pdf&apos;</span><br><span class="line"></span><br><span class="line"> m = MultipartEncoder(</span><br><span class="line"> fields= &#123;</span><br><span class="line"> &apos;file&apos;:(filename,open(path,&apos;rb&apos;)),</span><br><span class="line"> &#125;</span><br><span class="line"> )</span><br><span class="line"> response = requests.request(&apos;POST&apos;, url, data=m, headers=&#123;&apos;Content-Type&apos;:m.content_type&#125;)</span><br><span class="line"></span><br><span class="line"> with open(convert_name, &apos;wb&apos;) as f:</span><br><span class="line"> f.write(response.content)</span><br><span class="line"></span><br><span class="line"> return convert_name</span><br></pre></td></tr></table></figure>
<p>好了更多类型转换更完整的应用需要你根据业务来完善这次的介绍就到这里了。demo完整代码在github上点击原文可以获取。</p>
<p><a href="https://github.com/flypythoncom/flypython/blob/master/convert.py" target="_blank" rel="noopener">https://github.com/flypythoncom/flypython/blob/master/convert.py</a></p>
</article>
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
</section>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,155 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="Python读取PDF文字和表格,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="Python读取PDF文字和表格 | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:type" content="article">
<meta property="og:url" content="http://www.flypython.com/article/python-oa-04/">
<meta property="og:image" content="http://www.flypython.com/images/oa4.jpg">
<meta property="og:description" content="Python读取PDF文字和表格--极简Python自动化办公系列">
<meta name="description" content="Python读取PDF文字和表格--极简Python自动化办公系列">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>Python读取PDF文字和表格 | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="wrapper post-banner">
<div class="container post-banner-container">
<h2 class="wrapper title">Python读取PDF文字和表格</h2>
<div class="wrapper tips">
<span>Author</span><span>flypython</span> | <span>Date: </span><span>2019-01-04</span> | <span>Category</span><span><a href="/fly/自动化办公/" title="自动化办公">自动化办公</a></span>
</div>
</div>
</section>
<section class="wrapper main-wrapper">
<article class="sub-container post-content">
<blockquote>
<p>【极简Python 自动化办公】专栏是介绍如何利用python办公减少工作负荷。篇幅精炼内容易懂无论是否有编程基础都非常适合。</p>
</blockquote>
<p>在日常的工作中处理PDF是最平常不过的事情了。今天带来极简Python自动化办公系列之使用Python提取Pdf文字和表格希望能够在PDF处理上帮到你。</p>
<p>这次我们准备了一个pdf测试文件内容如下</p>
<p><img src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8e0nlr7gdj30kc0zcjua.jpg" alt></p>
<p>pdf中包括了2页有文字图片和表格覆盖了大部分pdf的场景。</p>
<h4 id="pdfplumber介绍"><a href="#pdfplumber介绍" class="headerlink" title="pdfplumber介绍"></a>pdfplumber介绍</h4><p>Pdfplumber是一个可以处理pdf格式信息的库。它可以查找关于每个文本字符、矩阵、和行的详细信息也可以对表格进行提取并进行可视化调试。</p>
<p>官方repo:<br> <code>https://github.com/jsvine/pdfplumber</code></p>
<p>安装:<br><code>pip install pdfplumber</code></p>
<h4 id="使用入门"><a href="#使用入门" class="headerlink" title="使用入门"></a>使用入门</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">import pdfplumber</span><br><span class="line"> </span><br><span class="line">with pdfplumber.open(&quot;test.pdf&quot;) as pdf:</span><br><span class="line"> first_page = pdf.pages[0] #取第一页</span><br><span class="line"> print(first_page.chars[0])#打印第一页第一个字文字信息</span><br></pre></td></tr></table></figure>
<p>结果:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;&apos;fontname&apos;: &apos;CRSMRF+PingFangTC-Semibold&apos;, &apos;adv&apos;: Decimal(&apos;1.000&apos;), &apos;upright&apos;: 1, &apos;x0&apos;: Decimal(&apos;57.000&apos;), &apos;y0&apos;: Decimal(&apos;751.840&apos;), &apos;x1&apos;: Decimal(&apos;81.000&apos;), &apos;y1&apos;: Decimal(&apos;779.776&apos;), &apos;width&apos;: Decimal(&apos;24.000&apos;), &apos;height&apos;: Decimal(&apos;27.936&apos;), &apos;size&apos;: Decimal(&apos;27.936&apos;), &apos;object_type&apos;: &apos;char&apos;, &apos;page_number&apos;: 1, &apos;text&apos;: &apos;&apos;, &apos;top&apos;: Decimal(&apos;62.224&apos;), &apos;bottom&apos;: Decimal(&apos;90.160&apos;), &apos;doctop&apos;: Decimal(&apos;62.224&apos;)&#125;</span><br></pre></td></tr></table></figure>
<p>格式化之后:</p>
<p><img src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8e0nm8qvij30kq0hi0um.jpg" alt></p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line">&#123;</span><br><span class="line"> &quot;fontname&quot;:&quot;CRSMRF+PingFangTC-Semibold&quot;,</span><br><span class="line"> &quot;adv&quot;:&quot;1.000&quot;,</span><br><span class="line"> &quot;upright&quot;:1,</span><br><span class="line"> &quot;x0&quot;:&quot;57.000&quot;,</span><br><span class="line"> &quot;y0&quot;:&quot;751.840&quot;,</span><br><span class="line"> &quot;x1&quot;:&quot;81.000&quot;,</span><br><span class="line"> &quot;y1&quot;:&quot;779.776&quot;,</span><br><span class="line"> &quot;width&quot;:&quot;24.000&quot;,</span><br><span class="line"> &quot;height&quot;:&quot;27.936&quot;,</span><br><span class="line"> &quot;size&quot;:&quot;27.936&quot;,</span><br><span class="line"> &quot;object_type&quot;:&quot;char&quot;,</span><br><span class="line"> &quot;page_number&quot;:1, #页数</span><br><span class="line"> &quot;text&quot;:&quot;&quot;, #第一个文字</span><br><span class="line"> &quot;top&quot;:&quot;62.224&quot;,</span><br><span class="line"> &quot;bottom&quot;:&quot;90.160&quot;,</span><br><span class="line"> &quot;doctop&quot;:&quot;62.224&quot;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
<h4 id="常用方法"><a href="#常用方法" class="headerlink" title="常用方法"></a>常用方法</h4><ul>
<li>extract_text() 用来提页面中的文本,将页面的所有字符对象整理为一个字符串</li>
<li>extract_words() 返回的是所有的单词及其相关信息</li>
<li>extract_tables() 提取页面的表格</li>
</ul>
<h4 id="提取文字"><a href="#提取文字" class="headerlink" title="提取文字"></a>提取文字</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">#!/usr/bin/env python3</span><br><span class="line"></span><br><span class="line">import pdfplumber</span><br><span class="line"></span><br><span class="line">with pdfplumber.open(&quot;test.pdf&quot;) as pdf:</span><br><span class="line"> first_page = pdf.pages[0]</span><br><span class="line"> text = first_page.extract_text() #提取第一页的所有文字</span><br><span class="line"> print(text)</span><br></pre></td></tr></table></figure>
<p><img src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8e0nmzq4wj30r007wgms.jpg" alt></p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">关于我们</span><br><span class="line">关于FlyPython</span><br><span class="line">FlyPython是提供⼀站式Python编程学习的组织我们致⼒于为⽤户提供⾼</span><br><span class="line">有趣的学习环境打造专注于Python的中⽂学习社区。</span><br><span class="line">联系我们</span><br><span class="line">客服&amp;合作: 微信号 flypython</span><br><span class="line">微信公众号:</span><br></pre></td></tr></table></figure>
<h4 id="提取表格"><a href="#提取表格" class="headerlink" title="提取表格"></a>提取表格</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line">#!/usr/bin/env python3</span><br><span class="line"></span><br><span class="line">import pdfplumber</span><br><span class="line">import pandas as pd</span><br><span class="line"></span><br><span class="line">with pdfplumber.open(&quot;test.pdf&quot;) as pdf:</span><br><span class="line"> first_page = pdf.pages[0]</span><br><span class="line"> text = first_page.extract_text()</span><br><span class="line"> print(text)</span><br><span class="line"></span><br><span class="line"> second_page = pdf.pages[1] #第二页</span><br><span class="line"> table = second_page.extract_tables()#在第二页提取表格</span><br><span class="line"> for t in table:</span><br><span class="line"> df = pd.DataFrame(t[1:],columns=t[0])</span><br><span class="line"> print(df)</span><br></pre></td></tr></table></figure>
<p><img src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8e0no9hykj30po0f8wg9.jpg" alt></p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"> 分类 书名</span><br><span class="line">0 Python入门 Python编程从入门到\n实践</span><br><span class="line">1 Python中级 流畅的Python</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td></tr></table></figure>
<h4 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h4><p>pdfplumber的接口还是很容易的如果只是需要提取文字几行代码就可以提取到。如果是表格并没有提取出来或者错误的提取了非表格的内容你需要在提取表格时加入<code>table_settings</code>参数来指定表格的设置。</p>
<p>这次的demo中图片并没有提取出来pdf图片的提取会放到下一篇文章敬请期待。</p>
<p><em>人生苦短我用python早下班。如果觉得不错对你工作中有帮助可以长按下列二维码关注我们的公众号。</em></p>
<p> <img src="https://flypython.com/images/wechat.png" alt="flypython微信公众号"></p>
</article>
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
</section>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,140 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="Python读取PDF图片,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="Python读取PDF图片 | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:type" content="article">
<meta property="og:url" content="http://www.flypython.com/article/python-oa-05/">
<meta property="og:image" content="http://www.flypython.com/images/oa4.jpg">
<meta property="og:description" content="Python读取PDF图片--极简Python自动化办公系列">
<meta name="description" content="Python读取PDF图片--极简Python自动化办公系列">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>Python读取PDF图片 | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="wrapper post-banner">
<div class="container post-banner-container">
<h2 class="wrapper title">Python读取PDF图片</h2>
<div class="wrapper tips">
<span>Author</span><span>flypython</span> | <span>Date: </span><span>2019-01-05</span> | <span>Category</span><span><a href="/fly/自动化办公/" title="自动化办公">自动化办公</a></span>
</div>
</div>
</section>
<section class="wrapper main-wrapper">
<article class="sub-container post-content">
<blockquote>
<p>【极简Python 自动化办公】专栏是介绍如何利用python办公减少工作负荷。篇幅精炼内容易懂无论是否有编程基础都非常适合。</p>
</blockquote>
<p>在上次的文章中我们从PDF中提取了文字和表格这次我们需要提取图片。</p>
<p>还是先来看看我们上次的测试例子</p>
<p><img src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8e0nlr7gdj30kc0zcjua.jpg" alt></p>
<p>这次我们要提取第一页的二维码图片。</p>
<h4 id="fitz介绍"><a href="#fitz介绍" class="headerlink" title="fitz介绍"></a>fitz介绍</h4><p>pymupdf是mupdf的Python绑定而今天我们要使用的fitz是pymupdf的子模块。需要的时候使用pip安装。</p>
<p><code>pip install pymupdf</code></p>
<p>导入的时使用<code>import fitz</code>导入模块。</p>
<p>更多信息可参考pymupdf的文档:<br><code>https://pymupdf.readthedocs.io/en/latest/intro/</code></p>
<h4 id="提取图片"><a href="#提取图片" class="headerlink" title="提取图片"></a>提取图片</h4><p>提取图片的思路是通过正则表达式找到图片对象,然后保存为图片格式。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br></pre></td><td class="code"><pre><span class="line">#!/usr/bin/env python3</span><br><span class="line"></span><br><span class="line">import fitz #pip install pymupdf</span><br><span class="line">import re</span><br><span class="line">import os</span><br><span class="line"></span><br><span class="line">def find_imag(path,img_path):</span><br><span class="line"></span><br><span class="line"> checkXO = r&quot;/Type(?= */XObject)&quot;</span><br><span class="line"> checkIM = r&quot;/Subtype(?= */Image)&quot;</span><br><span class="line"></span><br><span class="line"> pdf = fitz.open(path)</span><br><span class="line"></span><br><span class="line"> img_count = 0</span><br><span class="line"> len_XREF = pdf._getXrefLength()</span><br><span class="line"></span><br><span class="line"> print(&quot;文件名:&#123;&#125;, 页数: &#123;&#125;, 对象: &#123;&#125;&quot;.format(path, len(pdf), len_XREF - 1))</span><br><span class="line"></span><br><span class="line"> for i in range(1, len_XREF):</span><br><span class="line"> text = pdf._getXrefString(i)</span><br><span class="line"> isXObject = re.search(checkXO, text)</span><br><span class="line"></span><br><span class="line"> # 使用正则表达式查看是否是图片</span><br><span class="line"> isImage = re.search(checkIM, text)</span><br><span class="line"></span><br><span class="line"> # 如果不是对象也不是图片则continue</span><br><span class="line"> if not isXObject or not isImage:</span><br><span class="line"> continue</span><br><span class="line"> img_count += 1</span><br><span class="line"> # 根据索引生成图像</span><br><span class="line"> pix = fitz.Pixmap(pdf, i)</span><br><span class="line"> </span><br><span class="line"> new_name = path.replace(&apos;\\&apos;, &apos;_&apos;) + &quot;_img&#123;&#125;.png&quot;.format(img_count)</span><br><span class="line"> new_name = new_name.replace(&apos;:&apos;, &apos;&apos;)</span><br><span class="line"></span><br><span class="line"> # 如果pix.n&lt;5,可以直接存为PNG</span><br><span class="line"> if pix.n &lt; 5:</span><br><span class="line"> pix.writePNG(os.path.join(img_path, new_name))</span><br><span class="line"> </span><br><span class="line"> else:</span><br><span class="line"> pix0 = fitz.Pixmap(fitz.csRGB, pix)</span><br><span class="line"> pix0.writePNG(os.path.join(img_path, new_name))</span><br><span class="line"> pix0 = None</span><br><span class="line"> </span><br><span class="line"> pix = None</span><br><span class="line"> </span><br><span class="line"> print(&quot;提取了&#123;&#125;张图片&quot;.format(img_count))</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">if __name__==&apos;__main__&apos;:</span><br><span class="line"> pdf_path = r&apos;test.pdf&apos;</span><br><span class="line"> img_path = r&apos;img&apos;</span><br><span class="line"> m = find_imag(pdf_path, img_path)</span><br></pre></td></tr></table></figure>
<p>运行程序结果:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">[pdf] python3 pdf_img.py</span><br><span class="line">文件名:test.pdf, 页数: 2, 对象: 115</span><br><span class="line">提取了1张图片</span><br></pre></td></tr></table></figure>
<p>在img目录中已经存在了我们需要的文件</p>
<p><img src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8osipfp3uj30uu0jqgrw.jpg" alt></p>
<h4 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h4><p>pymupdf的使用今天就简单介绍到这里。更多的功能请参考pymupdf文档。</p>
<p>下一篇我们将带来pdf转换为图片的讨论。</p>
<p><em>人生苦短我用python早下班。如果觉得不错对你工作中有帮助可以长按下列二维码关注我们的公众号。</em></p>
<p> <img src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8pj2981c1j3076076mxn.jpg" alt="flypython微信公众号"></p>
</article>
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
</section>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,155 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="你是如何自学Python的,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="你是如何自学Python的 | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:type" content="article">
<meta property="og:url" content="http://www.flypython.com/article/python-tutorial-01/">
<meta property="og:image" content="http://www.flypython.com/images/tutorial1.png">
<meta property="og:description" content="你是如何自学Python的--Python入门教程">
<meta name="description" content="你是如何自学Python的--Python入门教程">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>你是如何自学Python的 | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="wrapper post-banner">
<div class="container post-banner-container">
<h2 class="wrapper title">你是如何自学Python的</h2>
<div class="wrapper tips">
<span>Author</span><span>flypython</span> | <span>Date: </span><span>2019-02-01</span> | <span>Category</span><span><a href="/fly/Python入门/" title="Python入门">Python入门</a></span>
</div>
</div>
</section>
<section class="wrapper main-wrapper">
<article class="sub-container post-content">
<h1 id="你是如何自学-Python-的?"><a href="#你是如何自学-Python-的?" class="headerlink" title="你是如何自学 Python 的?"></a>你是如何自学 Python 的?</h1><p><img src="http://jcjview.github.io/img/flypythonflypython001.jpg" alt></p>
<p>why python?</p>
<blockquote>
<p>你可能听说过python</p>
<p>Python入门相对容易又可以干很多事(网站,&gt;运维,数据,爬虫等),是一门方便的工具语言。<br><strong>2019年8月TIOBE排名显示Python已经名列第3</strong>仅次于java和c并且还在快速增长中。</p>
</blockquote>
<h2 id="Python的使用场景"><a href="#Python的使用场景" class="headerlink" title="Python的使用场景"></a>Python的使用场景</h2><h3 id="01-数据分析"><a href="#01-数据分析" class="headerlink" title="01 数据分析"></a>01 数据分析</h3><p>对于数据分析和机器学习Python是首选编程语言。python有众多数据分析工具知名数据分析比赛网站kaggle90%以上的竞赛代码都是用python写成。大数据平台如spark、flinkpython有完整的支持api可调用。</p>
<h3 id="02-网站开发"><a href="#02-网站开发" class="headerlink" title="02 网站开发"></a>02 网站开发</h3><p>对于网站开发Python的生态环境也可以支撑起重量级的产品。<br>国外的YoutubeInstagramPinterestRedditDropboxDisqus Quora等知名应用一开始都是基于Python构建国内的豆瓣知乎果壳饿了么等初期在也是Python应用的典型。</p>
<h3 id="03-爬虫"><a href="#03-爬虫" class="headerlink" title="03 爬虫"></a>03 爬虫</h3><p>对于爬虫则想不到比python更方便、更通用的的语言了。Python极其丰富的生态诸如Request、Beautiful Soup、Scrapy、PySpider等第三方库加上简洁易上手的语法分分钟就能让你写出一个爬虫来。</p>
<p>此外还有机器学习、人工智能、科学计算、IT运维等领域Python都是极其方便顺手的工具更重要的是永远开源免费。</p>
<h2 id="Python的就业前景"><a href="#Python的就业前景" class="headerlink" title="Python的就业前景"></a>Python的就业前景</h2><p>在it行业飞速发展的今天在数据成为it命脉的时代python的重要意义越来越不言自明。学习python不仅仅是一门可以调用数据结构和算法的语言在学会python的同时可以同时学会爬取互联网海量资源学会自动化分析互联网海量数据学会制作展示宣传的网站学会使用人工智能预测和改变世界。</p>
<p>学习一门语言,得到多种技能,以及大数据的思维方式,何乐而不为呢。</p>
<h3 id="Python有多火"><a href="#Python有多火" class="headerlink" title="Python有多火"></a>Python有多火</h3><p>Python有多火大多数IT研发岗位都需要Python程序员甚至许多非研发岗位纷纷在JD中给出精通Python技能者优先的字样。</p>
<p><img src="http://jcjview.github.io/img/flypythonpython%20job.jpg" alt></p>
<p><img src="http://jcjview.github.io/img/flypythonpython%20job2.jpg" alt></p>
<h2 id="Python的学习曲线"><a href="#Python的学习曲线" class="headerlink" title="Python的学习曲线"></a>Python的学习曲线</h2><p>对于爱好者来说, python上手非常容易学习曲线非常平滑。基本的例子几行代码都能完成。</p>
<p>python代码环境安装几乎是傻瓜式的不像java要考虑众多库的配置和解决冲突。如果有编程的基础甚至只需要几小时就能上手即使没有基础的小白通过努力7-10天每天1小时也可以快速掌握基本编程技巧。</p>
<h2 id="Python的学习资料"><a href="#Python的学习资料" class="headerlink" title="Python的学习资料"></a>Python的学习资料</h2><p>Python官网<br>Python.org</p>
<p>廖雪峰的Python教程<br><a href="https://www.liaoxuefeng.com/" target="_blank" rel="noopener">https://www.liaoxuefeng.com/</a></p>
<p>简明python教程<br><a href="http://www.kuqin.com/abyteofpython_cn/" target="_blank" rel="noopener">http://www.kuqin.com/abyteofpython_cn/</a></p>
<hr>
<p>重点推荐书籍《Python 基础教程》</p>
<p><img src="http://jcjview.github.io/img/flypythonflpython001zhihu.jpg" alt></p>
<p>知乎评价:<br><img src="http://jcjview.github.io/img/flypythonflpython001zhihu002.jpg" alt></p>
<p>其他入门书籍:</p>
<ul>
<li>Head First Python</li>
<li>Dive Into Python</li>
<li>Python 核心编程</li>
<li>深入理解 Python</li>
<li>Python 标准库</li>
<li>Python 编程指南</li>
</ul>
<p>我们搜集了一些网上的电子书版本关注公众号回复”python”获取</p>
<p>当然,英文著作虽然经典,但涉及领域众多,概念多,信息量大,不适合速成。网上的资料丰富,但也鱼龙混杂。</p>
<p>以 “Python入门” 为关键字搜索出的结果成千上万。不少小白选手难免会东一榔头西一棒槌,最终看了很多文章,却仍没跨过新手那道门槛。</p>
<p>我们这里有一个python的入门课程帮你把需要掌握的python基础知识都融汇贯通在小篇幅中。我们提供了很多有趣的实践项目并且可以进群互助学习遇到困难有人来解答。</p>
<p>加群请关注公众号,并回复“训练营”<br> <img src="https://flypython.com/images/wechat.png" alt="flypython微信公众号"></p>
</article>
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
</section>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,160 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="潘石屹我们为什么要学习Python语言,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="潘石屹我们为什么要学习Python语言 | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:type" content="article">
<meta property="og:url" content="http://www.flypython.com/article/python-tutorial-02/">
<meta property="og:image" content="http://www.flypython.com/images/tutorial2.png">
<meta property="og:description" content="潘石屹我们为什么要学习Python语言--Python入门教程">
<meta name="description" content="潘石屹我们为什么要学习Python语言--Python入门教程">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>潘石屹我们为什么要学习Python语言 | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="wrapper post-banner">
<div class="container post-banner-container">
<h2 class="wrapper title">潘石屹我们为什么要学习Python语言</h2>
<div class="wrapper tips">
<span>Author</span><span>flypython</span> | <span>Date: </span><span>2019-02-02</span> | <span>Category</span><span><a href="/fly/Python入门/" title="Python入门">Python入门</a></span>
</div>
</div>
</section>
<section class="wrapper main-wrapper">
<article class="sub-container post-content">
<blockquote>
<p>11 月 15 日SOHO 中国董事长潘石屹在微博上宣布,开始学习一门新的语言 Python这也是今天给自己人生的礼物。</p>
</blockquote>
<p><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20191115152124.jpg" alt></p>
<p>什么鬼房地产大佬要学python</p>
<p><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/pys.jpg" alt></p>
<p>潘石屹一位成功的房地产开发商老板第一专业是石油方面的63年出生年龄都超过了55岁这些描述怎么着都和编程沾不上边啊。然而最近他非常高调地表示要学习一款编程语言。<br>虽然我不同意他的有些观点,不过他的跨界,不给自己设限的态度是还是值得学习的。<br>大佬都忙着学编程这让我们35岁左右的专业程序员们非常惭愧啊难道非得财务自由以后才能学python么</p>
<p><img src="http://jcjview.github.io/img/flypythonflypython001.jpg" alt></p>
<p>潘石屹学python肯定不是为了转行找工作肯定也不是为了爬取全网美女图片他在微博里详细阐述了我们为什么要学习Python语言。</p>
<p><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20191115152906.png" alt></p>
<p>我们为什么要学习python——使用范围广<br>01.数据分析</p>
<p>对于数据科学和机器学习Python是首选编程语言。python有众多数据分析工具知名数据分析比赛网站kaggle90%以上的竞赛代码都是用python写成。大数据平台如hadoop、spark、flink、beampython有完整的支持api可调用。</p>
<p>02.网站开发</p>
<p>对于网站开发Python的生态环境也可以支撑起重量级的产品。国外的YoutubeInstagramPinterestRedditDropboxDisqus Quora等知名应用一开始都是基于Python构建国内的豆瓣知乎果壳饿了么等初期在也是Python应用的典型。</p>
<p>03.爬虫</p>
<p>对于爬虫则想不到比python更方便、更通用的的语言了。Python极其丰富的生态诸如Request、Beautiful Soup、Scrapy、PySpider等第三方库加上简洁易上手的语法分分钟就能让你写出一个爬虫来。</p>
<p>此外还有机器学习、人工智能、科学计算、IT运维等领域Python都是极其方便顺手的工具更重要的是永远开源免费。</p>
<p>Python的就业前景<br>在it行业飞速发展的今天在数据成为it命脉的时代python的重要意义越来越不言自明。学习python不仅仅是一门可以调用数据结构和算法的语言在学会python的同时可以同时学会爬取互联网海量资源学会自动化分析互联网海量数据学会制作展示宣传的网站学会使用人工智能预测和改变世界。学习一门语言得到多种技能以及大数据的思维方式何乐而不为呢。</p>
<p>Python有多火大多数IT研发岗位都需要Python程序员甚至许多非研发岗位纷纷在JD中给出精通Python技能者优先的字样。</p>
<p>Python的学习曲线<br>对于爱好者来说, python上手非常容易学习曲线非常平滑。基本的例子几行代码都能完成。python代码环境安装几乎是傻瓜式的不像java要考虑众多库的配置和解决冲突。如果有编程的基础甚至只需要几小时就能上手即使没有基础的小白通过努力7-10天每天1小时也可以快速掌握基本编程技巧。</p>
<p>Python的学习资料</p>
<p>Python官网 </p>
<p>Python.org</p>
<p>廖雪峰的Python教程 </p>
<p><a href="https://www.liaoxuefeng.com/" target="_blank" rel="noopener">https://www.liaoxuefeng.com/</a></p>
<p>简明的python教程 </p>
<p><a href="http://www.kuqin.com/abyteofpython_cn/" target="_blank" rel="noopener">http://www.kuqin.com/abyteofpython_cn/</a></p>
<p>重点推荐书籍:</p>
<p>《Python 基础教程》</p>
<p>知乎评价:</p>
<p>其他入门书籍:</p>
<p>Head First Python</p>
<p>Dive Into Python</p>
<p>Python 核心编程</p>
<p>深入理解 Python</p>
<p>Python 标准库</p>
<p>Python 编程指南</p>
<p>我们搜集了一些网上的电子书版本关注公众号回复”python”获取</p>
<p>当然,英文著作虽然经典,但涉及领域众多,概念多,信息量大,不适合速成。网上的资料丰富,但也鱼龙混杂。</p>
<p>以 “Python入门” 为关键字搜索出的结果成千上万。不少小白选手难免会东一榔头西一棒槌,最终看了很多文章,却仍没跨过新手那道门槛。</p>
<p>我们这里有一个python的入门课程帮你把需要掌握的python基础知识都融汇贯通在小篇幅中。我们提供了很多有趣的实践项目并且可以进群互助学习遇到困难有人来解答。</p>
<p>加群请加个人微信号flypython。</p>
<p>人生苦短我用python早下班。如果觉得不错对你工作中有帮助动动手指分享给更多人哦。</p>
</article>
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
</section>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,230 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="Python正则15分钟入门,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="Python正则15分钟入门 | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:type" content="article">
<meta property="og:url" content="http://www.flypython.com/article/python-tutorial-03/">
<meta property="og:image" content="http://www.flypython.com/images/tutorial3.png">
<meta property="og:description" content="Python正则15分钟入门--Python入门教程">
<meta name="description" content="Python正则15分钟入门--Python入门教程">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>Python正则15分钟入门 | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="wrapper post-banner">
<div class="container post-banner-container">
<h2 class="wrapper title">Python正则15分钟入门</h2>
<div class="wrapper tips">
<span>Author</span><span>flypython</span> | <span>Date: </span><span>2019-02-03</span> | <span>Category</span><span><a href="/fly/Python入门/" title="Python入门">Python入门</a></span>
</div>
</div>
</section>
<section class="wrapper main-wrapper">
<article class="sub-container post-content">
<p>flypython群里有同学问我如何从大量格式不确定的word文档抽取姓名、电话号码、邮箱等信息存入excel表格。通过之前我们的文章他已经学会读取和写入文档和表格但就是无法处理格式不确定的文档。<strong>这里介绍的正则方法,可以帮助他解决这个问题。</strong></p>
<h2 id="目标"><a href="#目标" class="headerlink" title="目标"></a>目标</h2><p>15分钟内让你真正明白正则表达式是什么并且让你可以在自己的python程序里正确使用它。</p>
<p>你将学会:</p>
<ol>
<li>极简python使用正则的方法</li>
<li>如果利用python高效的匹配字符串</li>
<li>如何利用python正则进行文本判断、过滤、信息提取</li>
</ol>
<h2 id="0-极简正则入门"><a href="#0-极简正则入门" class="headerlink" title="0.极简正则入门"></a>0.极简正则入门</h2><p>假设程序从word或者excel读取了一串字符串字符串中有一部分是电话号码现在需要完整提取这个电话号码。</p>
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> re</span><br><span class="line">reg=re.compile(<span class="string">"[0-9]+"</span>)</span><br><span class="line">a=reg.findall(<span class="string">"我的电话是3555487"</span>)</span><br><span class="line">print(a)</span><br></pre></td></tr></table></figure>
<p>输出:</p>
<p><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/20191016101032.png" alt></p>
<p>解释:<br><code>&quot;[0-9]+&quot;</code>是正则表达式意思是匹配0-9的数字<code>&quot;+&quot;</code><br>表示可以匹配1次-多次,<code>reg.findall</code>表示从后面的字符串里找到所有的匹配值。</p>
<h2 id="1-字符集"><a href="#1-字符集" class="headerlink" title="1.字符集"></a>1.字符集</h2><p>字符集,又叫元字符,就是用一些特殊符号表示特定种类的字符或位置。</p>
<h4 id="匹配字符"><a href="#匹配字符" class="headerlink" title="匹配字符"></a>匹配字符</h4><table>
<thead>
<tr>
<th align="center">代码</th>
<th>说明</th>
</tr>
</thead>
<tbody><tr>
<td align="center"><code>.</code></td>
<td>匹配除换行符以外的任意一个字符</td>
</tr>
<tr>
<td align="center"><code>\d</code></td>
<td>匹配数字</td>
</tr>
<tr>
<td align="center"><code>\w</code></td>
<td>匹配字母或数字或下划线或汉字</td>
</tr>
<tr>
<td align="center"><code>\s</code></td>
<td>匹配任意的空白符</td>
</tr>
<tr>
<td align="center"><code>^</code></td>
<td>匹配字符串的开始</td>
</tr>
<tr>
<td align="center"><code>$</code></td>
<td>匹配字符串的结束</td>
</tr>
</tbody></table>
<p>举例</p>
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> re</span><br><span class="line">reg=re.compile(<span class="string">"我."</span>)</span><br><span class="line">a=reg.findall(<span class="string">"我的电话是3555487"</span>)</span><br><span class="line">print(a)</span><br></pre></td></tr></table></figure>
<p>输出:<br><img src="http://jcjview.github.io/img/re201910161010321.png" alt></p>
<h4 id="重复匹配"><a href="#重复匹配" class="headerlink" title="重复匹配"></a>重复匹配</h4><table>
<thead>
<tr>
<th align="center">代码</th>
<th>说明</th>
</tr>
</thead>
<tbody><tr>
<td align="center"><code>*</code></td>
<td>重复0次-无数次</td>
</tr>
<tr>
<td align="center"><code>+</code></td>
<td>重复1次-无数次</td>
</tr>
<tr>
<td align="center"><code>?</code></td>
<td>重复0次-1次</td>
</tr>
<tr>
<td align="center"><code>{m}</code></td>
<td>重复m次</td>
</tr>
<tr>
<td align="center"><code>{m,n}</code></td>
<td>重复m-n次</td>
</tr>
</tbody></table>
<p>举例</p>
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> re</span><br><span class="line">reg=re.compile(<span class="string">"5+"</span>)</span><br><span class="line">a=reg.findall(<span class="string">"我的电话是3555487"</span>)</span><br><span class="line">print(a)</span><br></pre></td></tr></table></figure>
<p>输出:<br><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/re_20191016101824.png" alt></p>
<h4 id="贪婪与懒惰"><a href="#贪婪与懒惰" class="headerlink" title="贪婪与懒惰"></a>贪婪与懒惰</h4><p>贪婪:匹配尽可能长的字符串<br>懒惰:匹配尽可能短的字符串<br>懒惰模式的启用只需在重复元字符之后加?既可。</p>
<ul>
<li><code>*?</code> 重复任意次,但尽可能少重复</li>
<li><code>+?</code> 重复1次或更多次但尽可能少重复</li>
<li><code>??</code> 重复0次或1次但尽可能少重复</li>
<li><code>{n,m}?</code> 重复n到m次但尽可能少重复</li>
<li><code>{n,}?</code> 重复n次以上但尽可能少重复</li>
</ul>
<p>举例</p>
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> re</span><br><span class="line">reg=re.compile(<span class="string">"5+?"</span>)</span><br><span class="line">a=reg.findall(<span class="string">"我的电话是3555487"</span>)</span><br><span class="line">print(a)</span><br></pre></td></tr></table></figure>
<p>输出<br><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img//re_20191016101824111.png" alt></p>
<p>注意:<br>如果想匹配元字符本身或者正则中的一些特殊字符,使用<code>\\</code>转义。</p>
<p>这里介绍的正则内容是最基础的,想要了解更详细的正则表达式语法,请参考:</p>
<h2 id="2-利用正则判断"><a href="#2-利用正则判断" class="headerlink" title="2.利用正则判断"></a>2.利用正则判断</h2><h4 id="判断"><a href="#判断" class="headerlink" title="判断"></a>判断</h4><p>有时候我们想利用正则表达式对用户输入进行判断,比如判断用户输入的身份证号是否符合规则,那么可以这样写:</p>
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> re</span><br><span class="line">r=<span class="string">r'^([1-9]\d&#123;5&#125;[12]\d&#123;3&#125;(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])\d&#123;3&#125;[0-9xX])$'</span></span><br><span class="line"></span><br><span class="line">s1 = <span class="string">'110102200101014779'</span></span><br><span class="line"></span><br><span class="line"><span class="comment">#判断s1字符串是符合正则r</span></span><br><span class="line">an = re.search(r, s1)</span><br><span class="line"><span class="keyword">if</span> an:</span><br><span class="line"> <span class="keyword">print</span> (<span class="string">'yes'</span>)</span><br><span class="line"><span class="keyword">else</span>:</span><br><span class="line"> <span class="keyword">print</span> (<span class="string">'no'</span>)</span><br></pre></td></tr></table></figure>
<p>输入结果<br><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/re_20191016104208.png" alt></p>
<p>说明:<code>^</code>字符表示必须匹配字符串开头;<code>$</code>表示必须匹配字符串结尾。</p>
<h4 id="过滤"><a href="#过滤" class="headerlink" title="过滤"></a>过滤</h4><p>假设,输出一串文本,只想保留汉字,去除特殊符号。代码如下:</p>
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> re</span><br><span class="line">special_character_removal = re.compile(<span class="string">r'[,。、【 】“”:;()《》‘’&#123;&#125;?!⑦%&gt;℃.^-——=&amp;#@¥『』]'</span>, re.IGNORECASE)</span><br><span class="line">line=<span class="string">"贾蓉看了说:“高明的很。还要请教先生,这病与『性』命终久有妨无妨?”"</span></span><br><span class="line">l = special_character_removal.sub(<span class="string">''</span>, line)</span><br><span class="line">print(l)</span><br></pre></td></tr></table></figure>
<p>输入结果:<br><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/re_20191016104753.png" alt></p>
<h4 id="查找位置"><a href="#查找位置" class="headerlink" title="查找位置"></a>查找位置</h4><p>查找某个文本在字符串中的位置,一般用于信息提取。</p>
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> re</span><br><span class="line">p = re.compile(<span class="string">"\d+"</span>)</span><br><span class="line">content=<span class="string">"2019年9月9月9日"</span></span><br><span class="line">result2 = p.finditer(content)</span><br><span class="line"></span><br><span class="line"><span class="keyword">for</span> m <span class="keyword">in</span> result2:</span><br><span class="line"> print(<span class="string">"str"</span>,m.group()) <span class="comment">##字符串</span></span><br><span class="line"> print(<span class="string">"start: "</span>,m.start(),<span class="string">" end: "</span>,m.end()) <span class="comment">##字符串位置</span></span><br></pre></td></tr></table></figure>
<p>输出结果</p>
<p><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/re_20191016110227.png" alt></p>
<p><em>人生苦短我用python早下班。如果觉得不错对你工作中有帮助请长按下面二维码关注我们。回复训练营加群一起探讨python问题</em></p>
<p> <img src="https://flypython.com/images/wechat.png" alt="flypython微信公众号"></p>
</article>
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
</section>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

45
config.toml Normal file
View File

@@ -0,0 +1,45 @@
baseURL = "https://flypython.com"
languageCode = "en-us"
title = "flyptthon"
disableKinds = ["sitemap", "RSS"]
theme = "reveal-hugo"
# theme = "."
# themesDir = "../"
# uncomment for browsing at file:///
# relativeURLs = true
# uglyURLs = true
[author]
name = "Josh Dzielak"
# currently only the unsafe mode for goldmark is supported
[markup.goldmark.renderer]
unsafe = true
# choose between Hugo compile-time or Highlight.js
# syntax highlighting for code inside of code fences
[markup.highlight]
codeFences = false # use highlight.js
# codeFences = true # use hugo highlighting at compile time
style = "tango" # set a style for hugo highlighting
[outputFormats.Reveal]
baseName = "index"
mediaType = "text/html"
isHTML = true
[params.reveal_hugo]
history = true
# used in content/template-example
[params.reveal_hugo.templates.grey]
background = "#424242"
transition = "convex"
[module]
# needs hugo v0.109.0 or higher and go 1.18 or higher:
# uncomment line below for local development of module
# workspace = "hugo.work"

56
content/_index.md Normal file
View File

@@ -0,0 +1,56 @@
+++
title = "flypython"
outputs = ["Reveal"]
[logo]
src = "flypython.png"
alt = "flypython" # Alt text.
width = "15%" # Size of the file.
diag = "10%" # How far from the top right should the file be.
top = "5%" # Overrides diag.
right = "20%" # Overrides diag.
[reveal_hugo]
custom_theme = "reveal-hugo/themes/robot-lung.css"
margin = 0.25
+++
## Fly-Python
Welcome to FlyPython
A community for learning Python through LLM driven by interesting projects.
Here, we focus on teaching projects related to LLM using Python, aiming to reduce the obstacles you may encounter while exploring AI.
Help you more quickly adopt AI in your life and work.
---
Welcome to subscribe to our Newsletter.
[👉 FlyPython Newsletter](https://blog.flypython.com/)
---
💡 Tip:
By becoming a paid member, you will receive more of the latest in-depth articles on LLM, and at the same time, you will be supporting our sustained efforts in this area.
---
# 🤗
That's it.
We will be updating soon, please stay tuned.
[Newsletter](https://blog.flypython.com/)

View File

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 107 KiB

View File

@@ -1,503 +0,0 @@
body{
margin: 0;
font-family: "PingFang SC","Lantinghei SC","Microsoft Yahei","Hiragino Sans GB","Microsoft Sans Serif","WenQuanYi Micro Hei",sans;
-webkit-font-smoothing: antialiased;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
text-rendering: optimizelegibility;
-webkit-overflow-scrolling: touch;
overflow: scroll;
}
html , body{
height: 100%;
}
.header-wrapper{
height: 64px;
width: 100%;
position: fixed;
top: 0;
left: 0;
z-index: 999;
background: #fff;
box-shadow: 0px 1px 2px #999;
}
.wrapper{
width: 100%;
}
.wrapper::before,
.wrapper::after{
clear: both;
display: table;
content: "";
}
.container{
width: 1200px;
margin: 0 auto;
}
.sub-container{
width: 960px;
margin: 0 auto;
}
.container::before,
.container::after,
.sub-container::before,
.sub-container::after{
clear: both;
display: table;
content: "";
}
.header-nav-wrapper{
height: 100%;
position: relative;
}
.logo{
float: left;
height: 100%;
width: 200px;
background: #fff;
}
.logo a{
width: 100%;
height: 100%;
color: #03339e;
text-decoration: none;
}
.logo a:hover,
.logo a:visited,
.logo a:acive{
color: #03339e;
text-decoration: none;
}
.logo .title{
margin: 0;
padding: 0;
line-height: 64px;
user-select: none;
width: 100%;
height: 100%;
font-size: 24px;
box-sizing: border-box;
}
.nav-wrapper{
float: right;
}
.nav-wrapper a{
display: block;
float: left;
height: 100%;
font-size: 18px;
line-height: 20px;
padding: 22px;
color: #000;
cursor: pointer;
text-decoration: none;
transition: all .4s;
}
.nav-wrapper a:hover{
color: #fff;
background-color: #6C62C7;
text-decoration: none;
}
.nav-wrapper a:active,
.nav-wrapper a:visited{
text-decoration: none;
}
.body-wrapper{
min-height: 100%;
box-sizing: border-box;
padding: 64px 0 60px 0;
position: relative;
}
.banner-wrapper{
height: 250px;
background: url(/images/bg_sm.png) repeat;
background-color: #000;
}
.banner-container{
height: 100%;
background: url(/images/bg.png) no-repeat;
background-position: center;
background-size: auto 100%;
}
.menu-wrapper{
margin-top: 20px;
}
.menu-wrapper a{
text-decoration: none;
color: #333;
font-size: 16px;
box-sizing: border-box;
font-weight: 600;
padding: 10px 20px;
float: left;
transition: all .4s;
margin-right: 10px;
}
.menu-wrapper a:lash-child{
margin-right: 0;
}
.menu-wrapper a.active,
.menu-wrapper a:hover{
text-decoration: none;
color: #fff;
background-color: #6C62C7;
}
.list-container{
padding: 0;
}
.post-i-wrapper{
list-style: none;
width: 280px;
height: 240px;
float: left;
margin: 26px 26px 26px 0;
background-color: #fff;
cursor: pointer;
box-shadow: 0px 2px 6px #ccc;
transition: all .2s;
}
.post-i-wrapper .post-i-link{
width: 100%;
height: 100%;
text-decoration: none;
}
.post-i-wrapper:hover{
box-shadow: 0px 0px 10px #000;
}
.post-i-wrapper .cover{
width: 100%;
height: 113px;
overflow: hidden;
}
.post-i-wrapper .cover img{
width: 100%;
min-height: 100%;
}
.post-i-wrapper .title{
margin: 0;
font-size: 18px;
font-weight: 400;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
box-sizing: border-box;
padding: 20px 10px 10px 10px;
color: #000;
}
.post-i-wrapper .subtitle{
line-height: 22px;
text-indent: 28px;
font-size: 14px;
font-weight: 400;
max-height: 44px;
overflow: hidden;
box-sizing: border-box;
padding: 0 10px;
color: #666;
margin: 0;
}
.post-i-wrapper .time{
color: #999;
font-size: 12px;
padding: 10px;
display: block;
box-sizing: border-box;
text-align: left;
}
.post-banner{
height: 400px;
background-color: #6C62C7;
}
.post-banner-container{
height: 100%;
background: url(/images/bg_post.png) no-repeat;
background-position: center;
background-size: 100% auto;
}
.post-banner-container .title{
width: 100%;
text-align: center;
font-size: 28px;
line-height: 40px;
margin: 0;
margin-top: 160px;
font-weight: 500;
color: #fff;
}
.post-banner-container .tips {
text-align: center;
color: #D8D8F6;
}
.post-banner-container .tips a{
color: #D8D8F6;
text-decoration: none;
transition: all .4s;
}
.post-banner-container .tips a:hover{
color: #3A2BB4;
text-decoration: underline;
}
.post-content {
box-sizing: border-box;
padding: 20px 10px;
line-height: 1.8;
}
.post-content ul,
.post-content ol{
box-sizing: border-box;
padding: 20px 10px;
margin: 0;
}
.post-content table{
border-spacing: 0;
border-collapse: collapse;
-ms-word-break: break-all;
word-break: break-all;
}
.post-content table th{
background: #eee;
padding: 4px;
border: 1px solid #999;
}
.post-content table td{
border: 1px solid #999;
padding: 4px;
}
.post-content li{
font-weight: 500;
line-height: 2;
color: #333;
-ms-word-break: break-all;
word-break: break-all;
list-style-position: inside;
}
.post-content p{
-ms-word-break: break-all;
word-break: break-all;
}
.gitalk-wrapper{
padding: 20px 10px;
box-sizing: border-box;
}
.footer-wrapper{
width: 100%;
position: absolute;
bottom: 0;
left: 0;
height: 60px;
text-align: center;
background: #efefef;
box-sizing: border-box;
padding: 20px 0;
box-shadow: 0px 0px 2px #bbb;
}
.copyright{
font-size: 14px;
vertical-align: middle;
}
.btn-menu {
display: none;
float: right;
width: 64px;
height: 64px;
}
.btn-menu .inner {
width: 100%;
height: 100%;
overflow: hidden;
position: relative;
}
.btn-menu .inner .line {
top: 30px;
left: 22px;
position: absolute;
width: 20px;
height: 3px;
-webkit-transition: all .5s;
transition: all .5s;
background: #000;
}
.btn-menu .inner .line-01 {
margin-top: -7px;
}
.btn-menu .inner .line-03 {
margin-top: 7px;
}
.btn-close .line-01 {
-webkit-transform: rotate(45deg) translate3d(5px, 5px, 0);
transform: rotate(45deg) translate3d(5px, 5px, 0);
}
.btn-close .line-03 {
-webkit-transform: rotate(-45deg) translate3d(5px, -5px, 0);
transform: rotate(-45deg) translate3d(5px, -5px, 0);
}
.btn-close .line-02 {
-webkit-transform: translate3d(50px, 0, 0);
transform: translate3d(50px, 0, 0);
}
.mb-nav-wrapper{
position: absolute;
top: 64px;
z-index: 99;
background-color: #fff;
box-shadow: 0px 1px 2px #999;
display: none;
}
.mb-nav-wrapper.show{
display: block;
}
.mb-nav-container a{
display: block;
box-sizing: border-box;
padding: 10px;
line-height: 22px;
font-size: 14px;
text-decoration: none;
color: #000;
user-select: none;
}
.tips-top-wrapper{
width: 40px;
height: 40px;
background: #d4d4d4;
margin-bottom: .5rem;
cursor: pointer;
transition: all .4s;
border-radius: 2px;
box-shadow: 2px 2px 2px #000;
position: fixed;
bottom: 20px;
right: 20px;
z-index: 99;
}
.tips-top-wrapper:hover{
background: #000;
}
.tip-top-container{
display: block;
width: 100%;
height: 100%;
text-align: center;
line-height: 48px;
position: relative;
}
.tip-top-container span{
width: 2px;
height: 16px;
background: #fff;
display: block;
position: absolute;
}
.tip-top-container .l-bar{
transform: rotateZ(45deg);
-ms-transform: rotateZ(45deg);
-webkit-transform: rotateZ(45deg);
left: 14px;
top: 12px;
}
.tip-top-container .r-bar{
transform: rotateZ(-45deg);
-ms-transform: rotateZ(-45deg);
-webkit-transform: rotateZ(-45deg);
left: 25px;
top: 12px;
}
/****************************/
@media screen and (min-width: 901px) and (max-width: 1400px){
.container,
.sub-container{
width: 892px;
}
.post-i-wrapper{
margin: 26px 26px 26px 0;
}
.post-i-wrapper:nth-child(3n){
margin-right: 0;
}
}
@media screen and (min-width: 769px) and (max-width: 900px){
.container,
.sub-container{
width: 586px;
}
.post-i-wrapper{
margin: 26px 26px 26px 0;
}
.post-i-wrapper:nth-child(2n){
margin-right: 0;
}
.nav-wrapper a{
padding: 22px 12px;
}
.menu-wrapper a{
padding: 10px 8px;
}
.post-banner-container .title{
font-size: 24px;
}
}
@media screen and (max-width: 768px){
.container,
.sub-container{
width: 100%;
}
.list-container{
box-sizing: border-box;
padding: 10px 2px;
}
.post-i-wrapper{
height: 320px;
width: 100%;
margin: 26px 0;
}
.post-i-wrapper .cover{
height: 193px;
}
.logo .title{
padding: 0 10px;
}
.nav-wrapper{
display: none;
}
.logo{
width: 140px;
}
.btn-menu{
display: block;
}
.post-banner{
height: 200px;
}
.post-banner-container .title{
margin-top: 80px;
font-size: 18px;
line-height: 24px;
}
.post-banner-container .tips{
font-size: 12px;
}
.post-content{
font-size: 14px;
}
.menu-wrapper{
box-sizing: border-box;
padding: 0 10px;
}
.menu-wrapper a{
padding: 8px;
font-size: 14px;
}
}
@media screen and ( min-width:1401px){
.post-i-wrapper{
margin: 26px 26px 26px 0;
}
.post-i-wrapper:nth-child(4n){
margin-right: 0;
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,446 +0,0 @@
html {
-ms-text-size-adjust: 100%;
}
article, aside, footer, header, nav, section {
display: block;
}
figcaption, figure, main {
display: block;
}
figure {
margin: 1em 40px;
}
hr {
overflow: visible;
}
a {
background-color: transparent;
-webkit-text-decoration-skip: object;
}
mark {
background-color: #ff0;
color: #000;
}
audio, video {
display: inline-block;
}
img {
border-style: none;
max-width: 100%;
}
svg:not(:root) {
overflow: hidden;
}
button, input {
overflow: visible;
}
button, select {
text-transform: none;
}
legend {
box-sizing: border-box;
color: inherit;
display: table;
max-width: 100%;
white-space: normal;
}
progress {
display: inline-block;
}
blockquote{
background: #ecf0f1;
margin: 0;
padding: 2px 10px;
font-style: italic;
box-sizing: border-box;
}
textarea {
overflow: auto;
}
[type="checkbox"], [type="radio"] {
box-sizing: border-box;
padding: 0;
}
details, menu {
display: list-item;
}
canvas {
display: inline-block;
}
[type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
button, input, optgroup, select, textarea {
-webkit-appearance: none;
-webkit-tap-highlight-color: transparent;
}
a {
-webkit-tap-highlight-color: transparent;
}
/**
* Correct the style in all browsers.
*/
html {
font-family: "Helvetica Neue", Helvetica, STHeiTi, "Microsoft Yahei", sans-serif;
line-height: 1.15;
-webkit-text-size-adjust: 100%;
}
body {
margin: 0;
}
h1 {
font-size: 2em;
margin: 0.67em 0;
}
hr {
box-sizing: content-box;
height: 0;
}
pre {
overflow: scroll;
font-family: monospace, monospace;
font-size: 1em;
}
a:active, a:hover {
outline-width: 0;
}
abbr[title] {
border-bottom: none;
text-decoration: underline;
text-decoration: underline dotted;
}
b, strong {
font-weight: bolder;
}
code, kbd, samp {
font-family: monospace, monospace;
font-size: 1em;
}
dfn {
font-style: italic;
}
small {
font-size: 80%;
}
sub, sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
audio:not([controls]) {
display: none;
height: 0;
}
button, input, optgroup, select, textarea {
font-family: sans-serif;
font-size: 100%;
line-height: 1.15;
margin: 0;
}
button, html [type="button"], [type="reset"], [type="submit"] {
-webkit-appearance: button;
}
button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
legend {
padding: 0;
}
progress {
vertical-align: baseline;
}
[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button {
height: auto;
}
[type="search"] {
-webkit-appearance: textfield;
outline-offset: -2px;
}
::-webkit-file-upload-button {
-webkit-appearance: button;
font: inherit;
}
details, summary {
display: list-item;
}
code,
pre {
font-size: 0.8em;
background-color: #ecf0f1;
font-family: 'Roboto Mono', Monaco, courier, monospace;
}
code {
padding: 0.1em 0.4em;
background-color: #ecf0f1;
border-radius: 3px;
}
pre .line {
min-height: 1em;
}
.highlight {
position: relative;
margin: 1em 0;
border-radius: 2px;
line-height: 1.1em;
background-color: #ecf0f1;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.highlight figcaption {
font-size: .9em;
padding: .4em;
border-bottom: 1px solid #bdc3c7;
}
.highlight table, .highlight tr, .highlight td {
width: 100%;
border-collapse: collapse;
padding: 0;
margin: 0;
}
.highlight .gutter {
display: none;
}
.highlight .code pre {
padding: 1.2em 1.4em;
line-height: 1.5em;
margin: 0;
}
.highlight.html .code:after, .highlight.js .code:after, .highlight.bash .code:after, .highlight.css .code:after, .highlight.scss .code:after, .highlight.diff .code:after, .highlight.java .code:after, .highlight.xml .code:after, .highlight.python .code:after, .highlight.json .code:after, .highlight.swift .code:after, .highlight.ruby .code:after, .highlight.perl .code:after, .highlight.php .code:after, .highlight.c .code:after, .highlight.cpp .code:after, .highlight.ts .code:after {
position: absolute;
top: 0;
right: 0;
color: #bdc3c7;
text-align: right;
font-size: 0.75em;
padding: 5px 10px 0;
line-height: 15px;
height: 15px;
font-weight: 600;
}
.highlight.html .code:after {
content: "HTML";
}
.highlight.js .code:after {
content: "JS";
}
.highlight.bash .code:after {
content: "BASH";
}
.highlight.css .code:after {
content: "CSS";
}
.highlight.scss .code:after {
content: "SCSS";
}
.highlight.diff .code:after {
content: "DIFF";
}
.highlight.java .code:after {
content: "JAVA";
}
.highlight.xml .code:after {
content: "XML";
}
.highlight.python .code:after {
content: "PYTHON";
}
.highlight.json .code:after {
content: "JSON";
}
.highlight.swift .code:after {
content: "SWIFT";
}
.highlight.ruby .code:after {
content: "RUBY";
}
.highlight.perl .code:after {
content: "PERL";
}
.highlight.php .code:after {
content: "PHP";
}
.highlight.c .code:after {
content: "C";
}
.highlight.java .code:after {
content: "JAVA";
}
.highlight.cpp .code:after {
content: "CPP";
}
.highlight.ts .code:after {
content: "TS";
}
.highlight.cpp .code:after {
content: 'C++';
}
pre {
color: #34495e;
}
pre .function .keyword,
pre .constant {
color: #3498db;
}
pre .keyword,
pre .attribute {
color: #e96900;
}
pre .number,
pre .literal {
color: #8e44ad;
}
pre .tag,
pre .tag .title,
pre .change,
pre .winutils,
pre .flow,
pre .lisp .title,
pre .clojure .built_in,
pre .nginx .title,
pre .tex .special {
color: #2980b9;
}
pre .symbol,
pre .symbol .string,
pre .value,
pre .regexp {
color: #1abc9c;
}
pre .title {
color: #2ecc71;
}
pre .tag .value,
pre .string,
pre .subst,
pre .haskell .type,
pre .preprocessor,
pre .ruby .class .parent,
pre .built_in,
pre .sql .aggregate,
pre .django .template_tag,
pre .django .variable,
pre .smalltalk .class,
pre .javadoc,
pre .django .filter .argument,
pre .smalltalk .localvars,
pre .smalltalk .array,
pre .attr_selector,
pre .pseudo,
pre .addition,
pre .stream,
pre .envvar,
pre .apache .tag,
pre .apache .cbracket,
pre .tex .command,
pre .prompt {
color: #1abc9c;
}
pre .comment,
pre .java .annotation,
pre .python .decorator,
pre .template_comment,
pre .pi,
pre .doctype,
pre .shebang,
pre .apache .sqbracket,
pre .tex .formula {
color: #95a5a6;
}
pre .deletion {
color: #c0392b;
}
pre .coffeescript .javascript,
pre .javascript .xml,
pre .tex .formula,
pre .xml .javascript,
pre .xml .vbscript,
pre .xml .css,
pre .xml .cdata {
opacity: 0.5;
}

View File

@@ -1,166 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="Python入门,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="Python入门 | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>Python入门 | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="banner-wrapper">
<div class="container banner-container"></div>
</section>
<section class="wrapper menu-wrapper">
<nav class="container">
<a href="/" class="">全部文章</a><a href="/fly/Python入门/" class="active" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a><a href="/fly/飞蟒微课堂/" class="" title="飞蟒微课堂">飞蟒微课堂</a><a href="/fly/自然语言处理/cs224n/" class="" title="cs224n">cs224n</a><a href="/fly/飞蟒微课堂/LeetCode/" class="" title="LeetCode">LeetCode</a>
</nav>
</section>
<div class="wrapper index-wrapper">
<ul class="container list-container">
<li class="post-i-wrapper">
<a href="/article/python-tutorial-03/" class="wrapper post-i-link" title="Python正则15分钟入门">
<div class="wrapper cover">
<img src="/images/tutorial3.png" alt="Python正则15分钟入门">
</div>
<h3 class="wrapper title" title="Python正则15分钟入门">Python正则15分钟入门</h3>
<p class="wrapper subtitle">
Python入门教程
</p>
<div class="wrapper time">2019-02-03</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-tutorial-02/" class="wrapper post-i-link" title="潘石屹我们为什么要学习Python语言">
<div class="wrapper cover">
<img src="/images/tutorial2.png" alt="潘石屹我们为什么要学习Python语言">
</div>
<h3 class="wrapper title" title="潘石屹我们为什么要学习Python语言">潘石屹我们为什么要学习Python语言</h3>
<p class="wrapper subtitle">
Python入门教程
</p>
<div class="wrapper time">2019-02-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-tutorial-01/" class="wrapper post-i-link" title="你是如何自学Python的">
<div class="wrapper cover">
<img src="/images/tutorial1.png" alt="你是如何自学Python的">
</div>
<h3 class="wrapper title" title="你是如何自学Python的">你是如何自学Python的</h3>
<p class="wrapper subtitle">
Python入门教程
</p>
<div class="wrapper time">2019-02-01</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/about/" class="wrapper post-i-link" title="关于我们">
<div class="wrapper cover">
<img src="/images/flypython.png" alt="关于我们">
</div>
<h3 class="wrapper title" title="关于我们">关于我们</h3>
<p class="wrapper subtitle">
关于飞蟒Python
</p>
<div class="wrapper time">2018-01-01</div>
</a>
</li>
</ul>
</div>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,140 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="Python新特性,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="Python新特性 | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>Python新特性 | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="banner-wrapper">
<div class="container banner-container"></div>
</section>
<section class="wrapper menu-wrapper">
<nav class="container">
<a href="/" class="">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="active" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a><a href="/fly/飞蟒微课堂/" class="" title="飞蟒微课堂">飞蟒微课堂</a><a href="/fly/自然语言处理/cs224n/" class="" title="cs224n">cs224n</a><a href="/fly/飞蟒微课堂/LeetCode/" class="" title="LeetCode">LeetCode</a>
</nav>
</section>
<div class="wrapper index-wrapper">
<ul class="container list-container">
<li class="post-i-wrapper">
<a href="/article/python-new-02/" class="wrapper post-i-link" title="Python 3.8新特性——仅限位置形参">
<div class="wrapper cover">
<img src="/images/new-02.png" alt="Python 3.8新特性——仅限位置形参">
</div>
<h3 class="wrapper title" title="Python 3.8新特性——仅限位置形参">Python 3.8新特性——仅限位置形参</h3>
<p class="wrapper subtitle">
介绍Python语言新的特性
</p>
<div class="wrapper time">2019-04-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-new-01/" class="wrapper post-i-link" title="Python 3.8新特性——赋值表达式">
<div class="wrapper cover">
<img src="/images/new-01.png" alt="Python 3.8新特性——赋值表达式">
</div>
<h3 class="wrapper title" title="Python 3.8新特性——赋值表达式">Python 3.8新特性——赋值表达式</h3>
<p class="wrapper subtitle">
介绍Python语言新的特性
</p>
<div class="wrapper time">2019-04-01</div>
</a>
</li>
</ul>
</div>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,179 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="自动化办公,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="自动化办公 | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>自动化办公 | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="banner-wrapper">
<div class="container banner-container"></div>
</section>
<section class="wrapper menu-wrapper">
<nav class="container">
<a href="/" class="">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="active" title="自动化办公">自动化办公</a><a href="/fly/飞蟒微课堂/" class="" title="飞蟒微课堂">飞蟒微课堂</a><a href="/fly/自然语言处理/cs224n/" class="" title="cs224n">cs224n</a><a href="/fly/飞蟒微课堂/LeetCode/" class="" title="LeetCode">LeetCode</a>
</nav>
</section>
<div class="wrapper index-wrapper">
<ul class="container list-container">
<li class="post-i-wrapper">
<a href="/article/python-oa-05/" class="wrapper post-i-link" title="Python读取PDF图片">
<div class="wrapper cover">
<img src="/images/oa4.jpg" alt="Python读取PDF图片">
</div>
<h3 class="wrapper title" title="Python读取PDF图片">Python读取PDF图片</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-05</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-oa-04/" class="wrapper post-i-link" title="Python读取PDF文字和表格">
<div class="wrapper cover">
<img src="/images/oa4.jpg" alt="Python读取PDF文字和表格">
</div>
<h3 class="wrapper title" title="Python读取PDF文字和表格">Python读取PDF文字和表格</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-04</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-oa-03/" class="wrapper post-i-link" title="Python批量转换任意文档格式">
<div class="wrapper cover">
<img src="/images/oa3.jpg" alt="Python批量转换任意文档格式">
</div>
<h3 class="wrapper title" title="Python批量转换任意文档格式">Python批量转换任意文档格式</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-03</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-oa-02/" class="wrapper post-i-link" title="Python写入Word文档">
<div class="wrapper cover">
<img src="/images/oa2.jpg" alt="Python写入Word文档">
</div>
<h3 class="wrapper title" title="Python写入Word文档">Python写入Word文档</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-oa-01/" class="wrapper post-i-link" title="Python写入Excel表格">
<div class="wrapper cover">
<img src="/images/oa1.jpg" alt="Python写入Excel表格">
</div>
<h3 class="wrapper title" title="Python写入Excel表格">Python写入Excel表格</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-01</div>
</a>
</li>
</ul>
</div>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,140 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="cs224n,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="cs224n | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>cs224n | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="banner-wrapper">
<div class="container banner-container"></div>
</section>
<section class="wrapper menu-wrapper">
<nav class="container">
<a href="/" class="">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a><a href="/fly/飞蟒微课堂/" class="" title="飞蟒微课堂">飞蟒微课堂</a><a href="/fly/自然语言处理/cs224n/" class="active" title="cs224n">cs224n</a><a href="/fly/飞蟒微课堂/LeetCode/" class="" title="LeetCode">LeetCode</a>
</nav>
</section>
<div class="wrapper index-wrapper">
<ul class="container list-container">
<li class="post-i-wrapper">
<a href="/article/python-cs224n-02/" class="wrapper post-i-link" title="cs224n 解答拾遗word embedding 之SVD分解">
<div class="wrapper cover">
<img src="/images/cs224n-02.png" alt="cs224n 解答拾遗word embedding 之SVD分解">
</div>
<h3 class="wrapper title" title="cs224n 解答拾遗word embedding 之SVD分解">cs224n 解答拾遗word embedding 之SVD分解</h3>
<p class="wrapper subtitle">
cs224n解答
</p>
<div class="wrapper time">2020-01-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-cs224n-01/" class="wrapper post-i-link" title="cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量">
<div class="wrapper cover">
<img src="/images/cs224n-01.png" alt="cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量">
</div>
<h3 class="wrapper title" title="cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量">cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量</h3>
<p class="wrapper subtitle">
cs224n解答
</p>
<div class="wrapper time">2020-01-01</div>
</a>
</li>
</ul>
</div>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,153 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="自然语言处理,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="自然语言处理 | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>自然语言处理 | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="banner-wrapper">
<div class="container banner-container"></div>
</section>
<section class="wrapper menu-wrapper">
<nav class="container">
<a href="/" class="">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="active" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a><a href="/fly/飞蟒微课堂/" class="" title="飞蟒微课堂">飞蟒微课堂</a><a href="/fly/自然语言处理/cs224n/" class="" title="cs224n">cs224n</a><a href="/fly/飞蟒微课堂/LeetCode/" class="" title="LeetCode">LeetCode</a>
</nav>
</section>
<div class="wrapper index-wrapper">
<ul class="container list-container">
<li class="post-i-wrapper">
<a href="/article/python-cs224n-02/" class="wrapper post-i-link" title="cs224n 解答拾遗word embedding 之SVD分解">
<div class="wrapper cover">
<img src="/images/cs224n-02.png" alt="cs224n 解答拾遗word embedding 之SVD分解">
</div>
<h3 class="wrapper title" title="cs224n 解答拾遗word embedding 之SVD分解">cs224n 解答拾遗word embedding 之SVD分解</h3>
<p class="wrapper subtitle">
cs224n解答
</p>
<div class="wrapper time">2020-01-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-cs224n-01/" class="wrapper post-i-link" title="cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量">
<div class="wrapper cover">
<img src="/images/cs224n-01.png" alt="cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量">
</div>
<h3 class="wrapper title" title="cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量">cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量</h3>
<p class="wrapper subtitle">
cs224n解答
</p>
<div class="wrapper time">2020-01-01</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-nlp-01/" class="wrapper post-i-link" title="使用 Python 生成《红楼梦》词云">
<div class="wrapper cover">
<img src="/images/nlp1.png" alt="使用 Python 生成《红楼梦》词云">
</div>
<h3 class="wrapper title" title="使用 Python 生成《红楼梦》词云">使用 Python 生成《红楼梦》词云</h3>
<p class="wrapper subtitle">
Python自然语言处理教程
</p>
<div class="wrapper time">2019-03-01</div>
</a>
</li>
</ul>
</div>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,166 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="LeetCode,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="LeetCode | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>LeetCode | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="banner-wrapper">
<div class="container banner-container"></div>
</section>
<section class="wrapper menu-wrapper">
<nav class="container">
<a href="/" class="">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a><a href="/fly/飞蟒微课堂/" class="" title="飞蟒微课堂">飞蟒微课堂</a><a href="/fly/自然语言处理/cs224n/" class="" title="cs224n">cs224n</a><a href="/fly/飞蟒微课堂/LeetCode/" class="active" title="LeetCode">LeetCode</a>
</nav>
</section>
<div class="wrapper index-wrapper">
<ul class="container list-container">
<li class="post-i-wrapper">
<a href="/article/python-leetcode-lcci0102/" class="wrapper post-i-link" title="LCCI 01.02.判定是否互为字符重排">
<div class="wrapper cover">
<img src="/images/leetcode-0102.png" alt="LCCI 01.02.判定是否互为字符重排">
</div>
<h3 class="wrapper title" title="LCCI 01.02.判定是否互为字符重排">LCCI 01.02.判定是否互为字符重排</h3>
<p class="wrapper subtitle">
LeetCode刷题计划
</p>
<div class="wrapper time">2020-02-26</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-leetcode-lcci0101/" class="wrapper post-i-link" title="LCCI 01.01.判定字符是否唯一">
<div class="wrapper cover">
<img src="/images/leetcode-0101.png" alt="LCCI 01.01.判定字符是否唯一">
</div>
<h3 class="wrapper title" title="LCCI 01.01.判定字符是否唯一">LCCI 01.01.判定字符是否唯一</h3>
<p class="wrapper subtitle">
LeetCode刷题计划
</p>
<div class="wrapper time">2020-02-25</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-leetcode-0000/" class="wrapper post-i-link" title="0000.为什么需要复杂度分析">
<div class="wrapper cover">
<img src="/images/leetcode-0000.png" alt="0000.为什么需要复杂度分析">
</div>
<h3 class="wrapper title" title="0000.为什么需要复杂度分析">0000.为什么需要复杂度分析</h3>
<p class="wrapper subtitle">
LeetCode刷题计划第0篇
</p>
<div class="wrapper time">2020-02-24</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-class-02/" class="wrapper post-i-link" title="飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划">
<div class="wrapper cover">
<img src="/images/class-02.png" alt="飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划">
</div>
<h3 class="wrapper title" title="飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划">飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划</h3>
<p class="wrapper subtitle">
LeetCode刷题计划启动啦
</p>
<div class="wrapper time">2020-01-02</div>
</a>
</li>
</ul>
</div>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,179 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="飞蟒微课堂,FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="飞蟒微课堂 | FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>飞蟒微课堂 | FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="banner-wrapper">
<div class="container banner-container"></div>
</section>
<section class="wrapper menu-wrapper">
<nav class="container">
<a href="/" class="">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a><a href="/fly/飞蟒微课堂/" class="active" title="飞蟒微课堂">飞蟒微课堂</a><a href="/fly/自然语言处理/cs224n/" class="" title="cs224n">cs224n</a><a href="/fly/飞蟒微课堂/LeetCode/" class="" title="LeetCode">LeetCode</a>
</nav>
</section>
<div class="wrapper index-wrapper">
<ul class="container list-container">
<li class="post-i-wrapper">
<a href="/article/python-leetcode-lcci0102/" class="wrapper post-i-link" title="LCCI 01.02.判定是否互为字符重排">
<div class="wrapper cover">
<img src="/images/leetcode-0102.png" alt="LCCI 01.02.判定是否互为字符重排">
</div>
<h3 class="wrapper title" title="LCCI 01.02.判定是否互为字符重排">LCCI 01.02.判定是否互为字符重排</h3>
<p class="wrapper subtitle">
LeetCode刷题计划
</p>
<div class="wrapper time">2020-02-26</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-leetcode-lcci0101/" class="wrapper post-i-link" title="LCCI 01.01.判定字符是否唯一">
<div class="wrapper cover">
<img src="/images/leetcode-0101.png" alt="LCCI 01.01.判定字符是否唯一">
</div>
<h3 class="wrapper title" title="LCCI 01.01.判定字符是否唯一">LCCI 01.01.判定字符是否唯一</h3>
<p class="wrapper subtitle">
LeetCode刷题计划
</p>
<div class="wrapper time">2020-02-25</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-leetcode-0000/" class="wrapper post-i-link" title="0000.为什么需要复杂度分析">
<div class="wrapper cover">
<img src="/images/leetcode-0000.png" alt="0000.为什么需要复杂度分析">
</div>
<h3 class="wrapper title" title="0000.为什么需要复杂度分析">0000.为什么需要复杂度分析</h3>
<p class="wrapper subtitle">
LeetCode刷题计划第0篇
</p>
<div class="wrapper time">2020-02-24</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-class-02/" class="wrapper post-i-link" title="飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划">
<div class="wrapper cover">
<img src="/images/class-02.png" alt="飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划">
</div>
<h3 class="wrapper title" title="飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划">飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划</h3>
<p class="wrapper subtitle">
LeetCode刷题计划启动啦
</p>
<div class="wrapper time">2020-01-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-class-01/" class="wrapper post-i-link" title="为什么在今年你需要学习Python">
<div class="wrapper cover">
<img src="/images/class-01.png" alt="为什么在今年你需要学习Python">
</div>
<h3 class="wrapper title" title="为什么在今年你需要学习Python">为什么在今年你需要学习Python</h3>
<p class="wrapper subtitle">
飞蟒微课堂正式开班
</p>
<div class="wrapper time">2020-01-01</div>
</a>
</li>
</ul>
</div>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

14
hugo.toml Normal file
View File

@@ -0,0 +1,14 @@
baseURL = 'https://flypython.com'
languageCode = 'en-us'
title = 'flypython'
theme = ["reveal-hugo"]
[markup.goldmark.renderer]
unsafe = true
[outputFormats.Reveal]
baseName = "index"
mediaType = "text/html"
isHTML = true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 338 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 497 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 405 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 309 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

View File

@@ -1,361 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<head><meta name="generator" content="Hexo 3.9.0">
<!-- Title -->
<meta charset="utf-8">
<meta name="applicable-device" content="pc,mobile">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="author" content="flypython">
<meta name="designer" content="flypython">
<meta name="keywords" content="FlyPython - 专业的Python学习社区,flypython, 飞蟒飞蟒PythonPython入门Python自动化Python日报">
<meta property="og:title" content="FlyPython - 专业的Python学习社区">
<meta property="og:site_name" content="http://www.flypython.com">
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织我们致力于为用户提供高效有趣的学习环境打造专注于Python的中文学习社区">
<meta name="rating" content="general">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="robots" content="index, follow">
<link rel="icon" href="/images/favicon.ico">
<title>FlyPython - 专业的Python学习社区</title>
<link rel="stylesheet" href="/css/f25.css">
<link rel="stylesheet" href="/css/highlight.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-147288599-1');
</script>
</head>
</head>
<body>
<header class="wrapper header-wrapper">
<div class="container header-nav-wrapper">
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
<nav class="nav-wrapper">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
<span class="btn-menu" id="J_header_menu">
<div class="inner">
<span class="line line-01"></span>
<span class="line line-02"></span>
<span class="line line-03"></span>
</div>
</span>
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
<nav class="wrapper mb-nav-container">
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
<a href="https://github.com/flypythoncom" title="Github">Github</a>
<a href="/article/about" title="关于">关于</a>
</nav>
</div>
</div>
</header>
<section class="body-wrapper">
<section class="banner-wrapper">
<div class="container banner-container"></div>
</section>
<section class="wrapper menu-wrapper">
<nav class="container">
<a href="/" class="active">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a><a href="/fly/飞蟒微课堂/" class="" title="飞蟒微课堂">飞蟒微课堂</a><a href="/fly/自然语言处理/cs224n/" class="" title="cs224n">cs224n</a><a href="/fly/飞蟒微课堂/LeetCode/" class="" title="LeetCode">LeetCode</a>
</nav>
</section>
<div class="wrapper index-wrapper">
<ul class="container list-container">
<li class="post-i-wrapper">
<a href="/article/python-leetcode-lcci0102/" class="wrapper post-i-link" title="LCCI 01.02.判定是否互为字符重排">
<div class="wrapper cover">
<img src="/images/leetcode-0102.png" alt="LCCI 01.02.判定是否互为字符重排">
</div>
<h3 class="wrapper title" title="LCCI 01.02.判定是否互为字符重排">LCCI 01.02.判定是否互为字符重排</h3>
<p class="wrapper subtitle">
LeetCode刷题计划
</p>
<div class="wrapper time">2020-02-26</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-leetcode-lcci0101/" class="wrapper post-i-link" title="LCCI 01.01.判定字符是否唯一">
<div class="wrapper cover">
<img src="/images/leetcode-0101.png" alt="LCCI 01.01.判定字符是否唯一">
</div>
<h3 class="wrapper title" title="LCCI 01.01.判定字符是否唯一">LCCI 01.01.判定字符是否唯一</h3>
<p class="wrapper subtitle">
LeetCode刷题计划
</p>
<div class="wrapper time">2020-02-25</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-leetcode-0000/" class="wrapper post-i-link" title="0000.为什么需要复杂度分析">
<div class="wrapper cover">
<img src="/images/leetcode-0000.png" alt="0000.为什么需要复杂度分析">
</div>
<h3 class="wrapper title" title="0000.为什么需要复杂度分析">0000.为什么需要复杂度分析</h3>
<p class="wrapper subtitle">
LeetCode刷题计划第0篇
</p>
<div class="wrapper time">2020-02-24</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-class-02/" class="wrapper post-i-link" title="飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划">
<div class="wrapper cover">
<img src="/images/class-02.png" alt="飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划">
</div>
<h3 class="wrapper title" title="飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划">飞蟒微课堂Python面试专项课程启动——LeetCode刷题计划</h3>
<p class="wrapper subtitle">
LeetCode刷题计划启动啦
</p>
<div class="wrapper time">2020-01-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-cs224n-02/" class="wrapper post-i-link" title="cs224n 解答拾遗word embedding 之SVD分解">
<div class="wrapper cover">
<img src="/images/cs224n-02.png" alt="cs224n 解答拾遗word embedding 之SVD分解">
</div>
<h3 class="wrapper title" title="cs224n 解答拾遗word embedding 之SVD分解">cs224n 解答拾遗word embedding 之SVD分解</h3>
<p class="wrapper subtitle">
cs224n解答
</p>
<div class="wrapper time">2020-01-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-cs224n-01/" class="wrapper post-i-link" title="cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量">
<div class="wrapper cover">
<img src="/images/cs224n-01.png" alt="cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量">
</div>
<h3 class="wrapper title" title="cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量">cs224n 解答拾遗: 为何word2vec 训练的时候每个词有两个不同的向量</h3>
<p class="wrapper subtitle">
cs224n解答
</p>
<div class="wrapper time">2020-01-01</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-class-01/" class="wrapper post-i-link" title="为什么在今年你需要学习Python">
<div class="wrapper cover">
<img src="/images/class-01.png" alt="为什么在今年你需要学习Python">
</div>
<h3 class="wrapper title" title="为什么在今年你需要学习Python">为什么在今年你需要学习Python</h3>
<p class="wrapper subtitle">
飞蟒微课堂正式开班
</p>
<div class="wrapper time">2020-01-01</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-new-02/" class="wrapper post-i-link" title="Python 3.8新特性——仅限位置形参">
<div class="wrapper cover">
<img src="/images/new-02.png" alt="Python 3.8新特性——仅限位置形参">
</div>
<h3 class="wrapper title" title="Python 3.8新特性——仅限位置形参">Python 3.8新特性——仅限位置形参</h3>
<p class="wrapper subtitle">
介绍Python语言新的特性
</p>
<div class="wrapper time">2019-04-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-new-01/" class="wrapper post-i-link" title="Python 3.8新特性——赋值表达式">
<div class="wrapper cover">
<img src="/images/new-01.png" alt="Python 3.8新特性——赋值表达式">
</div>
<h3 class="wrapper title" title="Python 3.8新特性——赋值表达式">Python 3.8新特性——赋值表达式</h3>
<p class="wrapper subtitle">
介绍Python语言新的特性
</p>
<div class="wrapper time">2019-04-01</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-nlp-01/" class="wrapper post-i-link" title="使用 Python 生成《红楼梦》词云">
<div class="wrapper cover">
<img src="/images/nlp1.png" alt="使用 Python 生成《红楼梦》词云">
</div>
<h3 class="wrapper title" title="使用 Python 生成《红楼梦》词云">使用 Python 生成《红楼梦》词云</h3>
<p class="wrapper subtitle">
Python自然语言处理教程
</p>
<div class="wrapper time">2019-03-01</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-tutorial-03/" class="wrapper post-i-link" title="Python正则15分钟入门">
<div class="wrapper cover">
<img src="/images/tutorial3.png" alt="Python正则15分钟入门">
</div>
<h3 class="wrapper title" title="Python正则15分钟入门">Python正则15分钟入门</h3>
<p class="wrapper subtitle">
Python入门教程
</p>
<div class="wrapper time">2019-02-03</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-tutorial-02/" class="wrapper post-i-link" title="潘石屹我们为什么要学习Python语言">
<div class="wrapper cover">
<img src="/images/tutorial2.png" alt="潘石屹我们为什么要学习Python语言">
</div>
<h3 class="wrapper title" title="潘石屹我们为什么要学习Python语言">潘石屹我们为什么要学习Python语言</h3>
<p class="wrapper subtitle">
Python入门教程
</p>
<div class="wrapper time">2019-02-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-tutorial-01/" class="wrapper post-i-link" title="你是如何自学Python的">
<div class="wrapper cover">
<img src="/images/tutorial1.png" alt="你是如何自学Python的">
</div>
<h3 class="wrapper title" title="你是如何自学Python的">你是如何自学Python的</h3>
<p class="wrapper subtitle">
Python入门教程
</p>
<div class="wrapper time">2019-02-01</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-oa-05/" class="wrapper post-i-link" title="Python读取PDF图片">
<div class="wrapper cover">
<img src="/images/oa4.jpg" alt="Python读取PDF图片">
</div>
<h3 class="wrapper title" title="Python读取PDF图片">Python读取PDF图片</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-05</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-oa-04/" class="wrapper post-i-link" title="Python读取PDF文字和表格">
<div class="wrapper cover">
<img src="/images/oa4.jpg" alt="Python读取PDF文字和表格">
</div>
<h3 class="wrapper title" title="Python读取PDF文字和表格">Python读取PDF文字和表格</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-04</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-oa-03/" class="wrapper post-i-link" title="Python批量转换任意文档格式">
<div class="wrapper cover">
<img src="/images/oa3.jpg" alt="Python批量转换任意文档格式">
</div>
<h3 class="wrapper title" title="Python批量转换任意文档格式">Python批量转换任意文档格式</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-03</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-oa-02/" class="wrapper post-i-link" title="Python写入Word文档">
<div class="wrapper cover">
<img src="/images/oa2.jpg" alt="Python写入Word文档">
</div>
<h3 class="wrapper title" title="Python写入Word文档">Python写入Word文档</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-02</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/python-oa-01/" class="wrapper post-i-link" title="Python写入Excel表格">
<div class="wrapper cover">
<img src="/images/oa1.jpg" alt="Python写入Excel表格">
</div>
<h3 class="wrapper title" title="Python写入Excel表格">Python写入Excel表格</h3>
<p class="wrapper subtitle">
极简Python自动化办公系列
</p>
<div class="wrapper time">2019-01-01</div>
</a>
</li>
<li class="post-i-wrapper">
<a href="/article/about/" class="wrapper post-i-link" title="关于我们">
<div class="wrapper cover">
<img src="/images/flypython.png" alt="关于我们">
</div>
<h3 class="wrapper title" title="关于我们">关于我们</h3>
<p class="wrapper subtitle">
关于飞蟒Python
</p>
<div class="wrapper time">2018-01-01</div>
</a>
</li>
</ul>
</div>
<div class="tips-top-wrapper">
<span class="tip-top-container" onclick="scrollToWindowTop()">
<span class="l-bar"></span>
<span class="r-bar"></span>
</span>
</div>
<footer class="wrapper footer-wrapper">
<div class="container"><span class="copyright">&copy; 2020 FlyPython . All Rights Reserved.</span></div>
</footer>
</section>
<script src="/js/f25.js"></script>
</body>
</html>

View File

@@ -1,66 +0,0 @@
/**
* [删除ClassName]
* @param {*} element
* @param {*} className
*/
function removeClassName(element , className){
if ( !hasClassName(element , className) ){
return element;
}
element.className = ' ' + element.className.trim() + ' ';
element.className = element.className.replace(' ' + className + ' ' , ' ').trim();
return element;
}
/**
* [添加className]
* @param {*} element
* @param {*} className
*/
function addClassName(element , className){
if ( hasClassName(element , className) ){
return element;
}
element.className = element.className.trim() + ' ' + className.trim();
return element;
}
/**
* [判断是否包含对应的className]
* @param {*} element
* @param {*} className
*/
function hasClassName(element , className){
if ( (' ' + element.className.trim() + ' ').indexOf(' ' + className.trim() + ' ') >= 0 ){
return true;
}
return false;
}
/**
* [scrollToWindowTop 返回顶部]
* @return {[type]} [description]
*/
function scrollToWindowTop(){
return window.scroll(0,0);
}
var closeClassName = 'btn-close';
var showClassName = 'show';
var headerMenu = document.querySelector('#J_header_menu');
var headerMenulist = document.querySelector('#J_header_menu_list');
if ( headerMenu && headerMenulist ){
//h5菜单栏展示
headerMenu.addEventListener('click' , (event)=>{
event.preventDefault();
event.stopPropagation();
if ( hasClassName(headerMenu , closeClassName) ){
removeClassName(headerMenulist , showClassName);
removeClassName(headerMenu , closeClassName);
}else{
addClassName(headerMenulist , showClassName);
addClassName(headerMenu , closeClassName);
}
});
}

20
js/gitalk.min.js vendored

File diff suppressed because one or more lines are too long