广告
返回顶部
首页 > 资讯 > 后端开发 > Python >有哪些Python基础知识
  • 604
分享到

有哪些Python基础知识

2023-06-25 11:06:20 604人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“有哪些Python基础知识”,在日常操作中,相信很多人在有哪些python基础知识问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”有哪些Python基础知识”的疑惑有所帮助!接下来,请跟着小编

这篇文章主要介绍“有哪些Python基础知识”,在日常操作中,相信很多人在有哪些python基础知识问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”有哪些Python基础知识”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    1、Function 函数

    编程中,需要重复写的功能,可以包装成一个函数

    1)定义函数

    定义函数之前,实现给一个字符串增加前缀和后缀的操作:

    f1 = "f1"f2 = "f2"f1 += ".txt"f1 = "my_" + f1f2 += ".txt"f2 = "my_" + f2print(f1, f2)my_f1.txt my_f2.txt

    定义函数之后:

    def modify_name(filename):    filename += ".txt"    filename = "my_" + filename    print(filename)modify_name("f1")modify_name("f2")my_f1.txtmy_f2.txt

    上述函数里面用到了参数,调用的时候需要进进行传参数,但有时也可以没有参数,eg:

    def modify_name():    filename = "f1"    filename += ".txt"    filename = "my_" + filename    print(filename)modify_name()my_f1.txt

    一个函数也可以拥有返回值,将函数处理后,可以将想要返回的结果返回

    def modify_name(filename):    filename += ".txt"    filename = "my_" + filename    return filenamenew_filename = modify_name("f1")print(new_filename)my_f1.txt

    2)参数设置

    调用函数时,如果函数有参数,那么需要给函数传参,函数本来的参数叫实参,传入的参数叫实参,参数传递有以下几种方式:

    def f(x, a, b, c):    return a*x**2 + b*x + c*1print(f(2, 1, 1, 0))    # 忽略参数名,需要按顺序一一对应print(f(x=2, a=1, b=1, c=0))    # 写上参数名,按名字传参print(f(a=1, c=0, x=2, b=1))    # 若用参数名,可以打乱顺序传参666

    另外,对于不是一直变化的参数,可以给参数设置一个默认值,如果设置了默认值,传参时可以不给改参数传值,否则每个参数都要传参成功才能调用

    def f(x, a=1, b=1, c=0):    return a*x**2 + b*x + c*1print(f(2, a=2))print(f(2))106

    Tip: 设置了默认值的参数和未设置默认值的参数要分开放,也就是说不可以将未设置默认值的参数跟在设置了默认值参数的后面

    3)全局和局部变量

    • 全局变量(global):函数里外都能用(公用)

    • 局部变量(local):仅在函数内使用(私用)

    def modify_name():    filename = "f1.txt"# 这里就是一个局部变量    print("local filename:", filename)modify_name()print("global filename:", filename) # 这里会报错
    filename = "f1.txt"# 这里便是一个全局变量def modify_name():    print("local filename:", filename)modify_name()print("global filename:", filename)
    • 全局变量和局部变量冲突时,局部变量优先!!!

    filename = "f1.txt"def modify_name():    filename = "f2.txt"    print("local filename:", filename)modify_name()print("global filename:", filename)local filename: f2.txtglobal filename: f1.txt
    • 特殊情况:允许内部来修改外部的值,必须使用global声明,相当于提出了一个申请

    filename = "f1.txt"def modify_name():    global filename  # 提出申请    filename = "f2.txt"    print("local filename:", filename)modify_name()print("global filename:", filename)local filename: f2.txtglobal filename: f2.txt

    2、Class类

    目的:为了描述一个或一类具体的物体,eg:猫的特征,动作等

    1)定义class

    使用class File来创建一个类,注意通常约定类的名字要首字母大写。

    然后使用my_file = File()来创建一个实例,每个实例都继承了一个类的基本属性

    class File:    def __init__(self):        self.name = "f1"        self.create_time = "today"my_file = File()print(my_file.name)print(my_file.create_time)f1today
    • 其中 self 是作为类自己的一个索引,不管你在定义类的时候,想要获取这个类的什么属性或功能,都可以通过self来获取。

    • __init__():创建一个实例的时候,类都会自动进行一次初始化,即运行一遍__init__()函数

    • 修改属性的值:(但这样修改的值,仅对当前实例有效)

    my_file.name = "new_name"print(my_file.name)new_name

    2)class的功能

    • __init__():也可以对该函数进行传参:

    class File:    def __init__(self, name, create_time="today"):        self.name = name        self.create_time = create_timemy_file = File("my_file")print(my_file.name)print(my_file.create_time)my_filetoday
    • 还可以定义更多的功能,比如重命名等

    class File:    def __init__(self, name, create_time="today"):        self.name = name        self.create_time = create_time    def change_name(self, new_name):        self.name = new_namemy_file = File("my_file")my_file.change_name("new_name")print(my_file.name)new_name
    • 而且类的功能也可以有返回值

    class File:    def __init__(self, name, create_time="today"):        self.name = name        self.create_time = create_time    def get_info(self):        return self.name + " is created at " + self.create_timemy_file = File("my_file")print(my_file.get_info())my_file is created at today

    3)继承

    • 俩个类分开写,eg:

    class Video:    def __init__(self, name, window_size=(1080, 720)):        self.name = name        self.window_size = window_size        self.create_time = "today"        class Text:    def __init__(self, name, language="zh-cn"):        self.name = name        self.language = language        self.create_time = "today"

    可以发现,这俩个类是有共性的,比如都有name,和create_time

    所以,可以编写一个底层类,使得这俩个类继承底层类,从而减少了类之间的共有属性/功能的重复开发!!!

    一个类可以继承另一个类,从而使得这个类成为子类,被继承的类为父类

    子类可以继承父类的功能/功能,而且子类还可以重定义父类的功能

    class File:    def __init__(self, name, create_time="today"):        self.name = name        self.create_time = create_time    def get_info(self):        return self.name + " is created at " + self.create_timeclass Video(File):    def __init__(self, name, window_size=(1080, 720)):        # 将共有属性的设置导入File父类        super().__init__(name=name, create_time="today")        self.window_size = window_sizeclass Text(File):    def __init__(self, name, language="zh-cn"):        super().__init__(name=name, create_time="today")        self.language = language    # 也可以在子类中复用父类功能    def get_more_info(self):        return self.get_info() + ", using language of " + self.languagev = Video("my_video")t = Text("my_text")print(v.get_info())  # 调用父类功能print(t.create_time)  # 调用父类的属性print(t.language)  # 调用自己的属性print(t.get_more_info())  # 调用自己复用父类的功能my_video is created at todaytodayzh-cnmy_text is created at today, using language of zh-cn

    4)私有属性和功能

    • 私有:_一个下划线开头,弱隐藏,不想让别人用,但别人在必要情况下还是可以用的

    • 私有:__俩个下划线开头,强隐藏,不让别人使用

    class File:    def __init__(self):        self.name = "f1"        self.__deleted = False  # 不让别人使用这个变量        self._type = "txt"  # 不想别人使用这个变量    def delete(self):        self.__force_delete()    def __force_delete(self):   # 不让别人使用这个功能        self.__deleted = True        return True    def _soft_delete(self):  # 不想让别人使用这个功能        self.__force_delete()  # 虽然是强隐藏,但是可以在内部随便调用        return Truef = File()print(f._type)  # 可以拿到值,但是会有⚠️print(f._soft_delete())  # 可以调用,但是会有⚠️print(f.__deleted)  # 会直接报错print(f.__force_delete)  # 会直接报错

    5)特殊方法

    定义含义
    def __init__()初始化实例
    def __repr__()字符串的“官方”表现形式
    def __str__()字符串的“非正式”值
    def __iter__()遍历某个序列
    def __next__()从迭代器中获取下一个值

    3、Module模块

    Moudel主要是为一个相对比较大的工程,涉及到多个文件之间的互相调用关系。

    • 对于一个项目来说,它需要去实现很多功能,这时候,如果可以把某一个或者某一类功能分类写到了一个文件之中,在合并的时候,我不便不需要知道文件中的代码具体什么,我只需要调用你给的这个文件中的功能就可以!也

    • 就是说,作为你所给文件中的功能的使用者,我不关心你实现功能的代码,我只关系我可以使用函数调用到你这个功能就好

    # file.pydef create_name():  return "new_file.txt"

    eg: 比如上述file.py文件,实现了create_name的功能,然而作为这个功能的使用者,我不需要去了解这个功能所使用的代码,我只关心如何调用使用这个功能

    1)引用module

    比如新建了一个me.py,需要在这个文件之中引用file.py中的create_name()的功能

    # me.pyimport fileprint(file.create_name())new_file.txt

    或者也可以这样调用

    # me.pyimport file as f1print("f1:", f1.create_name())class File:  def create_name(self):    return "new_file.txt"f2 = File()print("f2:", f2.create_name())f1: new_file.txtf2: new_file.txt

    可以发现,这和类功能调用有着非常大的相似之处!!!

    还有更多的引用方式:

    # me.pyfrom file import create_nameprint(create_name())new_file.txt

    假设file.py中还有一个函数create_time()

    # me.pyfrom file import create_name, create_timeprint(create_name())print(create_time())new_file.txttoday

    如何file.py中函数太多,记不清,那么可以如此引用:

    # me.py# 第一种import fileprint("1", file.create_name())#第二种from file import *print("2", create_name())print("2", create_time())

    2)大项目的模块管理

    在正规的module中,我们常会看到一个__init__.py文件,就像class里的def __init__(self),可以在里面写上如何初始化你的files目录,也可以设定目录中各元素的关系。

    有哪些Python基础知识

    # files/__init__.pyfrom .video import get_video_size

    设置好__init__.py后,就可以直接从files里import get_video_size这个属于video.py的功能了

    # me.pyfrom files import get_video_sizeprint(get_video_size())

    但和video.py同级的text.py就无法通过import方式获取到text.py中的功能,因为未在files/__init__.py中声明

    # me.pyfrom files import create_name

    如果不在files/__init__.py中声明,但还想调用,则可以使用:

    # me.pyimport files.textprint(files.text.create_name)# 或者from files import textprint(text.create_name)

    到此,关于“有哪些Python基础知识”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

    --结束END--

    本文标题: 有哪些Python基础知识

    本文链接: https://www.lsjlt.com/news/304239.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • 有哪些Python基础知识
      这篇文章主要介绍“有哪些Python基础知识”,在日常操作中,相信很多人在有哪些Python基础知识问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”有哪些Python基础知识”的疑惑有所帮助!接下来,请跟着小编...
      99+
      2023-06-25
    • Python基础知识点有哪些
      本篇内容主要讲解“Python基础知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python基础知识点有哪些”吧!Python程序文件结构程序→模块→语句→表达式Python的关键要...
      99+
      2023-06-02
    • Python零基础知识点有哪些
      这篇“Python零基础知识点有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python零基础知识点有哪些”文章吧。P...
      99+
      2023-06-17
    • Python的基础知识点有哪些
      本篇内容介绍了“Python的基础知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!python简介python是一种面向对象的解释...
      99+
      2023-06-02
    • python爬虫基础知识有哪些
      这篇文章主要介绍“python爬虫基础知识有哪些”,在日常操作中,相信很多人在python爬虫基础知识有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python爬虫基础知识有哪些”的疑惑有所帮助!接下来...
      99+
      2023-06-02
    • 有哪些Java基础知识
      本篇内容介绍了“有哪些Java基础知识”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 面向对象与面向过程的区别首先面向过程和面向对...
      99+
      2023-06-16
    • VUE基础知识有哪些
      这篇文章主要为大家展示了“VUE基础知识有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VUE基础知识有哪些”这篇文章吧。VUE是什么Vue (读音 /vjuː/,类似于 view) 是一套...
      99+
      2023-06-25
    • oracle基础知识有哪些
      这篇文章主要介绍“oracle基础知识有哪些”,在日常操作中,相信很多人在oracle基础知识有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”oracle基础知识有哪些”...
      99+
      2022-10-19
    • mysql有哪些基础知识
      这篇文章将为大家详细讲解有关mysql有哪些基础知识,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一:连接mysql关于mysql的下载和安装我在这里就不说了,第一步我们...
      99+
      2022-10-19
    • node.js基础知识有哪些
      小编给大家分享一下node.js基础知识有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!javascript之前一般用于we...
      99+
      2022-10-19
    • HTTP 基础知识有哪些
      本篇文章给大家分享的是有关HTTP 基础知识有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。HTTP 是什么HTTP是一种超文本传输协议,...
      99+
      2022-10-19
    • React基础知识有哪些
      这篇文章主要讲解了“React基础知识有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“React基础知识有哪些”吧!一切都是组件React 应用由组件组...
      99+
      2022-10-19
    • mysql基础知识有哪些
      本篇内容介绍了“mysql基础知识有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!第一章 mysql的...
      99+
      2022-10-19
    • vue2.0基础知识有哪些
      这篇文章给大家分享的是有关vue2.0基础知识有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。什么是 Vue?简要介绍一下vue,vue就是一个前端框架,特点是 数据双向绑定...
      99+
      2022-10-19
    • HTML基础知识有哪些
      今天小编给大家分享一下HTML基础知识有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。...
      99+
      2022-10-19
    • canvas基础知识有哪些
      本文小编为大家详细介绍“canvas基础知识有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“canvas基础知识有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 现把...
      99+
      2022-10-19
    • 有哪些CSS基础知识
      这篇文章主要介绍“有哪些CSS基础知识”,在日常操作中,相信很多人在有哪些CSS基础知识问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”有哪些CSS基础知识”的疑惑有所帮助!接...
      99+
      2022-10-19
    • CSS基础知识有哪些
      这篇文章主要讲解了“CSS基础知识有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS基础知识有哪些”吧!一、为什么使用div+css1、实现表现和样...
      99+
      2022-10-19
    • WCF基础知识有哪些
      这篇文章主要介绍“WCF基础知识有哪些”,在日常操作中,相信很多人在WCF基础知识有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”WCF基础知识有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!WC...
      99+
      2023-06-17
    • IPv6基础知识有哪些
      这篇文章主要讲解了“IPv6基础知识有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“IPv6基础知识有哪些”吧!IPv6 最根本的改变是提供了未来对全球范围内可确定的地址空间的需求。基于...
      99+
      2023-06-04
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作