玩耍Python每天写1000字工具癖

Python小课--Python基础:数据和函数(二)

2018-11-16  本文已影响7人  仟樱雪
截图来自Python小课

文|仟樱雪
在Python小课-1-2节中,已经学习了基础模块--数据--数据类型(整数、字符串),以及基础模块--变量,基础模块--函数(input函数、print函数)。

本节继续学习基础篇--数据与函数 截图来自Python小课

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当成了字符串

ii、Python是从左往右匹配单(双)引号的——当它读到一个引号时,会记住这是字符串,当它再读到下一个引号时,默认计算结束,所以在计算机眼里,上面的'Let'是字符串,后续的内容,它并不能读取,于是产生一个报错。 截图来自Python小课 解决方案1:
需要使用转义字符【\】,把字符串中的单引号转义一下,此时【' 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)

上一篇下一篇

猜你喜欢

热点阅读