【Python】字符串的换行 和 引入其他py文件

1. 如果你的字符串很长,那么改如何处理呢?

直接回车是不行的,就像这样子:

python提供了3中方式可以用来对很长的字符串进行换行显示

A. 三个‘号

 

B. 三个"号

C. 在第一行的末尾加上 \ 

2. 想要引入其他的包或者其他的py文件如何做呢?

其实问题就归根结底到import的用法了:

转自:http://blog.csdn.net/lisonglisonglisong/article/details/38666819

在程序中定义函数可以实现代码重用。但当你的代码逐渐变得庞大时,你可能想要把它分割成几个文件,以便能够更简单地维护。同时,你希望在一个文件中写的代码能够被其他文件所重用,这时我们应该使用模块(module)

一、导入模块

在Python中,一个.py文件就构成一个模块。一个模块中的定义可以导入(import)到另一个模块或主模块。

比如你可以通过内置模块platform来查看你当前的操作平台信息:

[python] view
plain
copy

  1. import platform  
  2. s = platform.platform()  
  3. print(s)  
  4. # 我的输出:Linux-3.15.8-200.fc20.x86_64-x86_64-with-fedora-20-Heisenbug  

又比如你可以通过内置模块time获取当前的时间:

[python] view
plain
copy

  1. import time  
  2. s = time.ctime()  
  3. print(s)  
  4. # 输出:Mon Aug 18 16:04:57 2014  

每个模块有其私有的符号表,在该模块内部当成全局符号表来使用。 当我们将一个模块导入到当前模块时,只有被导入模块的名称被放入当前模块的全局符号表里,所以我们不用担心变量名发生冲突。

其他几种导入方式:

1、import a as b:导入模块a,并将模块a重命名为b。

[python] view
plain
copy

  1. import time as x     
  2. s = x.ctime()  
  3. print(s)  

2、from a import func:直接把模块内的函数或变量的名称导入当前模块符号表里。

[python] view
plain
copy

  1. from time import ctime  
  2. s = ctime()   # 这时可以直接调用函数,而不用再使用time.ctime()  
  3. print(s)  

3、from a import *:导入模块中所有的名字(以下划线开头的名字除外)到当前模块符号表里。

[python] view
plain
copy

  1. from time import *  
  2. s = ctime()     
  3. print(s)  

注意:导入 * 是不好的,因为它常常产生难以阅读的代码,并且会容易产生名字冲突。

二、模块搜索路径

当导入名为 a 的模块时, 解释器会先从内建模块尝试匹配,如果没找到,则将在 sys.path 记录的所有目录中搜索 a.py 文件,而sys.path则包括:

  • 当前程序所在目录
  • 标准库的安装目录
  • 操作系统环境变量PYTHONPATH所包含的目录

变量 sys.path 是一个字符串列表,它为解释器指定了模块的搜索路径。它通过环境变量 PATHONPATH 初始化为一个默认路径,当没有设置 PYTHONPATH 时, 就使用内建默认值来初始化。你可以通过标准 list 操作来修改它:

[python] view
plain
copy

  1. >>> import sys  
  2. >>> sys.path.append('/ufs/guido/lib/python')  

三、模块的__name__

对于任何一个模块,模块的名字都可以通过全局变量 __name__得到:

[python] view
plain
copy

  1. import time  
  2. s = time.__name__  
  3. print(s)    # 输出time   

一个模块既可以在其它模块中导入使用,也可以当作脚本直接运行。不同的是,当导入到其他模块时,__name__的值是被导入模块的名字;而当作为脚本运行时,__name__的值被设为“__main__”:

[python] view
plain
copy

  1. # test.py  
  2. if __name__ == '__main__':  
  3.     print('This program is being run by itself')  
  4. else:  
  5.     print('I am being imported into another module')  

当作脚本执行:

[plain] view
plain
copy

  1. $ python test.py   
  2. This program is being run by itself  

当作导入模块使用:

[python] view
plain
copy

  1. >>> import test  
  2. I am being imported into another module  
  3. >>>   

四、dir() 函数

Python3基础六中我们提到,可以通过内置dir()函数查询一个类或者对象的所有属性。除此之外,我们还可以用它列出一个模块里定义的所有名字,它返回一个有序字串列表:

[python] view
plain
copy

  1. >>> import builtins  
  2. >>> dir(builtins)  

五、包

可以把多个模块,即多个.py文件,放在同一个文件夹中,构成一个包(Package)。例如:

[plain] view
plain
copy

  1. sound/                          顶级包  
  2.       __init__.py               初始化这个声音包  
  3.       formats/                  格式转换子包  
  4.               __init__.py  
  5.               wavread.py  
  6.               wavwrite.py  
  7.               aiffread.py  
  8.               aiffwrite.py  
  9.               auread.py  
  10.               auwrite.py  
  11.               ...  
  12.       effects/                  音效子包  
  13.               __init__.py  
  14.               echo.py  
  15.               surround.py  
  16.               reverse.py  
  17.               ...  
  18.       filters/                  过滤器子包  
  19.               __init__.py  
  20.               equalizer.py  
  21.               vocoder.py  
  22.               karaoke.py  
  23.               ...  

