第三章 python的基础数据类型
注:本博客为 《python 王者归来》学习笔记,如有版权问题请通知删除
3-1 type() 函数
- 这个函数可以列出变量的数据类型类别
x = 10
y = x / 3
print(x)
print(type(x))
print(y)
print(type(y))
#输出结果
10
<class 'int'>
3.3333333333333335
<class 'float'>
3-2 数值数据类型
-
python 在定义变量时可以不用设定这个变量的数据类型,未来如果这个变量内容是整数,这个变量就是整数(int)数据类型,如果这个变量内容是浮点数,这个变量就是浮点数(float)数据类型。整数与浮点数最大的区别是,整数不含小数点,浮点数含小数点
x = 10.0 print(x) print(type(x)) #输出结果 10.0 <class 'float'>
3-2-1 整数与浮点数的运算
- python 程序设计时不同数据类型也可以执行运算,程序设计时常会发生整数与浮点数之间的数据运算,python具有简单自动转换能力,在计算时会将整数转换为浮点数再执行运算。
x = 10
y = x + 5.5
print(x)
print(type(x))
print(y)
print(type(y))
#输出结果
10
<class 'int'>
15.5
<class 'float'>
3-2-2 2进位整数与函数 bin()
-
我们可以用2进位方式代表整数,python中定义凡是0b开头的数字,代表这是2进位的整数。bin()函数可以将一般数字转换为2进位。
x = 0b1101 print(x) y = 13 print(bin(y)) #输出结果 13 0b1101
3-2-3 8进位整数
-
我们可以用8进位方式代表整数,python中定义凡是0o(数字-字母)开头的数字,代表这是8进位的整数,oct() 函数可以将一般数字转换为 8 进位。
x = 0o57 print(x) y = 47 print(oct(y)) #输出结果 47 0o57
3-2-4 16进位整数
-
我们可以用16进位方式代表整数,python中定义凡是0x开头的数字,代表这是16进位的整数,hex() 函数可以将一般数字转换为 16 进位
x = 0x5D print(x) y = 93 print(hex(y)) #输出结果 93 0x5d
3-2-5 强制数据类型的转换
-
有时候我们设计程序时,可以自行强制使用下列函数,转换变量的数据类型。
-
int() :将数据类型强制转换为整数
x = 10.5 print(x) print(type(x)) y = int(x) + 5 print(y) print(type(y)) #输出结果 10.5 <class 'float'> 15 <class 'int'>
-
float():将数据类型强制转换为浮点数
x = 10 print(x) print(type(x)) y = float(x) + 10 print(y) print(type(y)) #输出结果 10 <class 'int'> 20.0 <class 'float'>
-
3-2-6 数值运算常用的函数
-
下列是数值运算常用的函数
-
abs():计算绝对值。
x = -10 print(abs(x)) #输出结果 10
-
pow(x,y):返回 x 的 y 次方。
x = 5 y = 3 print(pow(x,y)) #输出结果 125
-
round():返回五舍六入,留意不是四舍五入
x = 48.5 print(round(x)) x = 48.6 print(round(x)) #输出结果 48 49
-
3-3 布尔值数据类型
-
python 的布尔值(Boolean)数据类型的值有两种,True(真)或 False(伪),它的数据类型代号是 bool。这个布尔值一般是应用在程序流程的控制,特别是在条件表达式中,程序可以根据这个布尔值判断应该如何执行工作。
x = True print(x) print(type(x)) y = False print(y) print(type(y)) #输出结果 True <class 'bool'> False <class 'bool'>
-
如果将布尔值数据类型强制转换成整数,当原值是 True,将得到1;当原值是 False,将得到0。
x = True print(int(x)) print(type(x)) y = False print(int(y)) print(type(y)) #输出结果 1 <class 'bool'> 0 <class 'bool'>
3-4 字符串数据类型
-
所谓的字符串(string)数据是指两个单引号(’ ')之间或是两个双引号(“ ”)之间任意个数字元符号的数据,它的数据类型代号是 str 。在英文字符串的使用中常会发生某字中间有单引号,其实这是文字的一部分,
-
如下错误的格式
x = 'This is James's ball' #输出结果 File "<ipython-input-18-9d6ce05a9d66>", line 1 x = 'This is James's ball' ^ SyntaxError: invalid syntax0
-
3-4-1 字符串的连接
-
数学的运算符 “ + ” ,可以执行两个字符串相加,产生新的字符串。
num1 = 222 num2 = 333 num3 = num1 + num2 print("下面是数值相加") print(num3) numstr1 = "222" numstr2 = "333" numstr3 = numstr1 + numstr2 print("下面是由数值组成的字符串相加") print(numstr3) #输出结果 下面是数值相加 555 下面是由数值组成的字符串相加 222333
3-4-2 处理多于一行的字符串
-
程序设计时如果字符串长度多于一行,可以使用三个单引号(或是三个双引号)将字符串包夹。
str1 = '''abcdef 1234 ABCDEF ''' print(str1) #输出结果 abcdef 1234 ABCDEF
3-4-3 逸出字符
- 在字符串使用中,如果字符串内有一些特殊字符,如单引号,双引号等,必须在此特殊字符前加上 “\” (返斜杠),才可正常使用,这种含有"\"符号的字符称逸出字符,下表Hex值是指ASCII值
逸出字符 | Hex值 | 意义 |
---|---|---|
\’ | 27 | 单引号 |
\" | 22 | 双引号 |
\ | 5C | 反斜杠 |
\a | 07 | 响铃 |
\b | 08 | BackSpace键 |
\f | 0C | 换页 |
\n | 0A | 换行 |
\o | 八进位表示 | |
\r | 0D | 光标移至最左位置 |
\x | 十六进位表示 | |
\t | 09 | Tab键效果 |
\v | 0B | 垂直定位 |
#以下输出使用单引号设定的字符串,需使用 \'
str1 = 'I can\'t stop loving you.'
print(str1)
#以下输出有 \t和 \n字符
str2 = "I \tcan 't bstop \nloving you."
print(str2)
#输出结果
I can't stop loving you.
I can 't bstop
loving you.
3-4-4 强制转换为字符串
- str() 函数可以强制将数值数据转换为字符串数据
num1 = 222
num2 = 333
num3 = num1 + num2
print("这是数值相加")
print(num3)
str1 = str(num1) + str(num2)
print("强制转换为字符串后相加")
print(str1)
#输出结果
这是数值相加
555
强制转换为字符串后相加
222333
3-4-5 将字符串转换为整数
-
在未来的程序设计中也常会发生将字符串转换为整数数据,下列将直接以实说明
x1 = "22" x2 = "33" x3 = x1 + x2 print(x3) x4 = int(x1) + int(x2) print(x4) #输出结果 2233 55
3-4-6 字符串数据的转换
-
如果字符串含一个字符或一个文字时,我们可以使用下列执行数据的转换
-
chr(x):可以返回函数 x 值的字符,x 是 ASCII 码值
-
ord(x):可以返回函数字符参数的 Unicode 码值,如果是中也可传回 Unicode 码值。如果是英文字会,Unicode 码值与 ASCII 码值是一样的
x1 = 97 x2 = chr(x1) print(x2) x3 = ord(x2) print(x3) x4 = "魁" print(ord(x4)) #输出结果 a 97 39745
-
3-4-7 字符串与整数相乘产生字符串复制效果
-
在 python 可以允许将字符串与整数相乘,结果是字符串将重复该整数的次数
x1 = "A" x2 = x1 * 10 print(x2) x3 = "ABC" x4 = x3 * 5 print(x4) #输出结果 AAAAAAAAAA ABCABCABCABCABC
3-4-8 聪明地使用字符串加法和换行字符\n
-
有时设计程序时,想将字符串分行输出,可以使用字符串加法功能,在加法过程中加上换行字符 “\n” 即可产生字符串分行输出的结果。
str1 = "洪锦魁著作" str2 = "HTML 王者归来" str3 = "python 王者归来" str4 = str1 + "\n" + str2 + "\n" + str3 print(str4) #输出结果 洪锦魁著作 HTML 王者归来 python 王者归来
3-4-9 字符串前加 r
-
在使用 python 时,如果在字符串前加上 r,可以防止逸出字符被转译
str1 = "Hello!\npython" print(str1) str2 = r"Hello!\npython" print(str2) #输出结果 Hello! python Hello!\npython