findAt函數(shù)可以使用可變參數(shù)*args,即findAt(*args)。同樣還是將幾十個(gè)坐標(biāo)放到a列表中,然后直接調(diào)用findAt(*a)
創(chuàng)新互聯(lián)主要從事網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)江岸,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):028-86922220
題主,你基本操作沒(méi)什么問(wèn)題,有幾個(gè)小地方要修改一下,修改如下:
你的源碼:
PyObject* list = PyList_New(3);????
for (size_t i = 0; i 3; i++)
PyList_Append(list, Py_BuildValue("i", i));
PyEval_CallObject(pFunc, list);
--------------------------------------------------------------------------------------
修改后,應(yīng)該是這樣
PyObject*?pArgs?=?NULL;
PyObject*?list?=?PyList_New(0);????//3改成0
pArgs?=?PyTuple_New(1);?????????????????//定義1個(gè)參數(shù)
for?(size_t?i?=?0;?i??3;?i++)
PyList_Append(list,?Py_BuildValue("i",?i));?//這樣才能用Append,
PyTuple_SetItem(pArgs,?0,?list);????//將列表賦給參數(shù)
PyEval_CallObject(pFunc,?list);????//傳入?yún)?shù),調(diào)用函數(shù)
注意事項(xiàng):PyList_New(0)?初始化0的時(shí)候,應(yīng)該用Append初始化
PyList_New(3)?初始化3個(gè)時(shí)候,應(yīng)該用SetItem初始化
如果用Append的話,會(huì)出現(xiàn)[NULL,?NULL,?NULL]的情況
我在給一個(gè)完整的:
Python :(hello.py)
def?TestList(nlist):
print(nlist)
return
一般參數(shù)都是已元組形式傳入的
Py_Initialize();
PyRun_SimpleString("import?sys");???
PyRun_SimpleString("sys.path.append('./')");??
PyObject*?pModule?=NULL;
PyObject*?pList?=?NULL;
PyObject*?pFunc?=?NULL;
PyObject*?pArgs?=?NULL;
pModule?=?PyImport_ImportModule("hello");
pFunc?=?PyObject_GetAttrString(pModule,?"TestList");
pArgs?=?PyTuple_New(1);
pList?=?PyList_New(0);
for?(int?i?=?0;?i??3;?i++)
{
PyList_Append(pList,?Py_BuildValue("i",?i));
}
PyTuple_SetItem(pArgs,?0,?pList);
pRet?=?PyEval_CallObject(pFunc,?pArgs);
Py_Finalize();
最后輸出的:[0, 1, 2]
void fun(a,10) 將數(shù)組a的首地址賦給指針s
{
int i; i 計(jì)的是這數(shù)組中有幾個(gè)字母
for (;*s;s++) 每循環(huán)一次,s后移一位,判斷結(jié)束循環(huán)的條件s指向的內(nèi)容為" \0 "
{
if(*s='a'*s='z'||*s='A'*s='Z')
i++;
}