【21天python打卡】第5天 基础语法(3)

简介: ​​​​​大家好,今天是21天python打卡的第5天,上一篇python的顺序语句结构,条件和分支语句以及循环语句。今天我们继续讲解python基础语法,关于数据类型和字符串类型表示以及操作(索引和切片),最后我们简单举例部分函数的说明。

数据类型

python的数据类型分为基本数据类型复合数据类型

基本数据类型包含:数字,字符串

复合数据类型包含:列表,元组,字典,集合


数字类型

和其他编程语言相比,Python语言中的变量不需要显示数据类型的声明,Python的变量类型是根据变量的赋值内容而自动生成的。

Python 六大数据类型:


1.数字: 包含int(整型)、long(长整型,但python3中已经没有了,python3中只有int)、complex(复数)、float(浮点型)、bool(布尔型)

2.字符串(String): 比如:“hello world”,“python”

3.列表(List): 比如:[1,2,3,4],[’a‘,‘b’,‘c’,‘d’]

4.字典(Dictionary):例如:{“name”:“poge”,“age”:30}

5.元组(Tuple): 例如:(1,‘hello’,3)

6.集合(Set):例如:{’a‘,’b‘,’c‘,’d‘}

以上是Python最基本的6种数据类型


数字类型:

表示数字数值的数据类型称为数字类型

数字类型有哪些?

  1. 整型(int)
  2. 浮点型(float)
  3. 复数类型(complex)
  4. 布尔类型(bool)

tips:Python中使用type()函数可以查看变量的类型


字符串类型

字符串表示

在python语言中,字符串的表示有以下三种:

  • 单引号 ’
  • 双引号 "
  • 三重引号 “”"


单引号、双引号

