转载的老板请注明出处:http://blog.youkuaiyun.com/cc_xz/article/details/78685393 万分感谢!
前言:
本篇为Python基础中的第一章,简单的介绍了Python中最常用的两种数据类型:数字和字符串,并在文章的开头位置提到了关于变量的概念。
在本篇中,你将了解到:
1.关于数字类型的常用函数。
2.关于字符串的常用函数。
3.简单的了解Python中其他的数据类型。
数字:
任何仅含数字而不含小数的序列在Python中都被认为是整数,甚至可以单独使用数字0,但不能把0作为前缀放在其他数字前,因为这样有事会引发异常,而且是无意义的。在数字前面添加负号“-”,可以定义一个负数。
数字类型转换:
使用int()函数可以将其他的Python数据类型转换为整数。它会保留传入数据的整数部分而舍去小数部分。
Python中最简单的数据类型是布尔类型,它只有两个值可选,True和False。当它转化为整数时,分别代表1和0。
print(int(True))
print(int(False))
输出结果为:
1
0
print(int(99.9))
print(int(11.1))
输出结果为:
99
11
当然也可以将仅包含数字和正负号的字符串转换为整数,但注意,不能将包含汉字、字母的字符串转换为整数。例如:
print(int("999"))
print(int("99.9"))
print(int("11.1哈哈哈"))
输出结果为:
Traceback (most recent call last):
File "D:/Python/Code/Demo01/Demo.py", line 2, in <module>
print(int("99.9"))
ValueError: invalid literal for int() with base 10: '99.9'
999
可以看到,第一个字符串中只有数字,int()函数可以正确的将其从字符串转化为整数类型。但第二个字符串中包含了小数点,从而导致了int()函数无法正确解析。同样的,即使我们将第二行代码注释掉,而第三行代码中不仅仅有小数点,还有一些中文字符串。所以同样会报出异常。
而异常是Python中处理程序错误的方法,并不会直接导致程序崩溃。
一个int有多大
在Python3中,已经不存在long类型,而int类型变成了可以存储任意大小的整数,甚至可以超过64位。设置当我执行:
print(999**99999)
时,在将输出的结果复制到有道云笔记中时,电脑卡顿了三分钟左右,而将这些数字删掉又花费了很长时间。在许多其他编程语言中,执行上述计算会造成内存溢出,这是因为计算中的数字或结果所需要的内存存储空间超过了该编程语言所能提供的最大值(通常是32位或64位)。
而Python在执行超大数据时不会产生任何错误。
浮点数
整数全部由数字组成,而浮点数(float)包含非数字的小数点,而你也可以使用前面说过的运算符来对浮点数进行计算。
总体而言,浮点数的使用方式和整数的使用方式基本相同。
print(float(True))
print(float(100.1001))
print(float("-123.321"))
输出结果为:
1.0
100.1001
-123.321
字符串
实际上在处理字符串上花费的时间要比处理数字花费的时间多很多。将整数、布尔值、浮点数转换为字符串非常容易,而且不会报出什么异常。例如:
print(str(True))
print(str(100.1001))
print(str("-123.321"))
使用“\”转义符
Python允许对某些字符进行转义操作,以此来实现一些难以单纯使用字符描述的效果,在特定的字符前面添加反斜杠负符号“\”会使该字符的含义发生变换。例如:
转义符”\”配合字母”n”,可以表示一个换行符—> \n
转义符”\”配合字母”t”,可以表示一个制表符—> \t (添加一个tab所代表的空格,一般是4个。)
另外,如果希望输出一个反斜杠字符,则需要连续输入两条反斜杠。
使用*复制字符串
使用*可以将字符串进行复制。例如:
hahaha = '哈哈哈 ' * 4 + '\n'
print(hahaha)
输出结果为:
哈哈哈 哈哈哈 哈哈哈 哈哈哈
值得注意的是,在一连串“哈哈哈 ”之后,还有一个空行(之前提到的换行符),而且一个”哈哈哈 “中包含了一个空格。
使用[]提取字符和分片
在字符串名称后添加[],并在括号中指定偏移值便可以提取该位置中的单个字符。第一个字符(最左侧)的偏移值为0,下一个是1,以此类推,最后一个字符可以使用-1表示。
分片操作可以一个字符串中抽取子字符串,只需定义起始偏移值和终止偏移值即可。
test01 = "abcdefg1234567"
test02 = "虚其心,实其腹。弱其志,强其骨。"
print(test01[5:-1])
print(test02[0:7])
输出结果为:
fg123456
虚其心,实其腹
当然,如果偏移值超过了字符串的长度,则会报出异常。
由于字符串是不可变的,因为你无法直接插入字符串或改变指定位置的字符串。
test02 = "虚其心,实其腹。弱其志,强其骨。"
test03 = "道德经-老子--\n" + test02[8:]
print(test03)
print(test02[0:7])
输出结果为:
道德经-老子--
弱其志,强其骨。
虚其心,实其腹
字符串常用函数
使用len()获取字符串长度:
test01 = "虚其心,实其腹。弱其志,强其骨。"
print(len(test01))
输出结果为:
16
使用split()分割字符串:
使用内置的字符串函数split()可以基于分隔符(自定义)将字符串分割成若干个子字符串所组成的列表。例如:
test01 = "虚其心,实其腹,弱其志,强其骨。"
print(test01.split(","))
输出结果为:
['虚其心', '实其腹', '弱其志', '强其骨。']
在上述案例中,如果没有传入参数作为分隔符,Python将使用默认的空白字符来进行分割,包括换行符、空格、制表符等。但即便不传入参数,在调用split()函数时仍然需要带着括号,这样Python才能知道这是在调用一个函数。
使用join()合并字符串:
join()函数与split()函数正好相反,它将包含了若干个字符串的列表进行分解,再将分解出的这些字符串组合成一个完整的字符串,而不是一个列表。例如:
test01 = "虚其心,实其腹,弱其志,强其骨。"
test02 = test01.split(",")
test03 = ",".join(test02)
print(test03)
输出结果为:
虚其心,实其腹,弱其志,强其骨。
join()的调用顺序看起来很奇怪,与split()函数相反的是,你必须首先创建一个字符串,在字符串中指定用于粘合用的字符串,然后再调用join()函数指定需要合并的列表。
变量、名称和对象
Python中所有的数据,布尔值、整数、浮点数、字符串,甚至大型数据结构(自定义)、函数以及整个程序,都可以看做是以一个对象(Object)的形式存在的。
对象就像一个容器,里面填装了各种的数据,由于对象的类型不同,里面放置的数据也不尽相同。而由于对象类型的不同,你可以对他们进行的操作也不同。对象的类型还决定了它装着的是数据还是允许被修改的变量,或者是不可修改的常量。Python是强类型语言,永远无法修改一个已有对象的类型,但可以任意修改对象所包含的值。
Python允许定义变量,而变量就是为了在程序中更方便的调用内存中的值,即为了某段可以使用的内存而取的名字。
关于变量,值得注意的是,变量仅仅是一个名字,也就是说,数据/对象是数据/对象,变量是变量,当你操作一个变量时,实际上是通过这个变量来对变量所代表的数据/对象进行操作,而不是对象本身。
a = 7
print(a)
b = a
print(b)
在上述代码中,首先创建了一个包含整数7的对象,取名为a。接着将对象a的值赋值给对象b。最终结果为:
7
这说明,首先在内存中创建一个对象,将对象的值设置7,取名为a,接着又创建一个对象,将a的值复制到新对象中,并给新对象取名为b。
而如果希望知道一个对象或变量的类型,可以使用type函数,示例代码为:
a = 7
print(type(a))
print(type(100))
print(type(True))
print(type(100.00))
输出结果为:
<class 'int'>
<class 'int'>
<class 'bool'>
<class 'float'>