2017-03-06 79 views
0

我想要做的是从数组中拉出数字,然后让数组中的数字打印****。如果它不是数字,它会拉出字符串的第一个字母,然后打印该数组的长度。我新来python和我一直在寻找如何做到这一点。申请任何帮助。数组和字符串python

x = [4, "Tom", 1, "Michael", 5, 7, "Jimmy Smith"] 

for i in x: 
    if "a number": 
     print "*" * i 
    else: 
     print str[:1] .lower() * len(str) 

回答

0

Python不知道“数字”是什么意思。

if "a number": 

搜索一个看起来像“数字”的字符串。我知道(其中有可能更多)的唯一方式是使用功能

if type(i) == <class 'int'> : 
    print("*" * i) 

这要求解释我的类型是什么()和检查,看看是否是一样的,你在做什么寻找(==)。

+0

我能做到使用STR即别人同样的事情:(i)型== STR: \t打印() –

+0

不大 - 在else:函数不接受输入。你必须改用elif命令,否则就是if。代码看起来像'elif type(i)== :' –

+0

elif type(i)== : print(test)this trows an error –

0
x = [4, "Tom", 1, "Michael", 5, 7, "Jimmy Smith"] 

for i in range(0,len(x),1): 
    if isinstance(x[i], (int, long, float, complex)): 
     print("*"*x[i]) 
    else: 
     print(x[i][:1].lower() + "*" + str(len(x[i]))) 
+0

5 starts我想开始时间数组中的数字和否则就是小写的时间长度 –

+0

好的。数字乘以星星。更正了解决方案以反映这一点 – Aditya

0

该问题的完整答案。

x = [4, "Tom", 1, "Michael", 5, 7, "Jimmy Smith"] 

for i in x: 
    if type(i) == int : 
     print("*" * i) 
    elif type(i) == str: 
     print i[:1].lower() * len(i)