编程的基础概念以及Python的数据类型

简单认识基础概念以及数据类型

  • 1、基础概念
    • 1.1、标识符
      • 1.1.1、关键字
      • 1.1.2、命名规则
    • 1.2、变量
      • 1.2.1、使用
      • 1.2.2、使用变量的好处
    • 1.3、常量
      • 1.3.1、使用
      • 1.3.2、注意(一定要看)
    • 1.4、表达式
    • 1.5、语句
    • 1.6、程序
    • 1.7、函数
      • 1.7.1、函数的分类
        • 1.7.1.1、内置函数
        • 1.7.1.2、自定义函数
      • 1.7.2、函数的两个要素
        • 1.7.2.1、参数
        • 1.7.2.2、返回值
  • 2、数据类型
    • 2.1、数值类型
        • 2.1.1、整型
        • 2.1.2、浮点型
        • 2.1.3、复数
        • 2.1.4、布尔类型
    • 2.2、字符串
      • 2.2.1、转义字符
      • 2.2.2、长字符串
      • 2.2.3、格式化字符串
    • 2.3、字符串的其他操作

1、基础概念

1.1、标识符

什么是标识符?
先举个栗子:

我在玩一款开放形式的探索游戏,在探索过程中,我发现有一个地方资源很丰富,但是发现自己现在没有工具,那么我可以先在地图上打个标记,用来表示个位置,那么之后等我有了工具就可以直接打开地图找到这个标记,能快速到达这个地方。那这个标记就可以看做是一个标识符。

再举个栗子:

记得一个数学问题:
A、B两地相距280千米,一艘船已既定速度在其间航行,顺流而行用14个小时从A到B,逆流而行用20个小时从B到A,假设水流速度为恒定均速,求船在静水中的时速和水流时速?

哎呀,看到这个问题又想起了学习的时光,不过举这个例子,不是为了解题,而是为了理解。
先来整理一下思路:

现在我们想要的东西是多少,还不知道,但是我们就知道我们要用这两个东西。那么怎么办?
数学中我们可以设:船在静水中的时度为X,水流时度为Y,那么我们就可以直接使用这两个我们暂时不知道的东西来处理一些问题。
这样这题就可以这样解:
20(X-Y) = 280
14(X+Y) = 280
不知道有没有人这样想过:
那我不用X,Y也可以呀,我也可以这样写:
20(船在静水中的时速-水流时速)=280。。。。。
其实这个跟X,Y是一个概念

OK,说道这里,我们结合上面的标识符来理解一下

我们说标识符呢,就是用来标记一个东西,方便我回头来找,来用
那么上题中的X,Y是不是就是一个标识符?用来标识两个数字用的?
同样的道理,我们用汉语说的"在静水静水时速"、“水流时速”,也是标识两个数字
这样说Y跟"水流时速"都标识一个东西,就是一个概念吧

为什么要设X,Y,就是为了用的时候方便呀。
那么我们就像设X,Y一样的道理,在程序中,也有一些东西不太好直接拿来用,那么就给他起一个名字(假如用符号a),用来标识这个东西,以后我们用的时候可以直接用a来表示这个东西,会很方便。那么符号a就是程序中的一个标识符

简单来说,标识符就是用来标注识别某个东西的符号,简称标识符。
目的就是为了方便我们使用。

标识符一般都会用在变量、常量、函数、语句块等命名用

1.1.1、关键字

说完标识符,那么就要说一下关键字。
什么是关键字呢,就是Python这门语言内部使用的一些拥有特殊含义的字符(也就是Python已经占用了这些标识符,你就不能再用了)

我们可以在编辑工具中运行help()函数,并在控制台出入keywords来查看Python的关键字有哪些

编程的基础概念以及Python的数据类型_第1张图片
这里就不过多说了。

1.1.2、命名规则

  • 标识符中可以包含字⺟、数字、_(下划线)、$,但是不能使⽤数字开头
    如:name1(✔)、name_1(✔)、1name (✖)、1_name(✖)
  • Python关键字不能作为标识符
  • 命名方式
    • 驼峰命名法
      • 小驼峰命名法
        第一个单词以小写字母开始,之后的每个单词的首字母大写
        如:firstName、lastName
      • 大驼峰命名法
        每个单词的首字母都大写
        如:FirstName、LastName
        -下划线命名法
        每个单词之间用下划线进行连接
        如:first_name、last_name

1.2、变量

说起变量,就先从容易理解的地方解释:

变量,就是一个会变的数据。

举个例子:

我们现在都在用手机,而现在手机基本都有一个功能,就是能够设置一个锁屏密码,在解锁屏幕的时候来验证当前使用手机的是不是手机的主人。
你就拿这个用来验证的东西来说,我们叫这个东西锁屏密码、手机密码等等,但是这些叫法指的就是用来验证你是不是你的一个数据,这样叫着太累,我们起个标识符叫pwd。好了,拿起手机,输入pwd(密码):123456.
第二天,你觉得这个pwd不安全,改成987123,这个987123我还是用pwd来标识的,只不过是pwd标识的内容变了。
而手机密码这个数据,就是一个可以变的数据,也就是变量。
而为了叫起来方便,我们起了个名字叫pwd,那这个pwd就是这个变量的名字,叫变量名

简单来说,变量其实就是为标识符,用来标识一个可能会改变的数据。

1.2.1、使用

那来看看代码中怎么定义和使用吧
编程的基础概念以及Python的数据类型_第2张图片

如上图:
先定义了一个变量asong用来表示一个数据(一首歌的名字),我就可以通过print(song)输出变量song,就可以直接通过变量名song来使用song所表示的数据。
而不是像上一篇文章中一样print('漂洋过来来看你')这样打印

1.2.2、使用变量的好处

如果有人说,为什么不可以直接打印这句话。
那么请看看这种情况

编程的基础概念以及Python的数据类型_第3张图片

假如这是一个完成的程序,有那么多地方要用到这个数据,是不是每次都要把这首歌的名字写一遍,感觉还是写变量名song方便啊。当然这是其中一个好处。
另外还有一个重要的一点,假如说,今天听的是 漂洋过海来看你,过两天,突然觉得另一首歌好听,我想改,不要漂洋过海来看你了,要寂寞沙洲冷,这个时候一看,我的天,瞬间就感觉冷了,那么多地方要改!!!

而如果通过变量的方式
编程的基础概念以及Python的数据类型_第4张图片
我只需要在定义变量的时候改一下,那么只有用到这个变量的地方就都变了

1.3、常量

变量是会变的数据,
而常量,跟变量是双胞胎,也是表示一个数据,只不过这个数据平常就是这个样子,变不了、不能变、变了就有问题了。

就比如说圆周率,这个变不了,不过你的圆多大,多小,甚至小到肉眼看不到,甚至说这个世界不存在了,圆周率的值依旧是这个值,永远不会变。

圆周率这个是客观存在的常量

除了这个之外呢,还有主观定义的常量:

比如数字1,代表的就是一,而不是用数字2来表示一,这是在最初准备使用它的时候就定好的规矩,并且严重声明了这个规矩是死了,以后不会改了。不管怎么样都不能该,改了那就会出现很多问题。

那这个数字1呢,就是主观定义的常量。

1.3.1、使用

编程的基础概念以及Python的数据类型_第5张图片

1.3.2、注意(一定要看)

因为种种原因,Python并未提供如C/C++/Java一样的const修饰符,换言之,python中没有常量,至少截止2015年年末,还没有这个打算。Python程序一般通过约定俗成的变量名全大写的形式来表示这是一个常量。
所以在常量这方面,一定要严格按照约定的走,不然假如有人看到这个变量,给修改了,就有可能会导致一些无法预计的问题,造成损失。这不是危言耸听!

1.4、表达式

是由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合

其实说白了就像是数学上的一种公式,比如 1 + 2、5 * 8、或则变量 X + Y。
表达式一般就是用来计算一种结果,并不会对程序产生什么实质性的影响

这里就不多叙述了。

1.5、语句

语句是什么?

它在语法上自成体系的单位,有一个词或语法上有关联一组词构成

简单说就是我们写的代码,一般是要完成一个操作或功能

  • 是一行给变量赋值的代码:
a = 10
  • 打印信息功能
print(123)

语句一般会对程序产生影响。

1.6、程序

说程序,还是先说个笑话当例子:

把大象装进冰箱需要几步?
1、打开冰箱
2、把大象装进冰箱里
3、关上冰箱

虽然是个笑话,但却能经典地解释什么是程序:把大象装进冰箱就是一个程序。
来看看程序这个词的定义:

为进行某项活动或过程所规定的途径

自述一下:就是我们要做完成一个事情,就要通过其规定的步骤一步一步来进行。
就如大象装进冰箱,首先要打开冰箱,不然没法装进冰箱里面,要先把大象装进冰箱里才能关上冰箱。不然就无法完成把大象装进冰箱这个事情

而计算机中的程序,就是一组计算机能识别和执行的命令,这些命令什么作用?就是告诉计算机,我要实现这个功能,做这个事情,你要先做什么,然后做什么,最后再做什么,做完这件事情之后要干嘛。
所以,程序是一个指令的序列。