在Python语言中,使用单引号(’ ')和双引号(" ")表示字符串是最常见的两种方式。


两种方式表示的字符串是等价的,且返回相同类型的对象。


单引号和双引号表示字符串没有本质的区别,可以在一种引号中嵌套另一种引号。


单引号和双引号表示的字符串是等价的,要配对出现,不能混用。否则将引发语法错误。


三重引号

三重引号可以是三个单引号,也可以是三个双引号。这种方式表示的字符串也叫做块字符串

三重引号是以三个同一种类型的引号开始,并以三个相同引号结束的字符串表示方式。


转义字符

Python语言使用反斜杠()表示转义字符。

转义字符是为了对其后紧接的字符进行转义,屏蔽其特殊含义,并将其作为普通字符来输出。


raw字符串

raw字符串的格式是r’…’。

在raw字符串中,所有的字符都是直接按照字面意思来解释,没有转义字符或者不能打印的字符。


字符串操作

Python语言中包含字符串的以下几个基本操作:

  • 字符串的索引
  • 字符串的分片
  • 字符串的合并
  • 重复字符串
  • 其他操作


索引和分片

索引

在Python语言中,字符串是一个有序字符的集合。

在一个字符串被创建之后,其中字符的相对位置就固定了。


第一个字符的索引编号定义为0,第二个字符索引编号为1,以此类推。在Python语言中,对字符串可以进行正向索引和反向索引。


下表直观表示了字符串中字符和其索引编号的对应关系:


90.png

上表中,中间行表示的是字符串中的每个字符内容,上面行表示该字符串正向索引时的索引编号,下面行表示该字符串反向索引时的索引编号。


索引是对单个元素进行的操作,Python语言中字符串的索引是通过元素下标进行索引的。


切片

使用Python语言的分片(slice)操作,来提取字符串中的子序列。


列表list

初始化列表

指定元素初始化列表

>>> num=['aa','bb','cc',1,2,3]
>>> print num
['aa', 'bb', 'cc', 1, 2, 3]

从字符串初始化列表

>>> a='oiawoidhoawd97192048f'
>>> num=list(a)
>>> print num
['o', 'i', 'a', 'w', 'o', 'i', 'd', 'h', 'o', 'a', 'w', 'd', '9', '7', '1', '9', '2', '0', '4', '8', 'f']

从元组初始化列表

1. >>> a=(1,2,3,4,5,6,7,8)
2. >>> num=list(a)
3. >>> print num

创建一个空列表

1. >>> num=[]
2. >>> print num
3. []


用某个固定值初始化列表

>>> initial_value=0
>>> list_length=5
>>> sample_list=[initial_value]*list_length
>>> print sample_list
[0, 0, 0, 0, 0]
>>> sample_list=[initial_value for i in range(10)]
>>> print sample_list
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

访问列表

访问单个元素

>>> num=[0,1,2,3,4,5,6,7]
>>> num[3]
3
>>> num=[0,1,2,3,4,5,6,7]
>>> num[0]
0
>>> num[-1]
7
>>> num[-3]
5

遍历整个列表

num=[0,1,2,3,4,5,6,7]
for a in num:
    print a,
for i in range(len(num)):
    print num[i],

输出结果:0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7

列表操作

更新列表

>>> num=[0,1,2,3,4,5,6,7]
>>> num[1]='abc'
>>> print num
[0, 'abc', 2, 3, 4, 5, 6, 7]

删除列表元素

num=[0,1,2,3,4,5,6,7]
for i in range(len(num)):
    print num[i],
del num[2]
print num

输出结果:0 1 2 3 4 5 6 7 [0, 1, 3, 4, 5, 6, 7]

列表操作符+*

列表对+和的操作符与字符串相似。+号用于组合列表,号用于重复列表。

以下为+操作符

>>> a=['a','b','c']
>>> b=['d','e','f']
>>> c=a+b
>>> print c
['a', 'b', 'c', 'd', 'e', 'f']

以下为*操作符

>>> a=['a','b','c']
>>> c=a*4
>>> print c
['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c']

列表函数

以下是列表相关函数的分类

91.png


元组tuple

Python的元组与列表类似,不同之处在于元组的元素不能修改;元组使用小括号(),列表使用方括号[];元组创建很简单,只需要在括号中添加元素,并使用逗号(,)隔开即可。


元组初始化

>>> t = (1, 2, 3)
>>> print(t)
(0, 1, 2)
>>> t = tuple(range(3))
>>> print(t)
(0, 1, 2)

元组函数

关于tuple相关的函数可以使用help命令获得。

help(tuple)
Help on class tuple in module builtins:
class tuple(object)
 |  tuple() -> empty tuple
 |  tuple(iterable) -> tuple initialized from iterable's items
 |  
 |  If the argument is a tuple, the return value is the same object.
 |  
 |  Methods defined here:
 |  
 |  count(...)
 |      T.count(value) -> integer -- return number of occurrences of value
 |  
 |  index(...)
 |      T.index(value, [start, [stop]]) -> integer -- return first index of value.
 |      Raises ValueError if the value is not present.

list和index方法的使用和list一模一样。


命名元组

Python有一个类似tuple的容器namedtuples(命名元组),位于collection模块中。namedtuple是继承自tuple的子类,可创建一个和tuple类似的对象,而且对象拥有可访问的属性。

在c/c++中,对应的数据类型是结构体struct。

struct Point//声明一个结构体类型Point,代表一个点
{
    int x;  //包括一个整型变量x
    int y;  //包括一个整型变量y
};  //最后有一个分号

这样就声明了一个新的结构体类型Point,有了类型就可以定义结构体的变量了。

Point p1,p2;

在c/c++中结构体的最大作用在于组织数据,也就是对数据的封装(可以把结构体理解为特殊的类)。在python中起相同作用的就是命名元组了。命名元祖的具体使用如下

>>> from collections import namedtuple    #依赖collections包的namedtuple模块
>>> Point = namedtuple('Point', 'x,y')
>>> p1 = Point(11, y=22)
>>> p1
Point(x=11, y=22)
>>> type(p1)
__main__.Point
>>> p1.x
11
>>> p1.y
22
>>> p1[0] + p1[1]
33
>>> a, b = p1
>>> a, b
(11, 22)

命名元祖的具体使用可以参见:namedtuple()以及python 命名元组


字典dict

字典相关的所有内容如下

92.png

字典(dictionary)是除列表之外python中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'};

每个键与值必须用冒号隔开(:),每对用逗号分割,整体放在花括号中({})。键必须独一无二,但值则不必;值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。


集合set

集合相关的所有内容如下

93.png

内置函数

一、数学相关

abs(a) : 求取绝对值。abs(-1)  

max(list) : 求取list最大值。max([1,2,3])

min(list) : 求取list最小值。min([1,2,3])

sum(list) : 求取list元素的和。 sum([1,2,3]) >>> 6

sorted(list) : 排序,返回排序后的list。

len(list) : list长度,len([1,2,3])

divmod(a,b): 获取商和余数。 divmod(5,2) >>> (2,1)

pow(a,b) : 获取乘方数。pow(2,3) >>> 8

round(a,b) : 获取指定位数的小数。a代表浮点数,b代表要保留的位数。round(3.1415926,2) >>> 3.14

range(a[,b]) : 生成一个a到b的数组,左闭右开。 range(1,10) >>> [1,2,3,4,5,6,7,8,9]


二、类型转换

int(str) : 转换为int型。int('1') >>> 1

float(int/str) : 将int型或字符型转换为浮点型。float('1') >>> 1.0

str(int) : 转换为字符型。str(1) >>> '1'

bool(int) : 转换为布尔类型。 str(0) >>> False str(None) >>> False

bytes(str,code) : 接收一个字符串,与所要编码的格式,返回一个字节流类型。bytes('abc', 'utf-8') >>> b'abc' bytes(u'爬虫', 'utf-8') >>> b'\xe7\x88\xac\xe8\x99\xab'

list(iterable) : 转换为list。 list((1,2,3)) >>> [1,2,3]

iter(iterable): 返回一个可迭代的对象。 iter([1,2,3]) >>> <list_iterator object at 0x0000000003813B00>

dict(iterable) : 转换为dict。 dict([('a', 1), ('b', 2), ('c', 3)]) >>> {'a':1, 'b':2, 'c':3}

enumerate(iterable) : 返回一个枚举对象。

tuple(iterable) : 转换为tuple。 tuple([1,2,3]) >>>(1,2,3)

set(iterable) : 转换为set。 set([1,4,2,4,3,5]) >>> {1,2,3,4,5} set({1:'a',2:'b',3:'c'}) >>> {1,2,3}

hex(int) : 转换为16进制。hex(1024) >>> '0x400'

oct(int) : 转换为8进制。 oct(1024) >>> '0o2000'

bin(int) : 转换为2进制。 bin(1024) >>> '0b10000000000'

chr(int) : 转换数字为相应ASCI码字符。 chr(65) >>> 'A'

ord(str) : 转换ASCI字符为相应的数字。 ord('A') >>> 65


三、功能相关

eval() : 执行一个表达式,或字符串作为运算。 eval('1+1') >>> 2

exec() : 执行python语句。 exec('print("Python")') >>> Python

filter(func, iterable) : 通过判断函数fun,筛选符合条件的元素。 filter(lambda x: x>3, [1,2,3,4,5,6]) >>> <filter object at 0x0000000003813828>

map(func, *iterable) : 将func用于每个iterable对象。 map(lambda a,b: a+b, [1,2,3,4], [5,6,7]) >>> [6,8,10]

zip(*iterable) : 将iterable分组合并。返回一个zip对象。 list(zip([1,2,3],[4,5,6])) >>> [(1, 4), (2, 5), (3, 6)]

type():返回一个对象的类型。

id(): 返回一个对象的唯一标识值。

hash(object):返回一个对象的hash值,具有相同值的object具有相同的hash值。 hash('python') >>> 7070808359261009780

help():调用系统内置的帮助系统。

isinstance():判断一个对象是否为该类的一个实例。

issubclass():判断一个类是否为另一个类的子类。

globals() : 返回当前全局变量的字典。

next(iterator[, default]) : 接收一个迭代器,返回迭代器中的数值,如果设置了default,则当迭代器中的元素遍历后,输出default内容。

reversed(sequence) : 生成一个反转序列的迭代器。 reversed('abc') >>> ['c','b','a']


今天就分享到这里,下一篇我们介绍面向对象。

相关文章
|
2月前
|
人工智能 Ubuntu IDE
【Python】基础:环境配置与基础语法
本文介绍了Python编程语言及其环境配置方法。Python由Guido van Rossum于1991年创建,以其简洁、易学和强大的功能著称。文章详细讲解了Python的主要特点、Windows和Ubuntu下的安装配置步骤、基础语法、控制流、函数、文件操作、模块使用及面向对象编程等内容,帮助读者快速入门Python编程。
75 4
|
26天前
|
IDE 数据挖掘 开发工具
Python作为一种广受欢迎的高级编程语言,以其简洁的语法和强大的功能吸引了众多初学者和专业开发者
Python作为一种广受欢迎的高级编程语言,以其简洁的语法和强大的功能吸引了众多初学者和专业开发者
36 7
|
4月前
|
XML 前端开发 数据格式
三分钟搞定 Python XPath 语法
XPath(XML Path Language)是一种用于在 XML 文档中查找信息的语言。它基于树状结构的 XML 文档,可以通过路径表达式来选取节点或节点集。也常常用来解析 HTML。 如果你是一个前端,对用路径获取元素可能陌生又熟悉。陌生是很多的路径,熟悉的路径上又有熟悉的属性和方法。下面我们就来探究一下 XPath 的魅力。
|
25天前
|
存储 索引 Python
Python 的基本语法
这些是 Python 的基本语法要素,掌握它们是学习和使用 Python 的基础。通过不断地实践和应用,你将能够更深入地理解和熟练运用这些语法知识,从而编写出高效、简洁的 Python 代码
52 5
|
27天前
|
存储 Python
Python编程入门:理解基础语法与编写简单程序
本文旨在为初学者提供一个关于如何开始使用Python编程语言的指南。我们将从安装Python环境开始,逐步介绍变量、数据类型、控制结构、函数和模块等基本概念。通过实例演示和练习,读者将学会如何编写简单的Python程序,并了解如何解决常见的编程问题。文章最后将提供一些资源,以供进一步学习和实践。
32 1
|
1月前
|
机器学习/深度学习 数据挖掘 开发者
Python编程入门:理解基础语法与编写第一个程序
【10月更文挑战第37天】本文旨在为初学者提供Python编程的初步了解,通过简明的语言和直观的例子,引导读者掌握Python的基础语法,并完成一个简单的程序。我们将从变量、数据类型到控制结构,逐步展开讲解,确保即使是编程新手也能轻松跟上。文章末尾附有完整代码示例,供读者参考和实践。
|
1月前
|
存储 Python Perl
python正则语法
本文介绍了正则表达式的基础知识及其在 Python 中的应用。首先解释了为什么要使用正则表达式,通过一个判断手机号的示例展示了正则表达式的简洁性。接着详细介绍了 `re` 模块的常用方法,如 `match()`、`search()`、`findall()`、`finditer()` 等,并讲解了正则表达式的基本语法,包括匹配单个字符、数字、锚字符和限定符等。最后,文章还探讨了正则表达式的高级特性,如分组、编译和贪婪与非贪婪模式。
24 2
|
2月前
|
存储 程序员 开发者
Python编程入门:从零开始掌握基础语法
【10月更文挑战第21天】本文将带你走进Python的世界,通过浅显易懂的语言和实例,让你快速了解并掌握Python的基础语法。无论你是编程新手还是想学习一门新的编程语言,这篇文章都将是你的不二之选。我们将一起探索变量、数据类型、运算符、控制结构、函数等基本概念,并通过实际代码示例加深理解。准备好了吗?让我们开始吧!
|
2月前
|
存储 C语言 索引
Python 语法及入门 (超全超详细) 专为Python零基础 一篇博客让你完全掌握Python语法
本文全面介绍了Python的基础知识,包括Python的诞生背景、为什么学习Python、Python的应用场景、Python环境的安装、Python的基础语法、数据类型、控制流、函数以及数据容器的使用方法,旨在为Python零基础读者提供一篇全面掌握Python语法的博客。
81 0
Python 语法及入门 (超全超详细) 专为Python零基础 一篇博客让你完全掌握Python语法
|
2月前
|
存储 数据可视化 数据处理
【Python篇】快速理解Python语法:全面指南
【Python篇】快速理解Python语法:全面指南
56 1