2017-04-24 18 views
0

當我運行下面的代碼時,出現「不知道如何轉換參數」錯誤。我正在嘗試切斷我的名字。請幫助。「不知道如何轉換參數」Python中的錯誤

import ctypes 
from itertools import islice 

i = "sakthi srinivasan" 
sliced_text = islice(i, 0, 6) 
ctypes.windll.user32.MessageBoxW(0, sliced_text, "MsgBox", 0) 
+2

消息框希望給它一個字符串,而不是Python迭代器對象。只要通過'我[0:6]'。 –

+0

它的工作原理!謝謝:) –

回答

0

的第二個參數MessageBoxW是一個字符串。函數itertools.islice返回對i中字符的迭代器。由於ctypes不知道如何將其轉換爲字符數組,它會拋出錯誤「不知道如何轉換參數...」。

你可以迭代器轉換成字符串''.join(sliced_text),但這樣在這裏做的最好的方法是使用通過傳遞i[0:6]作爲第二個參數內置到Python字符串切片。這是在Python中獲取子字符串的標準方法。


從技術上講,一個LPCTSTR,其或者是一個或const char*const wchar_t*,這取決於你是否在UNICODE配置編譯。

+0

Simon Hibbs在評論中回答了OP的問題,但我想我會爲未來的讀者提供一個稍微更詳細的答案。它也會使這看起來像一個沒有答案的問題。 – BloodGain

相關問題