当前位置: 56net亚洲必嬴 > 编程 > 正文

那一个Python代码技术,你一定还不晓得

时间:2019-10-24 18:29来源:编程
被人工智能捧红的 Python已然是风姿罗曼蒂克种进步宏观且极度两种化的言语,在那之中分明有部分你从未意识的功能。本文只怕能够令你学到一些新本事。 正文来源本身的博客。博客

被人工智能捧红的 Python 已然是风姿罗曼蒂克种进步宏观且极度两种化的言语,在那之中分明有部分你从未意识的功能。本文只怕能够令你学到一些新本事。

www.56.net 1

正文来源 本身的博客。博客的稿子保持更新,此文大概不是新型状态。

Python 编码

  1. a = u'ab'
    b = "ab"
    怎么样互转?
  2. unicode声明
# -*- coding: utf-8 -*-
  1. join unicode

  2. 用chardet检验编码格式

Python 是社会风气上最盛行、火爆的编制程序语言之风流倜傥,原因非常多,举个例子:

Python是社会风气上最受款待,最流行的编制程序语言之黄金时代。那有一点成千上万缘故:

下载、解压 python 源代码

从 python.org 下载。

Python编码

  • 容命理术数习
  • 相当的高的通用性
  • 不无大量模块和库

它非常轻易学习

导入交叉编写翻译 patch

参考自 python-2.7-001-support-for-build.patch,2.7.11 的纠正地方有稍许扭转,详见如下 patch。

Python 固然采纳 autoconf,可是实际代码中早已包涵 configure 文件,因而下文代码给出的是改正 configure.ac 并执行 autoconf 后生成的 configure 文件。

patch 的运用方法,在 python 源代码根目录下奉行:

patch -p1 < ../0001-cross-compile.patch

python 2.7.11 交叉编写翻译 patch:

diff --git a/Makefile.pre.in b/Makefile.pre.in
index ee73edd..730db7e 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -237,7 +237,8 @@ LIBFFI_INCLUDEDIR=  @LIBFFI_INCLUDEDIR@

 ##########################################################################
 # Parser
-PGEN=      Parser/pgen$(EXE)
+BUILDPGEN=     Parser/pgen$(EXE)
+PGEN_FOR_BUILD=    @PGEN_FOR_BUILD@

 PSRCS=     
        Parser/acceler.c 
@@ -635,14 +636,14 @@ Modules/pwdmodule.o: $(srcdir)/Modules/pwdmodule.c $(srcdir)/Modules/posixmodule

 $(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGENSRCS)
        @$(MKDIR_P) Include
-       $(MAKE) $(PGEN)
-       $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
+       $(MAKE) $(BUILDPGEN)
+       $(PGEN_FOR_BUILD) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
 $(GRAMMAR_C): $(GRAMMAR_H) $(GRAMMAR_INPUT) $(PGENSRCS)
        $(MAKE) $(GRAMMAR_H)
        touch $(GRAMMAR_C)

