资讯专栏INFORMATION COLUMN

Python 基础篇 - Python入门

VioletJack / 3341人阅读

摘要:除此之外的特定形式还有二进制序列类型,那么我们在这里所说的序列主要包含以下三种列表列表是一种可变序列,一般形式为,方括号内的各项间用逗号分隔。

引言

对于以前没有接触过任何编程语言的人来说,首先能明确编程的目的很重要,往往能明确一个目的,在日后的学习中遇到困难时心态就会轻松许多。当今计算机文化的多元化发展,涌现出了大数据、分布式计算、神经网络、机器学习等众多新概念,即便这样,任何意义上的编程的核心目的都脱离不了数据处理,这点始终贯穿了计算机的发展史。那么我们就从数据处理入手,来看看我们要怎么处理数据。

知识点预备

在开始学习前,需要了解的知识点包括:

了解计算机组成

知道虚拟机概念和各层的作用

数学知识点:二进制数

推荐参考资料:

计算机组成——结构化方法

二进制数

说明

本文中不再讲解Python的安装和环境配置,如果需要了解,请自行百度。文中出现的案例,均使用Python自带的IDLE进行演示,代码前的“>>>”是IDLE中代码行首的标识符,在自己操作时不用输入。

数据类型

既然要进行数据处理,那么我们就先看看Python中所定义的数据类型,即我们所面对的是什么样的数据。我们从最简单几种的入手,看看你能否了解数据的概念。

数字

远了的不说,仅从中国的结绳记事说起,就可以见得数字出现于文字之前,起源更为久远。随着人类数学观的不断发展,数字的形态也不断演变,从计算机编程中出现的数字类型就可以窥斑知豹。Python中的数字类型不同于其他编程语言,这也是我最喜欢的地方,数字类型仅分为三类,即:整数(int)、浮点数(float)和复数(complex)。那么对于这三类数有不懂的同学,请自行百度补脑。Python中数字类型数据常用于赋值操作,当然后面会说到特殊的布尔型数值,同时也可用于判断和状态输出等。

整数(整型)

输入的每个整数代表即其自身,例如:

>>> x = 1
>>> y = 3

# 那么直接输入整数时,输出即整数自身,但不具有任何意义
>>> 3
3

知识点:除了我们通常直接输入整数赋值外,也可以使用Python的内建函数int()进行整数处理。关于int()详细的使用方法,可以点击链接参考。

浮点数(浮点型)

同整数一样,浮点数在我们的日常学习中不可或缺,例如:

>>> x = 3.1415926
>>> x
3.1415926
>>> 3.1415926
3.1415926

知识点1:除了我们通常直接输入浮点数赋值外,也可以使用Python的内建函数float()进行处理。关于float()详细的使用方法,可以点击链接参考。

知识点2:在我们的日常数字处理中,难免会遇到取整问题,在Python中的取整有两种方法,但得出的结果不尽相同。这两种可采用int()和round()进行取证操作,详细内容可点击链接进行参考。

复数

复数分为虚部和实部,每个部分中均采用浮点型数值,赋值方法如下:

>>> x = 3 + 4j
>>> x
(3+4j)

知识点1:除了我们通常直接输入复数赋值外,也可以使用Python的内建函数complex()进行处理。关于complex()详细的使用方法,可以点击链接参考。

知识点2:复数实部和虚部数值的获取可以采用z.realz.imag进行操作,如下:

>>> x = 3 + 4j
>>> x.real
3.0
>>> x.imag
4.0

那么以上三种就是我们Python学习中会遇到的大多数的数字类型,整个数理运算都离不开这三种,我们会在后续的内容中详细讲解数字运算和它们的方法。

说明

本文中所出现的数值一般采用十进制,除此之外还有二进制、八进制和十六进制等,想要详细了解请参考进制。

文本

文本类型在Python中全称是文本序列类型,那么它又分文机器偏向和人类偏向,各自代表的意思是机器易读和人类易读。人类易读即我们现在打开电脑后屏幕上所有你能看得懂语义的文本内容,像本文中的文字,又或者你日常办公软件中处理的文字,这些都属于文本类型数据。那么机器易读就显而易见是计算机能看得懂语义的文字了,也就是计算机可以直接进行处理的文字,那么如果你了解了我文章开始提供的两篇参考资料,在这里就可以容易明白了。