简单的示例:
编程的基础概念以及Python的数据类型_第6张图片
图中这三行代码就可以说是一个程序

1.7、函数

我们写了一段代码程序用来实现某一个功能,然后我们将这段代码放在某个地方,然后等用的时候,通过特殊方式进行使用。那这一部分代码就是一个函数。

书写方式
编程的基础概念以及Python的数据类型_第7张图片
其实函数也是语句

1.7.1、函数的分类

1.7.1.1、内置函数

内置函数又叫内建函数。
就是Python内部已经定义并完成的一些函数
比如之前用的print()打印函数

1.7.1.2、自定义函数

自定义函数,就是上面图片中我们自己定义并完成其功能的函数。

1.7.2、函数的两个要素

1.7.2.1、参数

**参数:**在函数名后面的括号中的那个标识符所代表的就是参数
参数分为两种:形参和实参

  • 形参
    形参,就是形式上的参数,也就是说这个只是嘴上先说的,还并没有真实存在的,
    意思就是我们在创建一个函数的时候,可能需要某些数据,但是这些数据可能是根据使用这个函数功能的时候才临时决定的一些数据,这个时候呢,我们就先定义好参数名字来表示将来可能会有什么样的数据进来,我们先通过参数名来操作这个数把程序写好。
    如:def doubleTheNum(num)中的num
    那这个地方的参数就是形参
  • 实参
    实参就是与形参所对应的,真实存在的参数
    当我们需要调用一个函数,而这个函数又需要传递一个参数进去帮助其实现自身功能,这个时候传入进入的数据就是实参,
    如:print('哈哈哈')这里的'哈哈哈'就是实参

1.7.2.2、返回值

如上图中的例子:
范围的返回值,就是这个函数在完成一系列操作之后,要返回给调用者的数据。
举个例子:

小张是个学霸,然后小李呢,也是刻苦努力的学习,这不,小李要把刚完成的练习试卷交个小张,让小张帮忙批改一下。那么小张在完成批改试卷的操作,应该要把批改玩的试卷返回给小李。

不过注意的是:并不是所有的函数都必须有返回值,也就是不是所有的操作执行玩之后都需要告知结果

开学了,小李和同学们要把寒假作业交给小张,让小张交给老师进行批改。那小李把作业交给小张之后,小张不需要再给小李反馈任何信息,直接把作业交给老师批改就好了。

2、数据类型

The principal built-in types are numerics, sequences, mappings, classes, instances and exceptions.
主要的内置类型有:数值类型、序列、字典、类、实例和异常

但是Python的基本数据类型一般分为:数值、字符串、列表、元组、字典、集合这六种

现阶段先说数值和字符串两种类型

2.1、数值类型

2.1.1、整型

There are three distinct numeric types: integers, floating point numbers, and complex numbers. In addition, Booleans are a subtype of integers
这里有三种明显的数值类型:整型、浮点型、复数。除此之外,布尔类型是整数的一个子类型

数字类型是不可更改的对象。对变量改变数字值就是生成/创建新的对象

整型:

Integers have unlimited precision
整型拥有绝对的精度

整型:就是像1、2、3这样没有小数位的数字,就是整型。

扩展:

整型分标准整型和长整型(Python2.7及之前的有这种类型)

标准整型
int,标准整型,在大多数32位机器上标准整型取值范围是-231到231-1,也就是-2147483648~2147483647,如果在64位机器使用64位编译器,那么这个系统的标准整型将是64位。

2.1.2、浮点型

Floating point numbers are usually implemented using double in C
浮点型在C中一般使用double(双精度)实现

浮点型值通常都有一个小数点和一个可选的后缀e(大写或小写,表示科学计数法)。在e和指数之间可以用正(+)或负(-)表示指数的正负(正数的话可以省略符号)

扩展
float类型,默认最多保留精度17位
编程的基础概念以及Python的数据类型_第8张图片

2.1.3、复数

Complex numbers have a real and imaginary part, which are each a floating point number
复数由实数和虚数构成,他们都是浮点数

*目前限不研究这个

2.1.4、布尔类型

从Python2.3开始Python中添加了布尔类型。布尔类型有两种True和False。对于没有__nozero__方法的对象默认是True。

对于值为0的数字、空集(空列表、空元组、空字典等)在Python中的布尔类型中都是False。
编程的基础概念以及Python的数据类型_第9张图片
整型的子类型
直接上图验证

编程的基础概念以及Python的数据类型_第10张图片
能够转为int,能够与数字进行计算

补充
上图最后一个计算,整数与浮点数进行计算,所得的结果是浮点数。

