我想编写一个程序来获取列表,并根据该元素的数据类型为列表中的每个元素打印一条消息。
程序输入始终是一个列表。对于列表中的每个项目,请测试其数据类型。如果该项是字符串,则将其连接到新字符串。如果是数字,请将其添加到运行总和中。在程序结束时打印字符串,数字和数组包含的分析。如果它只包含一种类型,则打印该类型,否则,打印混合'。
输入
l = ['magical unicorns',19,'hello',98.98,'world']
输出
"The array you entered is of mixed type"
"String: magical unicorns hello world"
"Sum: 117.98"
答案 0 :(得分:0)
此代码有效,您需要在输入列表中逻辑访问所需的每个元素。在这里,我为我的浮点数和我的字符串创建了单独的列表。然后,从那里,您可以遍历这些新列表以连接并总结您想要的任何内容。
l = ['magical unicorns',19,'hello',98.98,'world']
item_type_set = set() # Create an empty set to add unique item types to it.
nums = []
string_lst = []
for item in l:
item_type = type(item) # This returns the type
item_type_set.add(item_type)
#Test for each data type.
if item_type == int:
float_item = float(item)
nums.append(float_item)
elif item_type == float:
nums.append(item)
elif item_type == str:
string_lst.append(item)
if len(item_type_set) > 1:
print ("The array you entered is of mixed type")
elif len(item_type_set) == 1:
for item in item_type_set:
if item == str:
str_type = 'string'
print ("The array you entered is of %s type" %(str_type))
elif item == int:
int_type = 'integer'
print("The array you entered is of %s type" % (int_type))
elif item == float:
float_type = 'float'
print("The array you entered is of %s type" % (float_type))
if len(string_lst) > 0:
new_string = string_lst[0]
for string_item in string_lst[1:]:
new_string += ' ' + string_item
print ('String: ' + new_string)
counter = 0.0
for number in nums:
counter += number
print ("Sum: " + str(counter))
答案 1 :(得分:0)
所以,就在这里。打破你的问题。 您有两种情况需要处理
您可以使用isinstance()
来确定输入类型。
sum
变量,该变量最初为0
string
变量中 - “即,
l = ['magical unicorns',19,'hello',98.98,'world']
sum=0
string=''
data = [False,False]
for i in l:
if isinstance(i,float) or isinstance(i,int):
sum+=i
data[0]=True
else:
string+= i + ' '
data[1]=True
if all(data):print "The array you entered is of mixed type\nString %s\nSum: %.2f"%(string.strip(),sum)
elif data[1]:print "The array you entered is of string type\nString: %s"%string.strip()
elif data[0]:print "The array you entered is of int type\nSum: %.2f"%sum
输出:
The array you entered is of mixed type
String magical unicorns hello world
Sum: 117.98