文本在Python中通常体现为字符串,即string,内建类型为str。说到字符串,我们可以举一个常见的例子:

Hello world!

那么懂英文的人应该都知道它的意思,那么这句话就是一个字符串,在Python字符串的体现形式是一句话或一个字加双引号("")或单引号(""),即:

>>> "Hello world!"
"Hello world!"
>>> "Hello world!"
"Hello world!"
# 两种输出结果一致

# 同样可以进行赋值操作
>>> x = "Hello world!"
>>> x
"Hello world!"

知识点:除了直接加引号赋值外,还可以使用Python内建函数str()进行操作,点击链接查看详细使用说明。

你可以看到,用我们通常人类的语义理解这句话,它里面包含了两个单词、一个空格和一个感叹号,当机器读取时,需要首先将字符串拆分为每个字符读入,然后再进行后续处理。那么这句话里一共包含了12个字符,即便空格和感叹号也是字符。说到字符,我们又不得不提到Unicode,给大家提供两处参考引用:

Unicode是什么

Unicode官方网站

看过参考资料后我们可以知道,每个字符对应一个代码点,从Python 3开始的编码规范统一采用“utf-8”,即Unicode 8位编码。那么关于如何查看每个字符的代码点,及如何将代码点转换为字符,可以参考Python内建函数chr()和ord()的详细使用说明。

序列

序列似乎与我们数学中所接触的数列有相似之处,数列是由特定规则组成的数字序列,即数列可以说是序列的子类,例如斐波契那数列。那么Python所说的序列中可以包含任意类型数据,当然range除外。而上面所说的文本,也就是文本序列其实是序列的特定形式,文本序列相当于Unicode代码点的不可变序列(后续我会讲到可变序列不可变序列的区别)。除此之外的特定形式还有二进制序列类型,那么我们在这里所说的序列主要包含以下三种:

列表(list)

列表是一种可变序列,一般形式为“[]”,方括号内的各项间用逗号分隔。列表通常存储同类型的数据,但是它也可以存储混合类型的数据,例如:

# 单一类型
>>> x = [1, 2, 3]
>>> x
[1, 2, 3]
# 混合类型
>>> y = [1, "一", 2, "二"]
>>> y
[1, "一", 2, "二"]

知识点:除了以上赋值方法外,还可以使用Python内建函数list()进行操作,点击链接查看详细使用说明。

元组(tuple)

元组是一种不可变序列,一般形式为“()”,圆括号内的各项间用逗号分隔。

>>> x = [1, 2, 3]
>>> y = (1, "一", 2, "二")
# 混合类型
>>> z = x, y
>>> z
([3, 2, 1, 4, 7], (1, "一", 2, "二"))

知识点1:上面的案例中采用了两种方式进行元组赋值,即y = (1, "一", 2, "二")z = x, y,注意这里面用圆括号或者直接用逗号分隔项赋值均可创建元组。
知识点2:除了以上赋值方法外,还可以使用Python内建函数tuple()进行操作,点击链接查看详细使用说明。

区间(range)

range通常表示某个范围内的连续数字,但我更愿意称它为区间。区间属于不可变序列,在我看来它属于特殊的元组,即在某个区间内有连续数字项的元组,形式如下:

>>> range(10)
range(0, 10)

知识点:区间的详细用法参考Python内建函数range()进行操作,点击链接查看使用说明。

数据间相互转化

以上提到的三种数据类型——数字、文本和序列,可以在一定范围内转化,下面就说一下可转化的类型:

数字转化为字符串

>>> x = 1
>>> y = 3.14
>>> z = 3 + 5j
>>> s1 = str(x)
>>> s2 = str(y)
>>> s3 = str(z)
>>> s1
"1"
>>> s2
"3.14"
>>> s3
"(3+5j)"

采用str()内建函数进行操作,注意字符串不能直接转换为数字。

列表、元组和区间转换

>>> x = [14, 3, 8, 7, 5]
>>> y = ("Hello", " ", "world", "!")
>>> z = range(10)

# 列表和元组间互相转换
>>> x1 = tuple(x)
>>> x1
(14, 3, 8, 7, 5)

>>> y1 = list(y)
>>> y1
["Hello", " ", "world", "!"]

