百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

Python学习思考模块

toyiye 2024-06-21 12:31 9 浏览 0 评论

Python基础语法学习了,该学习什么

Python语法基础知识中我们学习了

print("hello world")

从这个入门的例子中出了

  • 什么是函数,怎么定义函数,如何调用函数
  • 什么是Python字符串
  • 什么是变量,如何定义赋值使用变量
  • 什么常见的变量类型:str int boolean list tuple set
  • 如何重复执行一段代码 for while
  • 什么是代码码 :python中的缩进来表示代码块
  • 什么是全局变量globals locals局部变量
  • 什么是异常、如何怎么异常 try except

学习这些后,似乎还是不能解决实际问题

接着我们联系日常的工作

关于文件处理,于是写了

  • 如何查找目录下的文件相关文章
  • 查找文件后如何处理呢?
  • 文件操作有哪些方式?如何复制一个文件到 另一个目录下

有朋友可能会说了,平常我们都是用鼠标复制粘贴的,写程序做这个不是有点多余了吗?

愉恰相反,很多香香的操作你难道都需要手工去执行么,,计算机程序的目的就是帮助人们解决重复通知的大量操作。

搓下来讲解由上面引出的一个很重要的知识点,模块

Python 模块(Module),是 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。

  • 模块让你能够有逻辑地组织你的 Python 代码段。
  • 把相关的代码分配到一个模块里能让你的代码更好用,更易懂。
  • 模块能定义函数,类和变量,模块里也能包含可执行的代码。
# Fibonacci numbers module

def fib(n):    # write Fibonacci series up to n
    a, b = 0, 1
    while a < n:
        print(a, end=' ')
        a, b = b, a+b
    print()

def fib2(n):   # return Fibonacci series up to n
    result = []
    a, b = 0, 1
    while a < n:
        result.append(a)
        a, b = b, a+b
    return result

上面 的代码我们保存在一个 fibo.py 文件中

如何使用fibo.py文件中的函数呢?

import fibo
所谓的模块其实就是.py文件名

fibo.fib(1000)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
fibo.fib2(100)
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
fibo.__name__
'fibo'

关于调用 其实就是模块名.函数名

当然引入模块也可以使用

from fibo import *
fib(500)

或者 按需要引入

from fibo import fib, fib2
fib(500)

引入模块后可以给模块取个别名 import fibo as fib

顺带学习一下英文语法

as可以用作介词、副词和连词。

I. as 作介词,意思是 “作为”,“以…身份”,“如同”
1) Alfred worked as a dustman for the Ellesmere Corporation. 阿尔弗雷德在Ellesmere公司当清洁工。
2) People who work in offices are frequently referred to as “white-collar” workers. 坐办公室的人常常被称作”白领工人”。

II. as作连词的用法
1. as…as, 意为 ”和…一样”, 用于形容词或副词的比较,as + adj/adv + as…, 第一个as为副词,第二个as为连词。
1) In 1991, there were twice as many detached houses as semi-detached. 1991年独立式住宅房的数量是半独立住宅房的两倍。
2) The App. is not as useful as we expected. 那个App不像我们期待的那么有用。
3) The girls performed as well in geography as the boys in 2010. 2010年女孩在地理课的考试成绩和男孩一样好。
4) He will be earning only half as much as he used to. 他将来挣的钱只有他现在的一半。

2. 引导时间状语从句,“随着”, “当…时”,和when, while用法相同,但它们有区别:用when时,从句的动作可以与主句的动作同时发生,也可以先于主句的动作发生;用while时,从句的动作为一过程,主句动作与从句动作同时进行或在从句动作过程中发生;用as时,主句和从句的动作同时发生,具有延续的含义.例如:
1) When she was young, she lived with her grandparents. 她小时候和祖父母住在一起。
2) I was preparing our dinner while you were sleeping. 你睡觉的时候我在准备晚餐。
3) You will grow wiser as you grow older. 随着年龄增长你会变的越来越聪明。

3. 引导原因状语从句,“由于”, “因为”, 和because, since用法相同,但他们有区别:because表示的语气最强;as一般放在句首,语气较弱,较口语化;since常常用在书面语中,表示多为对方已知的、或稍加分析便可得知的原因,有时可译作"既然".例如:
1) As there were not enough lifeboats for everybody, 1500 lives were lost. 由于没有足够的救生艇运载所有乘客,结果1500人丧生。
2) Since you are so sure of it he’ll believe you.既然你对此如此有把握,他会相信你的

4. 引导让步状语从句,”尽管”, “虽然”, 句子结构稍有不同,例如:
1) Old as he is, he still jogs every day. 他尽管上了年纪,仍然每天慢跑。
2) Strange as it may seem, nobody was injured in the accident. 这次意外虽然显得令人不可思议,却没人受伤。
3)Hard as he worked, he still failed to make both ends meet. 他尽管努力工作,仍未能做到收支平衡。

III. as作关系代词,引导定语从句

1. as引导定语从句与其他词连用
  ①  用于the same...as结构中
This is the same book as I read last week.这本书和我上周读的那本是一样的.
  ②  用于such...as结构中
I don”t like such books as he recommends.我不喜欢他推荐的那些书.
  ③  用于"so +adj. + a/an + n. (单数) + as "结构中
I am not so strong a man as I was.我已经没有从前那么强壮了.
2. as单独引导定语从句,as单独引导定语从句时,先行词可以是一个词,也可以是一个句子或短语.例如:
1) She is late, as is often the case.她迟到了,这是经常的事。(修饰的是整个主句)
2) To shut your eyes to facts, as many of you do, is foolish.对事实视而不见--你们好多人都是如此的愚蠢。(先行词是不定式短语)

3) As you know, I like music.
import fibo as fib
>>> fib.fib(500)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377

甚至可以给函数取个别名,如下

from fibo import fib as fibonacci
>>> fibonacci(500)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377

文件操作中我们已经使用过os模块了

if __name__ == "__main__":
    import sys
    fib(int(sys.argv[1]))

import一定要在文件最开始使用么?其实未必,在你需要的时候去import

模块肯定是存在的文件,那么Python会从哪里找这个文件

  • 当前脚本所有目录
  • PYTHONPATH 环境变量
  • 依赖包的安装目录,通常是python环境下的site-packages目录中

python自带的标准模块os模块对应 的是一个叫os.py的文件


r"""OS routines for NT or Posix depending on what system we're on.

This exports:
  - all functions from posix or nt, e.g. unlink, stat, etc.
  - os.path is either posixpath or ntpath
  - os.name is either 'posix' or 'nt'
  - os.curdir is a string representing the current directory (always '.')
  - os.pardir is a string representing the parent directory (always '..')
  - os.sep is the (or a most common) pathname separator ('/' or '\\')
  - os.extsep is the extension separator (always '.')
  - os.altsep is the alternate pathname separator (None or '/')
  - os.pathsep is the component separator used in $PATH etc
  - os.linesep is the line separator in text files ('\r' or '\n' or '\r\n')
  - os.defpath is the default search path for executables
  - os.devnull is the file path of the null device ('/dev/null', etc.)

Programs that import and use 'os' stand a better chance of being
portable between different platforms.  Of course, they must then
only use functions that are defined by all platforms (e.g., unlink
and opendir), and leave all pathname manipulation to os.path
(e.g., split and join).
"""

#'
import abc
import sys
import stat as st
def listdir(*args, **kwargs): # real signature unknown
   
    pass

当你看到import xxx时,一定要有文件与这对应。所以经常看到找不module的错误也就是提示你缺少包或者引入错误了。

为什么我们可以直接使用 range ,len list set

是因为python启动后,自动 在内存中加载了这些元素。

import builtins
>>> dir(builtins)  
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException',
 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning',
 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError',
 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning',
 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False',
 'FileExistsError', 'FileNotFoundError', 'FloatingPointError',
 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError',
 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError',
 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError',
 'MemoryError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented',
 'NotImplementedError', 'OSError', 'OverflowError',
 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError',
 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning',
 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError',
 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError',
 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError',
 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning',
 'ValueError', 'Warning', 'ZeroDivisionError', '_', '__build_class__',
 '__debug__', '__doc__', '__import__', '__name__', '__package__', 'abs',
 'all', 'any', 'ascii', 'bin', 'bool', 'bytearray', 'bytes', 'callable',
 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits',
 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit',
 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr',
 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass',
 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview',
 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property',
 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice',
 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars',
 'zip']

剩下一个package的问题

这个稍微复杂一点,会专门写文章解释。

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码