2. 无门槛学会数据类型与输入、输出函数,滚雪球学 Python
学习一门语言应该是一件充满乐趣的事情,为什么要把它变难呢?
本系列文章将在2021年春节前完成,欢迎关注,点赞,评论 --- 梦想橡皮擦
二、Python 基本数据类型与输入、输出函数
2.1 基本数据类型
对于任何一门语言都存在一些基本类型,Python 也不例外,只不过数据类型在 Python 中要远远比其他语言简单,基本分为以下几种。
- 数值数据类型,常见的是整数和浮点数
- 布尔值数据类型,就是常说的真和假
- 字符串数据类型
这里要注意,提及到数据类型,特指的是变量的数据类型,在具体学习前,先学会如何看 Python 中的数据类型,才好下手学习。
这个看数据类型是啥的函数,叫做 type
,见名之意,所以咱们变量起名字的时候,也要学习一下官方命名技巧。
例如,看一下一个值为 10 的变量 x 的数据类型,代码如下:
x = 10
print(type(x))
运行结果为
<class 'int'>
该输出结果就表示变量 x 的数据类型是整数,你可以用同样的办法测试一个小数。
x = 10.1
print(type(x))
运行结果显示为:
<class 'float'>
没错,这个是浮点数。
2.1.1 数值数据类型
上文你已经接触到了 Python 中的两种数值数据类型,一个叫做整数,一个叫做浮点数,对应到数学上的区别就是一个带小数点,一个不带,其实这就是最根本的区别。
如果整数和浮点数相加,最终的结果是浮点数,Python 会自动给转换过去,代码如下:
x = 10.1
y = 10
z = x + y
print(type(z))
运行代码,可以核对下 z 的数据类型是否是 float
即浮点数。
2.1.2 整数的不同形式表示
对于编程语言学习者来说,你一定听说过计算机处理的都是二进制,所以编程语言学起来特别难?What?学习编程语言跟二进制是有关系,但是跟你学会一门赚钱的手艺确没啥关系。或者我说的在直接一些,你在北京拿个 1W 块钱的薪水,各种进制的转换可能你都用不到。
将整数显示成二进制格式
注意一会还会将整数显示成八进制与十六进制,这里处理的都是整数,也就是 1,2,3,4 这种不带小数点的,浮点先不要考虑。
又一次需要用到一个后续才会明确的知识点,叫做 Python 内置函数,将整数转换成二进制格式显示用到的函数叫做 bin
,代码如下:
x = 10
print(bin(x))
输出结果为:
0b1010
二进制以 0b
开头,后面都是 1,0 排列,如果你看到 Python 代码中出现了这样的整数,要认识这就是一个普通的数字,只是展示方式不同。
将整数显示成八进制格式
将整数转换成八进制用到的内置函数是 oct
,具体代码可自行尝试,八进制显示的数字以 0o
开头。
将整数显示成十六进制格式
以 0x
开头的数字为十六进制格式展示,转换用函数为 hex
。
截止到这里,你已经对整数与整数的不同形式展示有了初步的认知,并且这些都不重要,重要的是你学习之后,看到 Python 代码中出现以这些符号开头的内容,你知道它就是一个普通的整数就好了。
2.1.3 数据类型强制转换
这个地方只是类型强制转换的冰山一角,为何学习也是因为你已经掌握了整数和浮点数,大概也对它们之前的区别有了那么一丝认识。其实它们之前还可以进行互相的转换,只不过转换你要承担一些风险,为啥呢,往下看。
x = 10.5
print(int(x))
上述代码,我将浮点数进行了类型强制转换,注意在 x 前面套了一个 int 函数的壳,函数后面咱才会学习,现在你能模仿代码编写,能看懂我说的是啥就行。
在变量 x 外面套了一个 int()函数,然后运行,输出的结果是 10
,风险出现了,浮点数转换成整数,小数丢掉了…是真正的丢掉了,这种场景在后续编程中你会经常碰到。
int 其实也是 Python 的一个内置函数,它会尝试将任何数据类型的变量转换成整数,注意是任何数据类型的变量。
同理,你如果能猜到将任何数据类型的变量转换成浮点数的函数名为 float
,证明你已经开始慢慢摸到 python 的精髓了。
好,到现在,又学习到了两个内置函数,一个 int
,一个 float
,请一定要实际的打一下代码,眼睛会,手不一定会。
2.1.4 扩展几个数值数据类型常用的函数
虽然学的不多,你现在应该注意到一个词 – 函数出现的频率在 Python 中极高,这也是为什么很多其他语言的使用者,会把 Python 藐视成一堆函数凑成的语言了,哼~浅薄者。
数值数据类型常用的函数,这里简单举几个例子,后面还会详细学习。
- abs() 计算绝对值
- pow() 次方运算
- round() 四舍五入
- max() 取最大值
- min() 去最小值
参考代码如下,临摹 2 遍知道是在干啥就行,下面的代码涉及了函数中参数的概念,不做过多的解释。
# abs() 计算绝对值
a = -1
print(abs(a))
# pow() 次方运算
x = 2
c = 3
print(pow(x,c))
# round() 四舍五入
d = 34.6
print(round(d))
# max() 取最大值
print(max(1,2,3))
# min() 去最小值
print(min(9,10,6))
2.1.5 布尔值数据类型
布尔来自英文 boolean 的音译,在 Python 中布尔值有两种,一个是真(True),另外一个就是假(False),使用 type 函数测试数据类型布尔值得到的是 bool。
注意 bool 在有的地方也会归为整数,是因为真(True)被强制转换之后等于 1,假(False)被前置转换之后等于 0。
代码如下:
x = True
print(int(x))
print(int(False))
布尔值以后会经常用在条件判断上,属于必须掌握的知识点,后续咱还会碰到它。
2.1.6 字符串数据类型
字符串是 Python 中使用场景最多的数据类型了,也是知识点最多的数据类型,一般情况下,两个双引号("
)或者两个单引号('
)中间的部分就是字符串,在使用的时候一定要注意嵌套问题。例如下述代码:
my_name = "梦想橡皮擦"
print(my_name)
my_name = '梦想橡皮擦'
print(my_name)
my_name = '梦想"橡皮擦'
print(my_name)
print(type(my_name))
下面这句话要记住,单双引号都是成对出现的,双引号里面要嵌套单引号,例如上述第三段代码,单引号里面要嵌套双引号。
字符串的连接
两个字符串通过 +
可以进行连接,这里的加号就不是数字之间加法的含义了,测试如下:
a = "my"
b = "name"
c = a+b
print(c)
数字与字符串相加,会提示错误,如果不想报错,可以通过 str
函数将数字转换成字符串,例如:
a = 123
b = "name"
# str(a) 将整数变量a转换成字符串
c = str(a) + b
print(c)
多行字符串
在前文已经学习了三引号可用于注释,其实三引号真正的用途依旧是字符串场景,表示多行字符串。
my_str = """
我是字符串的第一行
我是字符串的第二行
我是梦想橡皮擦
我还是曾经那个少年
"""
print(my_str)
转义(逸出)字符
在字符串中有一些特殊的字符,需要特别处理,例如,就想在单引号中使用单引号,那需要如下格式编写:
a = 'I\'m a girl '
print(a)
注意,使用\'
之后就可以在单引号字符串中使用单引号了,\'
就是转义字符。常见的转义字符如下:
转义字符 | 含义 |
---|---|
’ | 单引号 |
" | 双引号 |
\t | 制表符 |
\n | 换行 |
\ | 反斜杠 |
还有其他转义字符,初学阶段不做展开,以上几个在代码中尝试两遍,还是知道是干啥的即可。
当然有些时候,你需要避免转移字符进行转义,那需要在整体字符串前增加一个特殊的字母 r
,字符串前面增加特殊字符有很多,今天只学习这一个。例如下述代码。
a = r"I\nm a girl"
print(a)
此时的\n
不会转义成换行符,输出内容就是字符串原有的样子:
I\nm a girl
使用pycharm
这款工具,你能很清楚的认出转义字符来,它存在颜色区分:
字符串快速复制
Python 中有一个独特的小技巧,可以快速复制字符串,使用的是数学符号 *
,例如下述代码,将快速复制一堆 #
号。
print("#"*100)
2.2 输入与输出
本小节核心学习的两个函数,一个是 print
,另一个是 input
,在学习它们两个之前,在补充一个内置函数 help
该函数可以查看其它函数的使用文档。比如使用 print
测试:
help(print)
输出内容如下图所示:
这其中就包含了 print
函数的完整说明,最重要的部分如下:
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
其中:
- value 表示要输出的数据,可以多个,用逗号
,
分隔 - sep 输出多个数据时,分隔符号,默认是空格
- end 输出一行末尾输出的符号
- file 输出位置,默认输出控制台,就是黑窗口中,可以设置到具体文件
- flush 是否清除数据流缓冲区,默认为 False(该内容先不做涉及)
以上这些其实准确的说法是函数参数。
编写测试代码,可临摹运行:
# 输出多个数据
print("hello","dream")
# 多个数据输出的分隔符
print("i","love",sep="#")
运行结果和其它参数自行测试,上述内容重点为多个数据输出,即 print(a,b,d,d)
必须掌握。
2.2.1 格式化 print 输出
在很多教材中本部分内容会占用比较多的时间,其实大可不必,因为东西太杂,学过反而忘记了,不如简单学习在大脑留下一个“恩,有这个东西”的痕迹即可。
格式化输出就是这样一个碎的知识点,格式化输出 print 的意思就是按照你的意思输出东西到任何载体上。
首先要学习的就是 格式化字符
,常见的有下面这几个。
%d
整数输出%f
浮点数输出%x
十六进制输出%o
八进制%s
字符串输出,其实会这一个就行了
例如下述代码就是一个案例:
name = "橡皮擦"
age = 18
score = 100
# 格式化一个变量输出
print("我是 %s" % name)
# 格式化多个变量输出
print("我是 %s 今年 %d岁了,我考试得了%d分" % (name,age,score))
注意格式化的时候,前面是一个待格式的字符串,把格式化字符作为一个特殊的符号放在一个字符串里面,相当于占了一个坑位,字符串后面跟着一个 %
,该符号固定为 %
,在后面是替换的内容,可以是变量名,也可以直接是值,如果前面的占位的是 %d
,后面就是数字,如果是 %s
,后面就是字符串。一般这里会配上下图进行说明:
如果占位的格式化字符和后面给的实际变量的值匹配不上,例如前面是 %d
,后面 age
给了一个字符串,就会报错:
name = "橡皮擦"
age = 18
score = 100
print("我是 %s" % name)
print("我是 %s 今年 %d岁了,我考试得了%d分" % (name,"nnn",score))
但是如果前面是 %s
,后面给字符串,就会自动转换过去。
name = "橡皮擦"
age = 18
score = 100
print("我是 %s" % name)
print("我是 %s 今年 %s岁了,我考试得了%d分" % (name,18,score))
所以一般不严格的时候,前面的占位符通通用 %s
就可以了。不严谨,但是好用啊~
精准控制格式化的输出
精准化输出主要用于浮点数,因为浮点数存在小数点,控制小数点显示的位数就显得重要了,本文不做过多的涉及,经验告诉我,很多同学学过去也就忘记了,你只需要记住 Python 也可以精准控制浮点数的显示就可以了。
2.2.2 format 函数
上述 %
在学习阶段使用一下还可以,在实际的格式化输出中,更多的还是使用 format 进行操作,format 在使用的时候,通过 {}
符号进行占位,例如:
print("我是{},今年{},考试得了{}".format(name,age,score))
所有需要占位的地方都使用 {}
解决,不用去记住各种类型,也不会出现 %
这个莫名奇妙的符号。
2.2.3 input 数据输入
input 执行的和 print 恰好想法,通过 help 查看一下:
参数比较简单只有一个输入提示语。测试代码:
name = input("请输入你的姓名:")
print("输入的姓名为{}".format(name))
代码运行会要求你输入自己的姓名,回车之后会格式化输出。默认情况下 input
获取的输入数据会存储到一个变量中,本例为 name
,该变量类型为字符串类型,如果你需要获取用户输入数字,记得通过 int
进行一下转换。
input
比较简单,本文先介绍这些。
2.3 这篇博客的总结
以上内容核心介绍了整数、浮点数、布尔与字符串数据类型,重点要掌握的是类型之间的转换与字符串的初步认识,对于格式化输出部分掌握 format
即可应付接下来的大多数场景,其余内容酌情遗忘吧,毕竟学编程还是蛮费脑力的。
最后一碗毒鸡汤
好好学下去 每天都有新打击
O(∩_∩)O 哈哈~
- 点赞
- 收藏
- 关注作者
评论(0)