-$(PGEN):   $(PGENOBJS)
-       $(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
+$(BUILDPGEN):  $(PGENOBJS)
+       $(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(BUILDPGEN)

 Parser/grammar.o:  $(srcdir)/Parser/grammar.c 
                $(srcdir)/Include/token.h 
diff --git a/configure b/configure
index 7dab897..bf16c0e 100755
--- a/configure
+++ b/configure
@@ -734,6 +734,7 @@ UNIVERSALSDK
 CONFIG_ARGS
 SOVERSION
 VERSION
+PGEN_FOR_BUILD
 PYTHON_FOR_BUILD
 host_os
 host_vendor
@@ -2911,6 +2912,13 @@ else
 fi


+if test "$cross_compiling" = yes; then
+    PGEN_FOR_BUILD="${PGEN_FOR_BUILD}"
+else
+    PGEN_FOR_BUILD='$(BUILDPGEN)'
+fi
+
+

 if test "$prefix" != "/"; then
     prefix=`echo "$prefix" | sed -e 's//$//g'`
@@ -6334,6 +6342,12 @@ fi


 # Enable PGO flags.
+
+
+
+
+
+
 # Extract the first word of "llvm-profdata", so it can be a program name with args.
 set dummy llvm-profdata; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-- 
1.9.1

类型

正文将享受部分使用 Python 的本领,顺序依照 A-Z 排列。

它是最棒多用途的

创建 build 目录

在 python 源代码下开创 build-pcbuild-mips 目录,分别用于编写翻译 PC pgen(交叉编写翻译时用到)与接力编写翻译 mips python。该目录做 configure、make、make install,编写翻译时用来保存有时变化的文件,保险 python 源代码干净。

python的函数性子

  1. map

 1.all or any

Python 非常受接待的缘故之一是其可读性和表明性。

人们还常常把 Python 笑称为「可进行伪码(executable pseudocode)」。不过,当您能够编写那样的代码时,很难去辩驳这种商量:

x = [True, True, False]
if any(x):
    print("At least one True")
if all(x):
    print("Not one False")
if any(x) and not all(x):
    print("At least one True and one False")

  

它有大气的模块和库

编写翻译本地 Python 与 pgen

用来生成 grammar 所急需文件用。

cd build-pc

../configure CC=gcc CXX=g++ AR=ar RANLIB=ranlib LDFLAGS="-L/usr/lib -L/usr/lib64 -L/usr/local/lib -L/usr/local/lib64" CFLAGS="-I/usr/include -I/usr/local/include"

make python Parser/pgen

pyquery

https://pypi.python.org/pypi/pyquery
api : http://pyquery.readthedocs.org/en/latest/api.html

TypeError: Type 'unicode' cannot be serialized.

给两个list,一个是word list, 一个是prefix list return 所有的word that have the prefix 例子: word list = [“a", "abc", "dz", "dda], prefix list = ["ab", "dd"] return ["abc", "dda"]

Python干货精选 http://baoz.me/446252
当自己说作者会Python时,实际上小编会了如何?

 2.bashplotlib

想在调控桃园绘图吗?

$ pip install bashplotlib

 

采纳方面的行,就能够在调整台北绘图。

 

用作数据物工学家的本身,每Smart用Python是自个儿内在干活的生龙活虎部分。在此个历程中,作者学会了有个别管用的技巧和体会。

配置

遍历目录

os.walk

import os,sys
for root, dirs, files in os.walk("."):
for f in files:
fullpath = "%s/%s" % (root, f)
if fullpath.endswith("java"):
print fullpath
#os.system("dos2unix " + fullpath)
temp = fullpath[:-1]
#command = "expand -t 4 " + fullpath + " > " + temp
command = "rm -rf " + fullpath
command = "sed -i 's/ *$//' " + fullpath
#print command
os.system(command)

3.collections

Python 有局地很棒的暗中认可数据类型,但偶然它们大概不会尽如你意。

然则,Python 标准库提供了 collections 模块。那个便利的增大组件可以为你提供更大多据类型。

collections 模块:https://docs.python.org/3/library/collections.html

from collections import OrderedDict, Counter
# Remembers the order the keys are added!
x = OrderedDict(a=1, b=2, c=3)
# Counts the frequency of each character
y = Counter("Hello World!")

   

在这里边,笔者尝试以A~Z顺序分享当中风流罗曼蒂克部分。

布局交叉编写翻译境况变量

比如 CC、CFLAGS、LDFLAGS 等。

性能:

High Performance Python: Practical Performant Programming for Humans

4.dir

你是或不是想过哪些查看 Python 对象内部及其具有什么等属性?

输入以下命令行:

>>> dir()
>>> dir("Hello World")
>>> dir(dir)

当以交互格局运营 Python 时,这说不定是一个十三分有效的效果与利益,并且能够动态地研讨你正在利用的目的和模块。

想要通晓更加多,点这里:https://docs.python.org/3/library/functions.html#dir

 

非常多那个“技术”是自己在平常专门的工作中动用或不时开采的职业。一些是作者在浏览Python规范库文书档案时开采的。别的一些是通过PyPi搜索到的。

configure 配置

配置命令如下:
configure 的 prefix 只扶持绝对路线。

cd build-mips

../configure --host=mips64-octeon-linux-gnu --build=x86_64-linux-gnu --prefix=/home/sunyongfeng/python-install --disable-ipv6 ac_cv_file__dev_ptmx=no ac_cv_file__dev_ptc=no ac_cv_have_long_long_format=yes PGEN_FOR_BUILD=../build-pc/Parse/pgen

问题:

  • --enable-FEATURE,不知底有怎样 features ,怎么布置;
  • --enable-PACKAGE,不知晓有如何 package,怎么布局。

配置完了随后,在 Modules 目录会生成 Setup 文件。x86 的暗中同意编写翻译会编写翻译到必需的模块,而 mips64 的接力编写翻译超多模块未有编译下,如 socket 等。改革 Modules/Setup 文件,定制想编写翻译的放手模块。以下是基础模块,近期还不知晓倘若不想内置的话要哪些编写翻译。
定制内置模块,参见那篇博文 《定制 Python 嵌入 C++: (四) 定制 Python 内建立模型块》,陈说各样内置模块的作用。

# Modules that should always be present (non UNIX dependent):                                       

array arraymodule.c # array objects                                                                 
cmath cmathmodule.c _math.c # -lm # complex math library functions                                  
math mathmodule.c _math.c # -lm # math library functions, e.g. sin()                                
_struct _struct.c   # binary structure packing/unpacking                                            
time timemodule.c # -lm # time operations and variables                                             
operator operator.c # operator.add() and similar goodies                                            
_testcapi _testcapimodule.c    # Python C API test module                                           
_random _randommodule.c # Random number generator                                                   
_collections _collectionsmodule.c # Container types                                                 
_heapq _heapqmodule.c       # Heapq type                                                            
itertools itertoolsmodule.c # Functions creating iterators for efficient looping                    
strop stropmodule.c     # String manipulations                                                      
_functools _functoolsmodule.c   # Tools for working with functions and callable objects             
_elementtree -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI _elementtree.c  # elementtree accelerator
#_pickle _pickle.c  # pickle accelerator                                                            
datetime datetimemodule.c   # date/time type                                                        
_bisect _bisectmodule.c # Bisection algorithms                                                      

unicodedata unicodedata.c    # static Unicode character database

profile:

7 个衡量 Python 脚本和决定内部存款和储蓄器以致 CPU 使用率的才干

random

5.emoji

不容争辩,真的有。请点击这里:https://pypi.org/project/emoji/

$ pip install emoji

 

别认为自家不了然您会偷偷试它→→

from emoji import emojize
print(emojize(":thumbs_up:"))

编辑:编程 本文来源:那一个Python代码技术,你一定还不晓得

关键词: