Python学习(三)基础

一、函数与模块

  定义函数:

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()
  • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

  函数的参数:

  函数的参数可以有默认值,支持使用可变参数(参数名前面的*表示args是一个可变参数,可以传入0个或多个参数

  模块管理函数:(Python中每个文件就代表了一个模块(module))

  Python没有函数重载的概念,在同一个.py文件中定义了两个同名函数,后面的定义会覆盖之前的定义,为避免这种情况,在不同的模块中可以有同名的函数,在使用函数的时候我们通过import关键字导入指定的模块就可以区分到底要使用的是哪个模块中的函数,

二、数据结构 

  • 字符串

  Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用

  可以使用方括号来截取字符串

 Python转义字符

 

转义字符描述
\(在行尾时)续行符
\\反斜杠符号
\'单引号
\"双引号
\a响铃
\b退格(Backspace)
\000
\n换行
\v纵向制表符
\t横向制表符
\r回车
\f换页
\oyy八进制数,yy 代表的字符,例如:\o12 代表换行,其中 o 是字母,不是数字 0。
\xyy十六进制数,yy代表的字符,例如:\x0a代表换行
\other其它的字符以普通格式输出

  

  Python字符串运算符

操作符描述实例
+字符串连接a + b 输出结果: HelloPython
*重复输出字符串a*2 输出结果:HelloHello
[]通过索引获取字符串中字符a[1] 输出结果 e
[ : ]截取字符串中的一部分,遵循左闭右开原则,str[0,2] 是不包含第 3 个字符的。a[1:4] 输出结果 ell
in成员运算符 - 如果字符串中包含给定的字符返回 True'H' in a 输出结果 True
not in成员运算符 - 如果字符串中不包含给定的字符返回 True'M' not in a 输出结果 True
r/R原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。
print( r'\n' ) print( R'\n' )
%格式字符串请看下一节内容。

  python字符串格式化符号:

  

 符   号描述
      %c 格式化字符及其ASCII码
      %s 格式化字符串
      %d 格式化整数
      %u 格式化无符号整型
      %o 格式化无符号八进制数
      %x 格式化无符号十六进制数
      %X 格式化无符号十六进制数(大写)
      %f 格式化浮点数字,可指定小数点后的精度
      %e 用科学计数法格式化浮点数
      %E 作用同%e,用科学计数法格式化浮点数
      %g %f和%e的简写
      %G %f 和 %E 的简写
      %p 用十六进制数格式化变量的地址

  格式化操作符辅助指令:

符号功能
*定义宽度或者小数点精度
-用做左对齐
+在正数前面显示加号( + )
<sp>在正数前面显示空格
#在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
0显示的数字前面填充'0'而不是默认的空格
%'%%'输出一个单一的'%'
(var)映射变量(字典参数)
m.n.m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)
  • 列表:

  一个方括号内的逗号分隔值出现

  列表索引从0开始。列表可以进行截取、组合等

  可以使用append()方法来添加列表项

  使用下标索引来访问列表中的值,也可以使用方括号的形式截取字符

  使用 del 语句来删除列表的的元素:(del list[1])

  + 号用于组合列表,* 号用于重复列表     

  Python包含以下方法:

 

序号方法
1list.append(obj)
在列表末尾添加新的对象
2list.count(obj)
统计某个元素在列表中出现的次数
3list.extend(seq)
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4list.index(obj)
从列表中找出某个值第一个匹配项的索引位置
5list.insert(index, obj)
将对象插入列表
6list.pop([index=-1])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7list.remove(obj)
移除列表中某个值的第一个匹配项
8list.reverse()
反向列表中元素
9list.sort( key=None, reverse=False)
对原列表进行排序
10list.clear()
清空列表
11list.copy()
复制列表
  • 元组:
  1. 使用小括号,
  2. 元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用
  3. 元组可以使用下标索引来访问元组中的值,下标索引从0开始,可以进行截取,组合等,使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组
  4. 元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
  5. 元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组

 

 

  • 字典:
  1.   字典是另一种可变容器模型,且可存储任意类型对象。 
  2.   字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,如:d = {key1 : value1, key2 : value2 }
  3.   不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
  4.   键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
  5.   字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的
  • 集合:

  集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典 

parame = {value01,value02,...} 或者 set(value)

三、面向对象(三大要素:封装、继承、多态)

  • 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。

   在Python中可以使用class关键字定义类

   类有一个名为 __init__() 的特殊方法(构造方法),该方法在类实例化时会自动调用(self代表类的实例,而非类)

   类之间的关系:(类和类之间的关系有三种:is-a、has-a和use-a关系)

    1.   is-a关系也叫继承或泛化,比如学生和人的关系、手机和电子产品的关系都属于继承关系。
    2.   has-a关系通常称之为关联,比如部门和员工的关系,汽车和引擎的关系都属于关联关系;关联关系如果是整体和部分的关联,那么我们称之为聚合关系;如果整体进一步负责了部分的生命周期(整体和部分是不可分割的,同时同在也同时消亡),那么这种就是最强的关联关系,我们称之为合成关系。
    3.   use-a关系通常称之为依赖,比如司机有一个驾驶的行为(方法),其中(的参数)使用到了汽车,那么司机和汽车的关系就是依赖关系。
  • 方法:类中定义的函数。

   在类的内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self, 且为第一个参数,self 代表的是类的实例  

   私有方法__private_method:两个下划线开头,声明该方法为私有方法,只能在类的内部调用 ,不能在类的外部调用

   使用@staticmethod 定义静态方法,

   Python还可以在类中定义类方法(@classmethod),类方法的第一个参数约定名为cls,它代表的是当前类相关的信息的对象。通过这个参数我们可以获取和类相关的信息并且可以创建出类的对象

  • 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。

   __private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs

   使用@property包装器来包装getter和setter方法,使得对属性的访问既安全又方便

  • 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。

 

  • 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。

   在子类中需要父类的构造方法就需要显式地调用父类的构造方法,或者不重写父类的构造方法

   如果重写了__init__ 时,要继承父类的构造方法,可以使用 super 关键字:super() 函数

  • 局部变量:定义在方法中的变量,只作用于当前实例的类。
  • 实例变量:在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。
  • 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。

   方法名后的小括号中添加需要继承的类,需要注意圆括号中基类的顺序,若是基类中有相同的方法名,而在子类使用时未指定,python从左至右搜索 即方法在子类中未找到时,从左到右查找基类中是否包含方法

  • 实例化:创建一个类的实例,类的具体对象。
  • 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。  

转载于:https://www.cnblogs.com/PollyLuo/p/11535794.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248124.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

操作系统原理之I/O设备管理(第六章上半部分)

一、I/O系统的组成 I/O系统不仅包括各种I/O设备&#xff0c;还包括与设备相连的设备控制器&#xff0c;有些系统还配备了专⻔⽤ 于输⼊/输出控制的专⽤计算机&#xff0c;即通道。此外&#xff0c;I/O系统要通过总线与CPU、内存相连。 I/O系统的结构&#xff1a; I/O设备的分类…

js控制a标签点击事件 触发下载

问题背景&#xff0c;动态获取data把url赋值到a标签的url中&#xff0c;让a标签自动下载 首先想到的应该是$(xxx).click(), 查资料明白&#xff1a;js中的$(...).click()事件只能触发绑定的onClick方法&#xff0c;不能跳转到href。 第二种方法&#xff1a;获取到url之后locat…

操作系统原理之I/O设备管理(第六章下半部分)

五、I/O软件原理 输入输出软件的总体目标是将软件组织成一种层次结构 低层软件用来屏蔽硬件的具体细节高层软件则主要是为用户提供一个简洁、规范的界面设备管理的4个层次&#xff1a; 用户层软件 -》向系统发出I/O请求&#xff0c;显示I/O操作的结果&#xff0c;提供⽤户与设备…

jQuery第二天

课程回顾&#xff1a; ​ jQuery&#xff1a;JavaScript库 ​ 入口函数&#xff1a;$(function () {}); ​ jQuery&#xff1a;jQuery对象&#xff0c;DOM对象 ​ jQuery转成DOM&#xff1a;$(‘元素’)[索引值] ​ DOM转成jQuery&#xff1a;$(DOM对象); ​ 筛选方法&am…

切换Debug/Release编译模式和Archive的作用

&#xfeff;在学这个之前&#xff0c;以为很难&#xff0c;也起不到什么作用&#xff0c;但是等真正运用到工程里面&#xff0c;才发现&#xff0c;这个能帮你省下很多工作量。 1&#xff0c;Debug和Release版本区别&#xff1f; 进行iOS开发&#xff0c;在Xcode调试程序时&am…

Linux 防火墙:Netfilter iptables

一、Netfilter 简介 (1) Netfilter 是 Linux 内置的一种防火墙机制&#xff0c;我们一般也称之为数据包过滤机制&#xff0c;而 iptables 只是操作 netfilter 的一个命令行工具(2) Netfilter 是 Linux CentOS 6 内置的防火墙机制&#xff0c;Firewall 是 Linux CentOS 7 内置的…

无法加载 DLL“SQLite.Interop.DLL”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。...

无法加载 DLL“SQLite.Interop.DLL”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。 在项目里添加 现有项 把SQLite.Interop.DLL文件添加进来&#xff0c;然后点击属性 修改一个属性 把 属性 复制到输出目录 改为 始终复制 然后打开你的项目属性 进入生成的 页面&a…

jQuery第三天

课程回顾&#xff1a; ​ 动画效果&#xff1a;基本动画&#xff0c;滑动动画&#xff0c;淡入淡出&#xff0c;自定义动画效果(animate) ​ 事件切换&#xff1a;hover(over&#xff0c;out); ​ 停止动画&#xff1a;stop ​ 操作属性&#xff1a;prop&#xff08;固有属…

C语言程序设计II—第八周教学

第八周教学总结&#xff08;15/4-21/4&#xff09; 教学内容 本周的教学内容为&#xff1a;   8.4 电码加密 知识点&#xff1a;指针与字符串&#xff0c;重难点&#xff1a;字符指针与字符串的关联和区别&#xff1b;   8.5 任意个整数求和 知识点&#xff1a;动态内存分配…

AFNetworking 对数据进行https ssl加密

参考来源&#xff1a;http://www.cnblogs.com/jys509/p/5001566.html 现在在工作中的工作需求&#xff1a;https请求验证证书一般来讲如果app用了web service , 我们需要防止数据嗅探来保证数据安全.通常的做法是用ssl来连接以防止数据抓包和嗅探其实这么做的话还是不够的 。…

数据库系统原理(第一章概述)

一、数据库基本概念 什么是数据&#xff1a;数据&#xff08;Data&#xff09;是描述事物的符号记录&#xff0c;是指利用物理符号记录下来的、 可以鉴别的信息。 数据是信息存在的一种形式&#xff0c;只有通过解释或处理的数据才能成为有用的信息。 什么是数据库&#xff1a;…

jQuery第四天

课程回顾&#xff1a; ​ 元素操作&#xff1a; ​ 遍历元素&#xff1a; ​ $(‘元素’).each(function (index, elm) {}); ​ $.each(对象&#xff0c;function (index, elm) {}); ​ 创建元素&#xff1a;$(‘ 新的元素?’);​ 添加元素&#xff1a; ​ 内部添加&…

navigationController的NavigationBar和ToolBar的POP或PUSH消失问题

今天在工作中发现一个坑&#xff0c; 其他页面都是隐藏。YSViewController 使用的时候必须是需要 navigationBar 和 toorbar&#xff0c;但是 pop出这个viewcontroller后&#xff0c;需要隐藏navigationBar 和 toorbar&#xff0c;但是直接设置为hiddenYES会出现其他页面压栈出…

实验二:Linux下Xen环境的安装

实验名称&#xff1a; Linux下Xen环境的安装&#xff08;centOS7&#xff09; 实验环境&#xff1a; 本次实验基本是在centOS7的环境下完成&#xff0c;系统内核和系统版本如下&#xff1a; 实验要求&#xff1a; 为centOS7的环境下安装Xen的平台&#xff0c;能够正常使用Xen下…

IDEA写vue项目出现红色波浪线警告如何解决??

1.看图 2.希望对大家有帮助&#xff0c;只要修改了这个就可以&#xff0c;如有任何问题都可以留言&#xff0c;谢谢大家 2019-09-1923:54:11 作者&#xff1a;何秀好 转载于:https://www.cnblogs.com/itboxue/p/11553395.html

数据可视化(BI报表的开发)第一天

课程回顾&#xff1a; ​ jQuery事件注册&#xff1a; ​ $(元素).click(function () {}); ​ $(元素).on(‘click’, [后代元素], function () {}); ​ $(元素).one(‘click’, function () {}); ​ 解绑事件&#xff1a;off ​ 自动触发&#xff1a; ​ $(元素).click…

在Block中使用weakSelf与strongSelf的意义

在Block中使用weakSelf与strongSelf的意义 我们都会声明一个弱引用在block中使用, 目的就是防止循环引用, 那么weakSelf与strongSelf一起使用目的是什么呢? 首先先定义2个宏: #define YXWeakSelf(type) __weak typeof(type) weak##type type; #define StrongSelf(type) __…

操作系统原理之操作系统简介(第一章)

一、 什么是操作系统 操作系统&#xff1a;是一种复杂的系统软件&#xff0c;是不同程序代码、数据结构、数据初始化文件的集合&#xff0c;可执行。 操作系统是用户与硬件之间的接口&#xff1a;操作系统与硬件部分相互作用&#xff0c;并且为运行在计算机上的应用程序提供执行…

数据可视化(BI报表的开发)第二天

9、公用面板样式 所有的面板的基础样式是一致的&#xff0c;提前布局好。 面板 .panel &#xff1a;box-sizing&#xff0c;边框图&#xff0c;大小&#xff0c;定位【51 38 20 132】容器 .inner&#xff1a;padding&#xff1a;24&#xff0c;36&#xff0c;定位外部拉宽标…

关于Xcode 7.3 7.3.1 断点 卡死 无限菊花

关于Xcode 7.3 7.3.1 断点 卡死 无限菊花 只要一打断点,就无限卡死,变量区一直菊花在转,只有强制退出Xcode才能重新编译,找了Google和Stack OvewFlowe依然没有解决办法. 删除项目,重新安装Xcode,重新运行程序一切办法都解决不到,百度上说的"build setting中将Enable Clang…