2017-03-06 80 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)