- images
- results
- .gitignore
- 1.1概论.ipynb
- 1.2 环境配置.pdf
- 1.3数据类型.ipynb
- 1.4 人机交互.ipynb
- 1.5 对象与变量.ipynb
- 1.6 编码与命名规范.ipynb
- 2.1 数值类型.ipynb
- 2.2 数值类型转换.ipynb
- 2.3 数值元算.ipynb
- 2.4常用数学运算函数.ipynb
- 2.5 math 模块及其应用.ipynb
- 2.6.1 逻辑值测试.ipynb
- 2.6.2 成员运算.ipynb
- 2.6.3 比较运算.ipynb
- 2.6.4 布尔运算.ipynb
- 2.6.5 运算优先级.ipynb
- 2.ipynb
- 3.1 流程控制结构.ipynb
- 3.3.1 for 循环语句.ipynb
- 3.3.3 rang.ipynb
- 3.3.3 while 循环语句.ipynb
- 3.4 and 3.5 分支结构和条件.ipynb
- 3.6 and 3.7 .ipynb
- 3.9 异常处理.ipynb
- 4 函数和模块化编程.ipynb
- 4.1 函数的定义、调用与返回值.ipynb
- 4.2 函数的参数传递.ipynb
- 4.3 变量的作用域.ipynb
- 4.4 匿名函数.ipynb
- 4.5 递归.ipynb
- 4.6 内置函数.ipynb
- 4.7 模块化程序设计.ipynb
- 5.1 序列通用操作.ipynb
- 5.1.1 索引.ipynb
- 5.1.2 切片.ipynb
- 5.1.3 序列拼接与重复.ipynb
- 5.1.4 成员测试.ipynb
- 5.2.1 字符串的创建.ipynb
- 5.2.2 字符串常量.ipynb
- 5.2.4 字符串的遍历.ipynb
- 5.2.5 文件遍历.ipynb
- 5.2.6 字符串的处理方法.ipynb
- 5.2.7 字符串格式化.ipynb
- 5.2.8 转义字符.ipynb
- 5.3 random 模块及其应用.ipynb
- 6.1 元组.ipynb
- 6.2 列表.ipynb
- 6.2.1 列表的创建.ipynb
- 6.2.2 列表的更新.ipynb
- 6.2.3 列表的删除.ipynb
- 6.2.4 列表的排序.ipynb
- 6.2.5 列表赋值与复制.ipynb
- 6.2.6 列表推导式.ipynb
- 6.2.8 常用内置函数.ipynb
- 6.2.9 列表嵌套及其排序.ipynb
- 6.3 列表综合应用.ipynb
- 7.1.1 集合的创建.ipynb
- 7.1.2可变集合类型的操作.ipynb
- 7.1.3 成员关系.ipynb
- 7.1.4 集合关系.ipynb
- 7.1.5 集合运算.ipynb
- 7.2.1 字典创建.ipynb
- 7.2.2 获取字典值.ipynb
- 7.2.3 修改字典值.ipynb
- 7.2.4内置函数与方法.ipynb
- 7.2.5字典排序输出.ipynb
- 7.3 集合与字典的应用.ipynb
- 8 中 numpy 概述.ipynb
- 8 中panda 库.ipynb
- 8.1 文件的打开与关闭.ipynb
- 8.2 文件读写操作.ipynb
- 8.3 文件的应用.ipynb
- 8.4 numpy 文件操作.ipynb
- 8.4.2 and 3.ipynb
- 8.5.1 pandas文件读写.ipynb
- 8.5.2 and 3 and 4.ipynb
- 9.1 matplotlib 线性图.ipynb
- 9.1.5 数据文化绘图.ipynb
- 9.2 非线性图.ipynb
- 9.3 词云.ipynb
- _overview.md
- _readme.ipynb
- coding_here.ipynb
- dream.png
- score.txt
- score_total.csv
- 成绩分析综合.json
2.2 数值类型转换.ipynb @master — view markup · raw · history · blame
数值类型转换¶
在程序设计过程中,我们经常需要对数值类型转换。 不同数值类型的转换,可以将__数据类型__作为__函数名__,将要转换的__数字__做为函数的__参数__即可完成转换。</font>
1. __int(x, base=10)__: 将浮点数或整数类型字符串x转换为一个整数
当x是一个浮点数且没有参数base时,__int()函数__可以将这个__浮点数__转换成__十进制整数__。
当x不是数字或给定了参数base时,x必须是一个__整型的字符串__,此时int()函数将这个整型的字符串转成十进制整数,base为整形字符串的__进制__,如2、8、10、16分别代表二进制、八进制、十进制和十六进制。</font>
print(int(3.14)) # x为数字,无参数base,浮点数转整数,取整数部分,输出 3
print(int(6.98)) # x为数字,无参数base,浮点数转整数,取整数部分,输出 6
__若x为浮点数,则不能有base参数,否则报错。__
print(int(3.14, base=10))
若x为整数形式的字符串,缺省情况下__base=10__,是将一个10进制的整数形式的字符串转成十进制的整数。base可以取有值包括:0、2-36中的整数字。
print(int("10")) # x为整数类型的字符串,base缺省时默认其为十进制整数字符串,转为十进制整数10
print(int('11111111',base=2)) # 二进制整数字符串'11111111'转成十进制整数是255
print(int('11111111',2)) # base参数名可省略,二进制整数字符串'11111111'转成十进制整数是255
print(int('1111' + '1111',2)) # 字符串x可由多个字符串拼接而成,输出 255
print(int('107',base = 8)) # '0o'表示这是八进制的整数字符串,输出 71
print(int('107',base = 16)) # '0x'表示这是十六进制的整数字符串,输出 263
print(int('0o107',base = 8)) # '0o'表示这是八进制的整数字符串,输出 71
print(int('0x107',base = 16)) # '0x'表示这是十六进制的整数字符串,输出 263
print(int('0b1001',base = 2)) # '0b'表示这是二进制的整数字符串,输出 9
转换时,字符串开头和结尾的__空白字符(空格、\n、\t 等)__会被自动去除。</font>
print(int(' 10 ')) # 前后的空格将被去除,输出10
print(int('\t11111111\t',2)) # 前后的制表符(\t)将被去除,输出255
print(int('\n107\n\n',base = 8)) # 前后的换行符(\n)将被去除,输出 71
print(int('\t \n0x107 \n\n\t',base = 16)) # 前后的所有空白字符将被去除,输出 263
当base取值为0时,系统根据字符串前的进制引导符确定该数的进制。2、8、16 进制的数字可以在代码中用__ 0b/0B 、 0o/0O 、 0x/0X __前缀来表示。</font>
print(int('0o107',base = 0)) # '0o'表示这是八进制的整数字符串,输出 71
print(int('0x107',base = 0)) # '0x'表示这是十六进制的整数字符串,输出 263
print(int('0b1001',0)) # '0b'表示这是二进制的整数字符串,输出 9
若x字符串不满足base对应进制的整数构成规则,则抛出异常。
print(int('3.14', base=8)) # 十进制整数不能包含小数点,抛异常
print(int('1a7', base=8)) # 八进制整数不能包含a,抛异常
例: 计算边为整数的矩形面积¶
矩形的面积等于其长与宽的乘积,用户分两行依次输入两个正整数作为长和宽的值,编程计算矩形的面积并输出整数形式的面积。
Python中任何输入都会被当作字符串进行处理,字符串无法参与数学运算,所以在程序中需要将输入的__字符串转为数值类型__。
当用户的输入确定是整数时,程序中可以用int()函数将输入转为整数类型,计算结果也是整数。 用int()函数不加其他参数将输入转为整数时,输入仅可包括 “0123456789” 中的数字符号。
当输入中包含小数点、字母等其他字符时,会触发ValueError异常。
# 输入整数表示的矩形的长和宽, 计算并输出矩形的面积
width = int(input()) # 用int()函数将输入转成整数,例如输入:3
length = int(input()) # 用int()函数将输入转成整数,例如输入:4
area = width * length # 利用面积公式计算面积
print(area) # 输出:12
2. __float(x)__:将整数x或浮点数类型字符串x转换为一个浮点数
print(float(3)) # 整数转浮点数,增加小数位,小数部分为0,输出:3.0
print(float('3.14')) # 将字符串'3.14'转为浮点数3.14
print(float('0.456')) # 将字符串'0.456'转为浮点数0.456
字符串x可以为浮点数的科学计数法表示形式。
print(float('0.48e-5')) # 将字符串'0.48e-5'转为浮点数4.8e-06
print(float('2.53e3')) # 将字符串'2.53e3'转为浮点数2530.0
转换时,字符串开头和结尾的__range__空白字符(空格、\n、\t 等)会被自动去除。
print(float(' 0.678\n')) # 前后的所有空白字符将被去除,输出0.678
例: 计算边为浮点数的矩形面积¶
矩形的面积等于其长与宽的乘积,用户分两行依次输入两个正浮点数作为长和宽的值,编程计算矩形的面积并输出浮点数形式的面积。
当用户的输入确定是浮点数时,可以用float()函数将输入转为浮点数类型。当输入为整数时,也会被转为浮点数,计算结果也是浮点数。
# 输入浮点数表示的矩形的长和宽, 计算并输出矩形的面积
width = float(input()) # 用float()函数将输入转成浮点数,输入:2.456
length = float(input()) # 用float()函数将输入转成浮点数,输入:3.58
area = width * length
print(area) # 输出:8.79248
print(f'{area:.2f}') # 当小数位数多于2位时,保留2位小数,输出:8.79
print('{:.2f}'.format(area)) ## format的形式输出
print(round(area,2))
3. __eval(x)__:将数值型的字符串对象x转换为其对应的数值
eval函数将根据字符串的构成,自动返回整形或浮点型。
print(eval('3')) # 转换结果为整数3
print(eval('3.')) # 转换结果为浮点数3.0
print(eval('2.53e3')) # 转换结果为浮点数2530.0
例: 计算不确定边长是整数还是浮点数的矩形面积¶
矩形的面积等于其长与宽的乘积,用户分两行依次输入两个正数作为长和宽的值,编程计算矩形的面积并输出,要求输出的数据类型与输入的数据类型保持一致。
当用户输入不确定是整数还是浮点数时,如果想保证计算结果与输入的数据类型一致,可以使用eval()函数,该函数在将输入转为可计算对象时,会保持数据类型与输入一致。输入整数时,转化后还是整数;输入浮点数时,转化后还是浮点数。
# 输入正数表示的矩形的长和宽, 计算并输出矩形的面积
width = eval(input()) # 用eval()函数将输入转成数值型
length = eval(input()) # 用eval()函数将输入转成数值型
area = width * length # 利用面积公式计算面积
print(area)
# 输入3,4时,输出:12;输入3.0,4.0时,输出12.0
eval() 函数还可以把用__半角逗号分隔__的多个__字符型数据__转换为一个元素为__数值类型__的元组。</font>
print(type(eval('3.5,3,2.0')))
print(type(eval("3.5,3,2.0")))
print(eval("3.5,3,2.0"))
利用这个特性,可以实现在一条语句中将用逗号分隔的多个输入分别命名,实现多变量的__同步赋值__。
m, n = eval(input()) # 可以把输入的用逗号分隔的2个数值型数据分别命名为 m,n
# 例如输入 3,5.0
print(f'm={m}, n={n}') # 输出 m、n的值
练一练
参考上面的例子,根据下面的注释编程计算矩形的面积并输出,要求在一行内输入逗号分隔的两个正数作为矩形的长与宽,输出的数据类型与输入的数据类型保持一致。
# 使用eval实现一行输入两个数据同步赋值给变量width和length
# 计算矩形面积area
a=13
b=str(a)
print(b)
print(type(b))
#输出面积area