Python fully supports mixed arithmetic: when a binary arithmetic operator has operands of different numeric types, the operand with the “narrower” type is widened to that of the other,
Python完全支持混合算法:当二进制算术运算符具有不同数值类型的操作数时,窄(长度短)类型的操作数被扩展到另一种(长度长)操作数,

where integer is narrower than floating point, which is narrower than complex.
其中整型窄(短)与浮点型、浮点型窄(短)于负数

A comparison between numbers of different types behaves as though the exact values of those numbers were being compared.
两个不同类型的数字进行比较的时候,是在比较他们确切的数值

2.2、字符串

字符串就是由各种数字、字母、各种符号组成的一串字符
编程的基础概念以及Python的数据类型_第11张图片

注意

  • 字符串的表现实行是有一对英文双引号("")或者一对英文单引号(’’)包裹的一串字符
  • 单引号和双引号不能混和使用,也就是,如果开头是双引号,则不能以单引号结尾
    在这里插入图片描述

2.2.1、转义字符

编程的基础概念以及Python的数据类型_第12张图片
如图,原本的意思是想要输出这样的结果:

\a\a\a

结果却是输出了不知道什么的东东。

假如当我们需要使用一些特殊符号的时候就可以使用转义字符来实现
编程的基础概念以及Python的数据类型_第13张图片

  • 转义字符是⼀种特殊的字符常量。转义字符以反斜线""开头,后跟⼀个或⼏个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符

  • 常见的转义字符

写法 含义
\t 表示制表符
\n 表示换⾏符
\ 表示反斜杠
表示 ’
\ ‘’ 表示 ‘’

2.2.2、长字符串

长字符串,又叫做文档字符串,使用三重单引号( ’ )来表示

长字符串的特点就是保留内容的格式,比如回车换行
编程的基础概念以及Python的数据类型_第14张图片

2.2.3、格式化字符串

  • 拼串

用 + 进行字符串拼接
编程的基础概念以及Python的数据类型_第15张图片

  • 参数传递
  • 占位符
	%s  #字符串占位
	%f  #浮点数占位
	%d  #整数占位
string = "good"  #类型为字符串

#输出的打印结果为 string=good 
print("string=%s" %string) 
   
# 输出的打印结果为 string=good
# 数字3的意思是:字符串的长度为3。
# 当字符串的长度大于3时,
# 按照字符串的长度打印出结果
print("string=%3s" %string) 

# 输出的打印结果为 string=  good
# 当字符串的长度小于6时,在字符串的左侧填补空格,
# 使得字符串的长度为6
print("string=%(+)6s" %string)  

# 输出的打印结果为 string=good  
# 当字符串的长度小于6时,在字符串的右侧填补空格,使得字符串的长度为6
print("string=%-6s" %string)  

# 输出的打印结果为 string=goo(good)(%.3s的意思是:截取字符串的前3个字符,当截取字符串的字符长度大于字符串时,输出的结果是整个字符串)
print("string=%.3s" % string)

#小数点后的数字表示截取的字符串长度
print("string=%.3(6)s" %string)

 # 先是根据小数点后面的数字b截取字符串,
 # 当截取的字符串长度小于a时,需要在字符串的左侧填补空格,
 # 使得字符串的长度变为a
print("string=%a.bs" %string) 

 # %*.*s表示精度, 两个*的值分别由%string前面被两个逗号隔开的数值来指定。
print"string=%*.*s" %(6, 3, string)) 

整数:

print ("He is %d years old"%(25))
# 结果 He is 25 years old

浮点数

print ("His height is %f m"%(1.83))
# 结果His height is 1.830000 m
  • f’{变量}’/ str.format

name = 'jack'
age = 25
height = 1.88
printStr = f'His name is {name},He\'s {age} year old and his height is {height}m'
print(printStr)
# His name is jack,He's 25 year old and his height is 1.88m


formatStr = 'His name is {},He\'s {} year old and his height is {}m'
printStr = formatStr.format('Jack', 25, 1.88)
print(printStr)

# His name is Jack,He's 25 year old and his height is 1.88m

2.3、字符串的其他操作

len()  # 字符串的⻓度
max()  # 最⼤值
min()  # 最⼩值

split()  # 分割字符串
join()  # 拼接字符串

#去空格
s.strip() #左右两边去空格
s.lstrip() #去左边空格
s.rstrip() #去右边空格

#字符串⼤⼩写
s.upper() # 全部⼤写
s.lower() # 全部小写
s.isupper() # 判断是不是全部⼤写
s.islower() # 判断是不是全部⼩写

你可能感兴趣的:(Python)