Edi*_*vic 2 python interactive python-3.x
我有一个交互式菜单,如果数字是浮点数或不是给定列表的子集,用户必须编辑一些数字.使用以下代码:
grades = np.array([-3,-10.5,0,7,4,8,4,7,10,5])
SevenGradeScale = np.array([-3, 0, 2, 4, 7, 10, 12])
for i in range(np.size(grades)):
if grades[i] not in SevenGradeScale:
while True:
if type(grades[i]) is np.float64:
print("{:f} is not a valid grade. The grade must be an integer.".format(grades[i]))
elif type(grades[i]) is np.int32:
print("{:d} is not within the seven grade scale.".format(grades[i]))
else:
type("{:f} is not a valid grade.".format(grades[i]))
#try:
grades[i] = input("Insert new grade: ")
Run Code Online (Sandbox Code Playgroud)
而我正在尝试做的是,用户编辑脚本视为无效的编号.但是当我尝试输入一个整数时,我得到了一个浮点数.这是为什么?
-10.500000 is not a valid grade. The grade must be an integer.
Insert new grade: 10
10.000000 is not a valid grade. The grade must be an integer.
Insert new grade:
Run Code Online (Sandbox Code Playgroud)
默认情况下,numpy数组仅存储单个类型的数据.由于最初它包含浮点数(10.5),因此整个数组都是浮点数.
您需要测试值,而不是测试数据类型,例如grades[i].is_integer().
| 归档时间: |
|
| 查看次数: |
56 次 |
| 最近记录: |