# 区间转换为列表或元组
>>> z1 = list(z)
>>> z1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> z2 = tuple(z)
>>> z2
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

采用list()tuple()内建函数进行操作,注意列表/元组不能转换为区间。

字符串 、列表/元组间转换

# 列表/元组转换为字符串
>>> y = ("Hello", " ", "world", "!")
>>> s = ""
>>> for i in y:
        s += i

>>> s
"Hello world!"

# 字符串转换为列表/元组
>>> z = []
>>> for i in s:
        z.append(i)

>>> z
["H", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d", "!"]

上述的转化过程涉及到了for循环语句和列表的append()方法,这些会在后续的内容中讲到。注意元组没有append()方法,因此字符串只能转换为列表,如果需要输出结果为元组,那么可以再tuple()一下。

可以发现当采用迭代方法将字符串转换为列表时,输出结果与我们预想的结果,即类似y的值有所不同,这会在后续内容中详细的提供解决办法。

综述

本文中针对入门学习的人员,主要讲解了三种常用数据类型以及简单的数据赋值创建方法,其实除此之外,数据类型还有很多种,例如布尔型、迭代器、二进制序列、集合等。那么这些类型会结合实际案例一并讲解。关于数据的处理,数据处理并不仅限于本文中所提及的内容,譬如数字类型数据还可以进行数学运算,序列类型还有切片、排序等方法,那么这些方法同样会想本文中提及的,以引文链接的方式在日后的实例中给出详细解答。

说明

本文中所引用的CSDN中Python内建函数的文章,均是我本人所写,目前还在缓慢的推进中,其中不免出现翻译的纰漏,还望指正。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38556.html

相关文章

  • Python基础入门Python基础语法——基本数据类型【文末送书】

    摘要:布尔值布尔值和布尔代数的表示完全一致,一个布尔值只有两种值的数据类型可以通过内置的函数查询,例如还可以用来判断和的区别在于不会认为子类是一种父类类型。会认为子类是一种父类类型。基本功能是进行成员关系测试和删除重复元素。 ...

    Winer 评论0 收藏0
  • Python入门学习笔记汇总

    摘要:导语本文章汇总了本人在学习基础之绪论篇数据结构篇函数篇面向对象篇控制流程篇和元编程篇学习笔记的链接,打算入门的朋友们可以按需查看并交流。 导语:本文章汇总了本人在学习Python基础之绪论篇、数据结构篇、函数篇、面向对象篇、控制流程篇和元编程篇学习笔记的链接,打算入门Python的朋友们可以按需查看并交流。 第一部分:绪论篇 1、Python数据模型 第二部分:数据结构篇 2、序列构成...

    U2FsdGVkX1x 评论0 收藏0
  • Python

    摘要:最近看前端都展开了几场而我大知乎最热语言还没有相关。有关书籍的介绍,大部分截取自是官方介绍。但从开始,标准库为我们提供了模块,它提供了和两个类,实现了对和的进一步抽象,对编写线程池进程池提供了直接的支持。 《流畅的python》阅读笔记 《流畅的python》是一本适合python进阶的书, 里面介绍的基本都是高级的python用法. 对于初学python的人来说, 基础大概也就够用了...

    dailybird 评论0 收藏0
  • AI学习路线

    摘要:针对公司样本不足,采用小样本技术和深度学习技术结合,是项目落地的解决方案。深度学习作为当前机器学习领域最热门的技术之一,已经在图像处理领域获得了应用,并且展现出巨大的前景。旨在帮助同学们快速上手如何使用库来完整机器学习案例。 阶段一、人工智能基础 - 高等数学必知必会 本阶段主要从数据分析、概率论和线性代数及矩阵和凸优化这四大块讲解基础,旨在训练大家逻辑能力,分析能力。拥有良好的数学基...

    xuweijian 评论0 收藏0
  • 机器学习入门

    摘要:本文使用对超过条文本做主题抽取,一步步带你体会非监督机器学习方法的魅力。学习资料一份较全面的机器学习的学习资料,涵盖了系列,,,,等等。学习使用的过程中,我自己也在补充着机器学习和数据挖掘的知识。 特征工程完全总结(Python 源码) 那特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。文中分享了人们对特征工程的归纳和总结以...

    waterc 评论0 收藏0

发表评论

0条评论

VioletJack

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<