Python小课--Python基础:数据和函数(二)
文|仟樱雪
在Python小课-1-2节中,已经学习了基础模块--数据--数据类型(整数、字符串),以及基础模块--变量,基础模块--函数(input函数、print函数)。
1、基础知识--数据篇--数据类型
数据:主要分为数据类型、变量、编码、类与对象;
函数:
计算机其实就是一个做数学运算的机器,所以计算机程序的主要任务就是处理各种数值、文本、音频、视频、图像等各种类型的数据;
本节主要内容如下
一、Python的几种简单数据类型:字符串、整数、浮点数;
二、相关的函数:str(),int(),float(),type(),len()
三、数据类型的转换
1、数据类型--字符串
(1)字符串:用单引号或者双引号括起来的任意文本,例如:'樱雪';英文是string,计算机中一般简写为str,
字符串的呈现方式一般是用单引号或者双引号括起来的文本,比如 '樱雪':
print('樱雪')
print('樱雪')
print('樱雪')
print('樱雪')
结果显示
樱雪
樱雪
樱雪
樱雪
说明:
1、第一行被打印出来的字符串樱雪,和第二行被打印出来的字符串樱雪,没有任何的不一样。所以单引号和双引号的效果是一样的。
2、单引号和双引号只是一种表达方式,不是字符串的一部分。例如字符串 'ABC', 就是A 、B、C这三个字符而已。
(2)字符串的应用
应用一、包含单引号、双引号的字符串应用
如果字符串内部包含了单引号【''】和双引号【""】的处理:利用【转义字符\】来标识。
例如:如果打印:Let's go 这个字符串,根据已经学过的知识,我们会写:
a = 'Let's go'
print (a)
说明:
i、Python会报错: SyntaxError: invalid syntax,意思是“语法错误”,因为它只把前两个单引号中的Let当成了字符串
需要使用转义字符【\】,把字符串中的单引号转义一下,此时【' Let's go '】就变成了【' Let's go '】
b = 'Let\'s go'#增加转义字符\
print (b)
运行结果:
截图来自Python小课
解决方案2:用双引号来标识字符串
c = "Let's go"
print (c)
说明:因为用了双引号作为标识符,而内部使用的是单引号,Python就能区分开来,正常运行了
可以反过来使用,比如说外部用单引号,然后内部的文本含有双引号,也可以的:
a = input('孔子曾说过哪句名言?')
print('子曰:"'+a+'。"')
说明:
在这行代码里,我们能看到最后打印的字符串由三部分组成。
第0部分是【子曰:"】,
第1部分是变量【a】,
第2部分是【。"】,
这三部分用加号【+】连接起来了。
在运行之后,然后输入一段孔子讲过的话,点击Enter继续。
说明:这段代码也是可以正常显示的,这是字符串中,单引号和双引号的交替使用
应用二、包含换行设置的字符串应用
换行转义字符的使用,转义字符【\n】,它的作用是换行,例如:
words = '今年的南方冷的透骨,人间不值得啊,我要回火星!'
这是一首只有三行的短诗,如果你要把每一句换行呈现的话。可以在每一句后面加【\n】:
words= '今年的南方冷的透骨,\n人间不值得啊,\n我要回火星!'
print(words)
运行结果如下:
截图来自Python小课
说明:诗句开始换行了
应用三、字符串结合type()函数、len()函数的使用
type函数:它主要用于获取数据的数据类型,例如:
a = '吴承恩'
b = type(a)
print(b)
第1行:定义了变量a,并为其赋值。
第2行:用type() 函数获取到了 a 的数据类型,并放在变量 b 里面。
第3行:为了显示在屏幕上,使用print() 函数让我们看到。
简洁做法:
a = '吴承恩'
print(type(a))
终端显示了<class 'str'>,class代表类,而str代表字符串,所以这是一个字符串的类
截图来自Python小课
应用说明:当我们通过某种方法,获得了一个变量,里面放了数据,我们期望里面放的就是字符串类型的数据,这时,type() 函数就能确认了。
len()函数:它能帮我们获取到数据的长度。
a = '吴承恩'
b = len(a)
print(b)
第1行:定义了变量a,并为其赋值。
第2行:用len() 函数获取到了 a 的长度,并放在变量 b 里面。
第3行:为了显示在屏幕上,使用print() 函数让我们看到。
简洁做法:
a = '吴承恩'
print(len(a))
运行结果:终端显示了3,代表这个字符串的长度为3。
(3)字符串小结: 截图来自Python小课2、数据类型--整数
(1)整数:英文是integer,简写为int,跟普通的数字没啥区别。
Python可以处理任意大小的整数,也包括负整数,在程序中的表示方法和数学上的写法一模一样:
+:加法
-:减法
*:乘法
/:除法
%:取模,返回除法的余数,5%2返回1
**:幂,返回x的y次幂,2**3等价于2的3次方
//:取整除,返回商的整数部分,11//2返回5
(2)整数和type()、len()函数的应用
type函数的应用,例如:
print(type(5))
print(type('5'))
返回结果:
<class 'int'>
<class 'str'>
说明:5 和 '5' 是不一样的,一个是整数,一个是字符串。
len函数的应用,例如:
print(len(5))
注意:去运行这行代码,会看到终端给我们报错
Traceback (most recent call last):
File "D:/Python_charm/hello.py", line 1, in <module>
print(len(5))
TypeError: object of type 'int' has no len()
说明:
请看图中的报错部分,line1表示第一行代码出了错,然后其中最后一行写着:TypeError: object of type 'int' has no len() 。
意思是类型错误:整数这个类型没有len() 函数;可见,整数是不能使用len() 的。
3、数据类型--浮点数
(1)浮点数:很简单,就是带小数的数字。之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的.
凡是带有小数点的数字,就都是浮点数。浮点数的英文是float,没有简写:
1.0
3.14159
-0.33
整数和浮点数,它们在计算机内部的存储方式是不一样的,整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差
(2)浮点数和type()、len()函数的应用
type函数,例如
print(type(1.0))
print(type(3.14159))
print(type(-0.33))
运行结果是:
<class 'float'>
<class 'float'>
<class 'float'>
len函数,例如
print(len(1.0))
print(len(3.14159))
print(len(-0.33))
运行结果是:
Traceback (most recent call last):
File "D:/Python_charm/hello.py", line 1, in <module>
print(len(1.0))
TypeError: object of type 'float' has no len()
说明:出现报错,倒数第三行,写了问题出在 line1,所以第一行代码就执行不下去,最后一行,终端显示TypeError: object of type 'float' has no len()。意思是类型错误:浮点数这个类型没有长度。
翻译过来:计算机是在说:浮点数没有len()函数,所以,整数和浮点数都不能使用len() 函数。
4、数据类型的转换
(1)数据类型转换介绍
需要连接一个整数和字符串,再让print()函数打印出来的话,是不可以使用加号直接实现,需要转换数据类型,有3个函数可以实现这个功能,即str()、int()和float()函数。
str()函数:可以让其他数据类型转换成字符串;
int()函数:可以让其他数据类型转换成整数;
float()函数:可以让其他数据类型转换成浮点数;
例如
t = 3
print('我谈过'+t+'次恋爱。')
输出结果:
Traceback (most recent call last):
File "D:/Python_charm/hello.py", line 2, in <module>
print('我谈过'+t+'次恋爱。')
TypeError: can only concatenate str (not "int") to str
说明 :
看倒数第三行,是line2有问题;再看最后一行写着TypeError: must be str, not int 意思是——类型错误:必须是字符串,而不是整数,也就是说,整数和字符串,用加号是拼接不起来的
例如:
a = input('随便输入一个数字')
b = 1
print(a+b)
输出结果:
随便输入一个数字54
Traceback (most recent call last):
File "D:/Python_charm/hello.py", line 3, in <module>
print(a+b)
TypeError: can only concatenate str (not "int") to str
说明:在随便输入数据54后,报错了,问题出在line3,再看图片中的最后一行,还是同样的TypeError(类型错误),因为input() 函数接受的内容都是字符串的数据类型,虽然输入了一个数字,但放在变量a里面的,是字符串'3',整数和字符串无法相加,所以终端又会报错,这两段代码,终端都报错了。而它们俩的错误原因都是一样的——不同的数据类型,没办法拼接在一起。
(2)数据类型转换应用
str()函数应用:
t = 3
print('我谈过'+str(t)+'次恋爱。')
运行结果:
我谈过3次恋爱。
说明:
通过使用str()函数,t变为字符串,就可以连接字符串了
str()函数应用:
a = input('随便输入一个数字')
b = 1
print(int(a)+b)
运行结果:
随便输入一个数字54
55
说明:变量a的数据类型转换为整数,并成功打印出(a+b)
5、课后练习
练习1:请让这首诗实现换行的功能:
print('《红豆》王维 红豆生南国, 春来发几枝。 愿君多采撷, 此物最相思。')
操作:
print('《红豆》王维 \n红豆生南国,春来发几枝。\n愿君多采撷,此物最相思。')
运行结果:
《红豆》王维
红豆生南国,春来发几枝。
愿君多采撷,此物最相思。
练习2:请写出这样一个程序:请用户输入每天花在手机上的娱乐时间 a,再把时间 a 乘以7,再打印--“您一周花在手机上的娱乐时间总共是××小时“。
操作:
a=input('请问您每天花在手机上的娱乐时间是几小时呢?')
b=int(a)*7
print('您一周花在手机上的娱乐时间总共是'+str(b)+'小时')
运行结果:
请问您每天花在手机上的娱乐时间是几小时呢?1
您一周花在手机上的娱乐时间总共是7小时
小结:
1、不同数据类型的数据,不能用加号直接连接;
2、input函数默认将输入的数据存储为字符串;
3、整数和浮点数的存储方式不同,因此1和1.0是不同的数据类型,整数和浮点数都不能使用len() 函数;
(注:2018.10.12,Python编程,捡破烂儿的笨小孩学习小记,有用就给个小心心哟,后续持续更新ing)