注意:在每个包文件夹里都必须包含一个 __init__.py 的文件,告诉Python,该文件夹是一个包。__init__.py 可以是一个空文件。

我们可以通过import 包名.模块名导入包中的子模块,例如:

[python] view
plain
copy

  1. import sound.effects.echo  

当然,也可以使用from... import...句式导入包中的模块:

[python] view
plain
copy

  1. from sound.effects import echo               # 导入echo子模块  
  2. from sound.effects.echo import echofilter    # 导入echo子模块中的函数或变量  
  3. from sound.effects import *                  # 导入__all__变量中所有的子模块  
时间: 2024-12-26 15:04:18

【Python】字符串的换行 和 引入其他py文件的相关文章

python 命令行-qpython终端如何执行py文件

问题描述 qpython终端如何执行py文件 求大神指点如何用终端命令执行py 解决方案 你这已经进入命令模式了,需要bash下,python hello.py来执行 解决方案二: Linux下执行py文件终端直接执行py文件,不需要python命令python IDLE的执行py文件 解决方案三: $python xxx.py [<输入文件] [>输出文件]

pyinstaller-PyInstaller 如何打包多个py文件成exe文件???

问题描述 PyInstaller 如何打包多个py文件成exe文件??? 求高手帮助: 我想利用pyInstaller或者任何Python打包工具,把多个py文件打包成exe文件:这些py文件中,有一个是mymain.py:它会调用其他的如a.py,b.py:同时这些py 文件会调用一些第三方库,如numpy之类的.我想把他们打包成一个exe,请教如何做? 我的pyInstaller是最小版本,2.1 Python是2.7 解决方案 C:Python27Scripts>pyinstaller -

Python中__init__.py文件的作用详解_python

__init__.py 文件的作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件. 通常__init__.py 文件为空,但是我们还可以为它增加其他的功能.我们在导入一个包时,实际上是导入了它的__init__.py文件.这样我们可以在__init__.py文件中批量导入我们所需要的模块,而不再需要一个一个的导入. # package # __init__.py import re import urllib import sys impo

Python字符串详细介绍

  这篇文章主要介绍了Python字符串详解,本文讲解了字符串相关知识.字符串的一些特性.原始字符串.unicode字符串.字符串的常用操作方法.内建函数列表等内容,需要的朋友可以参考下 简介 字符串序列用于表示和存储文本,python中字符串是不可变的,一旦声明,不能改变 通常由单引号(' ),双引号(" ),三引号(''' """)包围 其中三引号可以由多行组成,编写多行文本的快捷语法,常用语文档字符串,在文件的特定地点,被当做注释.便捷的多行注释 Python

Python字符串(Str)详解

字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可 字符串的格式 b = "hello itcast.cn" # 或者 b = 'hello itcast.cn' 双引号或者单引号中的数据,就是字符串 字符串连接的方法 直接通过加号(+)操作符连接 a = "str1" b = "str2" c = a + b print("a:%s" %

python字符串连接方式汇总_python

在python中有很多字符串连接方式,今天就在这里具体总结一下: ①.最原始的字符串连接方式:str1 + str2 ②.python 新字符串连接语法:str1, str2 ③.奇怪的字符串方式:str1 str2 ④.% 连接字符串:'name:%s; sex: ' % ('tom', 'male') ⑤.字符串列表连接:str.join(some_list) 下面具体分析一下: 第一种,想必只要是有编程经验的人,估计都知道,直接用 "+" 来连接两个字符串: 'Jim' + 'G

Python 字符串的编码转换、存储及乱码总结

Python2的字符串包含str.unicode两种类型,str的字符串编码方式由源码文件的编码方式决定,目前使用的基本都是UTF-8的编码格式,所以要在py文件的头部指定编码格式: # -*- coding: utf-8 -*- 在Python程序内部,通常使用的字符串为unicode编码,这样的字符串字符是一种内存编码格式,如果将这些数据存储到文件或是记录日志的时候,就需要将unicode编码的字符串转换为特定字符集的存储编码格式,比如:UTF-8.GBK等等,很多时候Python程序员都会

Python字符串和文件操作常用函数分析_python

本文实例分析了Python字符串和文件操作常用函数.分享给大家供大家参考.具体如下: # -*- coding: UTF-8 -*- ''' Created on 2010-12-27 @author: sumory ''' import itertools def a_containsAnyOf_b(seq,aset): '''判断seq中是否含有aset里的一个或者多个项 seq可以是字符串或者列表 aset应该是字符串或者列表''' for item in itertools.ifilte

Python字符串逐字符或逐词反转方法

  这篇文章主要介绍了Python字符串逐字符或逐词反转方法,本文对逐字符或逐词分别给出两种方法,需要的朋友可以参考下 目的 把字符串逐字符或逐词反转过来,这个蛮有意思的. 方法 先看逐字符反转吧,第一种设置切片的步长为-1 代码如下: revchars=astring[::-1] In [65]: x='abcd' In [66]: x[::-1] Out[66]: 'dcba' 第二种做法是采用reversed(),注意它返回的是一个迭代器,可以用于循环或传递给其它的"累加器",不