replace new website
78
.github/workflows/hugo.yaml
vendored
Normal 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
@@ -0,0 +1,5 @@
|
||||
+++
|
||||
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
|
||||
date = {{ .Date }}
|
||||
draft = true
|
||||
+++
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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>客服&合作: 微信号 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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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应用程序的理想选择。借助Django,Tornado,Flask等许多框架,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>Matplotlib,Seaborn(数据可视化)</li>
|
||||
<li>Scikit-learn(机器学习)</li>
|
||||
<li>Tensorflow,Keras,Pytorch(深度学习)</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应用程序的服务器端编程。我们使用HTML,CSS和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="步骤6:Python机器学习项目"><a href="#步骤6:Python机器学习项目" class="headerlink" title="步骤6:Python机器学习项目"></a>步骤6:Python机器学习项目</h4><p>环顾四周,思考可以解决哪些问题。创建一个项目构想列表,并从你学到的所有东西中构建出一些东西。通过集成所有内容来进行大型项目。你可以通过向用户提供某种形式的服务来构建机器学习模型并将其与网站集成。</p>
|
||||
<p>准备从头开始创建Python项目:</p>
|
||||
<ul>
|
||||
<li>虚假新闻检测</li>
|
||||
<li>音频情感识别</li>
|
||||
<li>聊天机器人</li>
|
||||
<li>交通标志识别</li>
|
||||
</ul>
|
||||
<p>我们会从最初的数据准备开始,构建机器学习pipeline,教你真正的机器学习项目实战。</p>
|
||||
<h4 id="步骤7:Python面试"><a href="#步骤7:Python面试" class="headerlink" title="步骤7:Python面试"></a>步骤7:Python面试</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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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 Vectors,ppt第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 Vectors,ppt第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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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为对称矩阵,也就是对中心词like,enjoy的出现次数是等于对于中心词enjoy,like的出现次数。</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>由线性代数基本知识可知,对于任意矩阵X(size $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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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) {</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 <= n; ++i) {</span><br><span class="line">5 sum = sum + i;</span><br><span class="line">6 }</span><br><span class="line">7 return sum;</span><br><span class="line">8 }</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>我们假设每一行代码的执行时间是相同的,为unit_time,那么这一段代码,第2,3行执行了一次,4,5行执行了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<n; i=i*2){</span><br><span class="line"> printf(i);</span><br><span class="line">}</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<=n; i++){</span><br><span class="line"> printf(i);</span><br><span class="line">}</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<=n; i++){</span><br><span class="line"> printf(i);</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line">for(int i=1; i<=m; i++){</span><br><span class="line"> printf(i);</span><br><span class="line">}</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<=n; i++){</span><br><span class="line"> for(int j=1; j<=n;j=j*2) {</span><br><span class="line"> printf(i,j);</span><br><span class="line"> }</span><br><span class="line">}</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<=n; i++){</span><br><span class="line"> for(int j=1; j<=n;j++) {</span><br><span class="line"> printf(i,j);</span><br><span class="line"> }</span><br><span class="line">}</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<=m; i++){</span><br><span class="line"> for(int j=1; j<=n;j++) {</span><br><span class="line"> printf(i,j);</span><br><span class="line"> }</span><br><span class="line">}</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<=math.pow(2,n); i++){</span><br><span class="line"> printf(i);</span><br><span class="line">}</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<=factorial(n); i++){</span><br><span class="line"> printf(i);</span><br><span class="line">}</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>以上两个代码例子分别为O(2^n)复杂度和O(n!)复杂度,指数复杂度和阶乘复杂度属于非多项式量级,我们把时间复杂度为非多项式量级的算法问题叫作 NP(Non-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<=n; ++i)</span><br><span class="line">{</span><br><span class="line"> printf(i);</span><br><span class="line">}</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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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 <= len(s) <= 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)<=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) -> bool:</span><br><span class="line"> return len(astr)== len(set(astr))</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>我们很容易想到hash计数的方法,经过测试,字符串中只出现’a’到’z’,26个小写字母,那只需要一个bool数组,直接统计出现的频率,判断是否重复。</p>
|
||||
<p>考虑到不使用额外的数据结构,那我们可以尝试使用bitmap,把数组换成一个整型数,按照位上0,1来判断是否重复。</p>
|
||||
<p>开始我们算出字符离最开始的字符’a’的距离,然后1移动这个距离来表示这个数。后面用一个测试变量来测试p,如果存在则返回False,如果不存在则写入。</p>
|
||||
<p>具体代码:</p>
|
||||
<pre><code>def isUnique(self, astr: str) -> bool:
|
||||
t = 0
|
||||
for c in astr:
|
||||
if t & (p := 1 << (ord(c) - ord('a'))):
|
||||
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) -> bool:</span><br><span class="line"> t = 0</span><br><span class="line"> for c in astr:</span><br><span class="line"> if t & (p := 1 << (ord(c) - ord('a'))):</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) -> 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) -> bool:</span><br><span class="line"> adict={}</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) -> 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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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 <= len(s1) <= 100<br>0 <= len(s2) <= 100</p>
|
||||
</blockquote>
|
||||
<h4 id="思路"><a href="#思路" class="headerlink" title="思路"></a>思路</h4><p>开始,我们还是先理解题意,确定是否区分大小写,是否忽略空白字符等。有了01.01题的hash计数0,1判断的经历,在这里很容易想到使用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) -> 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>我们测试了字符范围,发现是’a’到’z’,那么代码可以改成:</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) -> 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("a"),ord("z")+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) -> 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) -> 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 {</span><br><span class="line"> public boolean CheckPermutation(String s1, String s2) {</span><br><span class="line"> if(s1.length() != s2.length()) {</span><br><span class="line"> return false;</span><br><span class="line"> }</span><br><span class="line"> int s1Sum = 0, s2Sum = 0;</span><br><span class="line"> for(int i = 0; i < s1.length(); i++) {</span><br><span class="line"> s1Sum += s1.charAt(i);</span><br><span class="line"> s2Sum += s2.charAt(i);</span><br><span class="line"> }</span><br><span class="line"> return s1Sum == s2Sum;</span><br><span class="line"> }</span><br><span class="line">}</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>此解法主要是计算s1,s2字符和,比较字符和。这种解法的问题就是忽略了和相同,但数字并不同的情况,比如 3+7 == 2+8。</p>
|
||||
<p>除了计算s1,s2的字符和外,计算相对位移和,加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) -> 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) -> 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) -> 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) -> 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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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">>>> a = False</span><br><span class="line">>>> print(a)</span><br><span class="line">False</span><br><span class="line">>>> 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">>>> inputs = list()</span><br><span class="line">>>> while True:</span><br><span class="line">... current = input("your input:")</span><br><span class="line">... if current == "quit":</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">>>> inputs</span><br><span class="line">['a', 'b', 'test']</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">>>> inputs = list()</span><br><span class="line">>>> while (current := input("your input:")) != "quit":</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">>>> inputs</span><br><span class="line">['a', 'b', 'test']</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) > 3: #计算 len(a) 一次 </span><br><span class="line"> print(f"a is too long ({len(a)} elements,expected < 3)") # 计算 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 > 3: # 多了变量n</span><br><span class="line"> print(f"a is too long ({n} elements,expected < 3)") #</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)) > 3: # 计算一次len(a),多了变量n,把两行改为一行</span><br><span class="line"> print(f"a is too long ({n} elements,expected < 3)") #</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 > 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)) > 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"x = {x}")</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"y = {y}")</span><br><span class="line"></span><br><span class="line">(z := 5)</span><br><span class="line">print(f"z = {z}")</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("Received data:", 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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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">>>> import builtins</span><br><span class="line">>>> 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">>>> divmod(1,2)</span><br><span class="line">(0, 1)</span><br><span class="line">>>> divmod(x=1,y=2) </span><br><span class="line">Traceback (most recent call last):</span><br><span class="line"> File "<stdin>", line 1, in <module></span><br><span class="line">TypeError: divmod() takes no keyword arguments</span><br><span class="line">>>></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">>>> def f(a,b,/,**kwargs):</span><br><span class="line">... print(a,b,kwargs)</span><br><span class="line">...</span><br><span class="line">>>> f(10,20,a=1,b=2,c=3)</span><br><span class="line">10 20 {'a': 1, 'b': 2, 'c': 3}</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>由于在 <code>/</code> 左侧的形参不会被公开为可用关键字</p>
|
||||
<p>这里的a,b 为仅限位置参数,最后a,b会被赋值了两次。<br>位置参数赋值一次,关键字参数赋值一次,关键字参数以kwargs字典的形式存在,需要通过 <code>kwargs['a'],kwargs['b']</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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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'[,。、【 】“”:;()《》‘’{}?!⑦%>℃.^-——=&#@¥『』]'</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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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"></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的思路是,新建文件->指定行列->写入内容。</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"></span><br><span class="line"></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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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="张三"</span><br><span class="line">id_code="104111199009103531"</span><br><span class="line">career="工程师"</span><br><span class="line">working_years="10"</span><br><span class="line">salary="10000"</span><br><span class="line">salary_uppercase="壹万元整"</span><br><span class="line">contact="李四"</span><br><span class="line">company="格物厚德股份有限公司"</span><br><span class="line">address="珠海市横琴新区宝华路6号105室-67425"</span><br><span class="line">tel="0756-8627528"</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("个人收入证明.docx")</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 'XXXX' 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 'XXXX' in inline[i].text:</span><br><span class="line"> text = inline[i].text.replace('XXXX', 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("%s_个人收入证明.docx"%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('%Y{y}%m{m}%d{d}').format(y='年', m='月', d='日')</span><br><span class="line"></span><br><span class="line">xlsx=xlrd.open_workbook('income.xlsx')</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("个人收入证明.docx")</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 'XXXX' 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 'XXXX' in inline[i].text:</span><br><span class="line"> text = inline[i].text.replace('XXXX', textlist[count])</span><br><span class="line"> inline[i].text = text</span><br><span class="line"> count+=1</span><br><span class="line"> if 'X 年 X 月 X 日' 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 'X 年 X 月 X 日' in inline[i].text:</span><br><span class="line"> text = inline[i].text.replace('X 年 X 月 X 日', datestr)</span><br><span class="line"> inline[i].text = text</span><br><span class="line"></span><br><span class="line"> doc.save("%s_个人收入证明.docx"%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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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 > 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 "/bin/sh -c '/usr/bi…" 2 minutes ago Up 2 minutes 0.0.0.0:80->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 > 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 > 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('.')[0] + '.pdf'</span><br><span class="line"></span><br><span class="line"> m = MultipartEncoder(</span><br><span class="line"> fields= {</span><br><span class="line"> 'file':(filename,open(path,'rb')),</span><br><span class="line"> }</span><br><span class="line"> )</span><br><span class="line"> response = requests.request('POST', url, data=m, headers={'Content-Type':m.content_type})</span><br><span class="line"></span><br><span class="line"> with open(convert_name, 'wb') 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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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("test.pdf") 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">{'fontname': 'CRSMRF+PingFangTC-Semibold', 'adv': Decimal('1.000'), 'upright': 1, 'x0': Decimal('57.000'), 'y0': Decimal('751.840'), 'x1': Decimal('81.000'), 'y1': Decimal('779.776'), 'width': Decimal('24.000'), 'height': Decimal('27.936'), 'size': Decimal('27.936'), 'object_type': 'char', 'page_number': 1, 'text': '关', 'top': Decimal('62.224'), 'bottom': Decimal('90.160'), 'doctop': Decimal('62.224')}</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">{</span><br><span class="line"> "fontname":"CRSMRF+PingFangTC-Semibold",</span><br><span class="line"> "adv":"1.000",</span><br><span class="line"> "upright":1,</span><br><span class="line"> "x0":"57.000",</span><br><span class="line"> "y0":"751.840",</span><br><span class="line"> "x1":"81.000",</span><br><span class="line"> "y1":"779.776",</span><br><span class="line"> "width":"24.000",</span><br><span class="line"> "height":"27.936",</span><br><span class="line"> "size":"27.936",</span><br><span class="line"> "object_type":"char",</span><br><span class="line"> "page_number":1, #页数</span><br><span class="line"> "text":"关", #第一个文字</span><br><span class="line"> "top":"62.224",</span><br><span class="line"> "bottom":"90.160",</span><br><span class="line"> "doctop":"62.224"</span><br><span class="line">}</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("test.pdf") 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">客服&合作: 微信号 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("test.pdf") 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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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"/Type(?= */XObject)"</span><br><span class="line"> checkIM = r"/Subtype(?= */Image)"</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("文件名:{}, 页数: {}, 对象: {}".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('\\', '_') + "_img{}.png".format(img_count)</span><br><span class="line"> new_name = new_name.replace(':', '')</span><br><span class="line"></span><br><span class="line"> # 如果pix.n<5,可以直接存为PNG</span><br><span class="line"> if pix.n < 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("提取了{}张图片".format(img_count))</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">if __name__=='__main__':</span><br><span class="line"> pdf_path = r'test.pdf'</span><br><span class="line"> img_path = r'img'</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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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入门相对容易又可以干很多事(网站,>运维,数据,爬虫等),是一门方便的工具语言。<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有众多数据分析工具,知名数据分析比赛网站kaggle,90%以上的竞赛代码都是用python写成。大数据平台如spark、flink,python有完整的支持api可调用。</p>
|
||||
<h3 id="02-网站开发"><a href="#02-网站开发" class="headerlink" title="02 网站开发"></a>02 网站开发</h3><p>对于网站开发,Python的生态环境也可以支撑起重量级的产品。<br>国外的Youtube,Instagram,Pinterest,Reddit,Dropbox,Disqus, 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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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有众多数据分析工具,知名数据分析比赛网站kaggle,90%以上的竞赛代码都是用python写成。大数据平台如hadoop、spark、flink、beam,python有完整的支持api可调用。</p>
|
||||
<p>02.网站开发</p>
|
||||
<p>对于网站开发,Python的生态环境也可以支撑起重量级的产品。国外的Youtube,Instagram,Pinterest,Reddit,Dropbox,Disqus, 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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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>"[0-9]+"</code>是正则表达式,意思是匹配0-9的数字,<code>"+"</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{5}[12]\d{3}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])\d{3}[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'[,。、【 】“”:;()《》‘’{}?!⑦%>℃.^-——=&#@¥『』]'</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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
45
config.toml
Normal 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
@@ -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/)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 107 KiB |
503
css/f25.css
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
1211
css/gitalk.css
@@ -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;
|
||||
}
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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, 飞蟒,飞蟒Python,Python入门,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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
14
hugo.toml
Normal 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
|
||||
BIN
images/bg.png
|
Before Width: | Height: | Size: 223 KiB |
|
Before Width: | Height: | Size: 138 KiB |
BIN
images/bg_sm.png
|
Before Width: | Height: | Size: 161 KiB |
|
Before Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 212 KiB |
|
Before Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 338 KiB |
|
Before Width: | Height: | Size: 497 KiB |
|
Before Width: | Height: | Size: 405 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 44 KiB |
BIN
images/nlp1.png
|
Before Width: | Height: | Size: 309 KiB |
BIN
images/oa1.jpg
|
Before Width: | Height: | Size: 93 KiB |
BIN
images/oa2.jpg
|
Before Width: | Height: | Size: 33 KiB |
BIN
images/oa3.jpg
|
Before Width: | Height: | Size: 1.4 KiB |
BIN
images/oa4.jpg
|
Before Width: | Height: | Size: 8.6 KiB |
|
Before Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 85 KiB |
|
Before Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 40 KiB |
361
index.html
@@ -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, 飞蟒,飞蟒Python,Python入门,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">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
66
js/f25.js
@@ -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);
|
||||
}
|
||||
});
|
||||
}
|
||||