当前位置: 必赢官网 > 计算机编程 > 正文

这些Python代码技巧,你肯定还不知道

时间:2019-12-08 16:29来源:计算机编程
被人为智能捧红的 Python已经是风流浪漫种进步周到且非凡各种化的言语,个中自然有风度翩翩对你从未开采的功效。本文或然可以让您学到一些新才干。 本文来源本身的博客。博客的

被人为智能捧红的 Python 已经是风流浪漫种进步周到且非凡各种化的言语,个中自然有风度翩翩对你从未开采的功效。本文或然可以让您学到一些新才干。

图片 1

本文来源 本身的博客。博客的篇章保持更新,此文恐怕不是新型状态。

Python 是社会风气上最风靡、火热的编制程序语言之黄金时代,原因超多,举例:

Python是社会风气上最受接待,最盛行的编制程序语言之黄金年代。那有多数缘由:

下载、解压 python 源代码

从 python.org 下载。

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

它很容易学习

导入交叉编译 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 源代码干净。

 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

 2.bashplotlib

想在调节新北绘图吗?

$ pip install bashplotlib

 

运用方面包车型大巴行,就能够在调控新竹绘图。

 

作为数据化学家的自家,每Smart用Python是自家内在干活的一片段。在此个进度中,笔者学会了部分可行的技巧和体验。

配置

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 等。

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

5.emoji

科学,真的有。请点击这里:https://pypi.org/project/emoji/

$ pip install emoji

 

别以为小编不通晓你会偷偷试它→→

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

编辑:计算机编程 本文来源:这些Python代码技巧,你肯定还不知道

关键词: 必赢官网