python轉換c
#------------------------------------------------------------------------------- # Name: 模塊1 # Purpose: # # Author: AshIn # # Created: 01/04/2011 # Copyright: (c) AshIn 2011 # Licence: <your licence> #------------------------------------------------------------------------------- #!/usr/bin/env python def main(): s = input('input gene order(max=100):') A_count = s.count('A') T_count = s.count('T') C_count = s.count('C') sum = len(s) other_count = sum - A_count - T_count - C_count a = A_count/sum*100 t = T_count/sum*100 c = C_count/sum*100 o = other_count/sum*100 print('A:%f%%', a) print('T:%f%%', t) print('C:%f%%', c) print('other:%f%%', o) if __name__ == '__main__': main()
❷ 把這個python轉換成C語言代碼
python不像C語言,有{ }
縮進很重要的,你要貼出有縮進的代碼才行
❸ PYTHON和C的轉換問題
from ctypes import *
class CON_ADR_TYPE(Union):
_pack_=1
_fields_=[("Mpi", c_byte),
("Ip", c_byte*4),
("Mac", c_byte*6)]
class CON_TABLE_TYPE(Structure):
_fields_=[("Adr", CON_ADR_TYPE),
("AdrType", c_byte),
("SlotNr", c_byte),
("RackNr", c_byte)]
_pack_=1
❹ 求教將C語言轉化python!!
這是數據格式化輸出?
❺ 有沒有把Python轉換成C#的工具或者方式
這個不難,用Python調用C語言的介面就行
只是那個開發包貌似不能下載么?
沒有.h和dll就沒辦法了
❻ C語言怎麼轉化成python
score={'a':5,'b':4,'c':3,'d':2,'e':1}
N=40
sum=0
foriinrange(N):
answer=raw_input("請輸入你第%d題的選擇(a-e):"%(i+1))
answer=answer.lower()
whileanswernotinscore:
answer=raw_input("請輸入正確的選項!:")
answer=answer.lower()
sum+=score[answer]
print("你的總分為%d"%sum)
ifsum>=168:
print("A")
elif136<sum<168:
print("B")
elif104<sum<=136:
print("C")
elif72<sum<=104:
print("D")
else:
print("E")
這個python 程序肯定版權 和上面的C結果不一樣
else if (136<sum<168) 在C中肯定為真,所以上面的C程序只會列印 A或者 B,CDE任何情況下都不會列印 ,Pytyhon會完全列印
直接說出程序要求
❼ python遍歷列表中元素,判斷是字母c就轉換怎麼做
for i in range(len(list)):
if list[i] == "c":
list[i] ="轉換"
❽ 大家說將python轉化為c++能實現嗎
可以實現,雖然很少有這么乾的
python本身就是用C語言寫的,為了提高開發效率,現在又想轉換成C++?
用C++實現的CPython可以直接調用C++的庫,可以把CPython產生的ByteCode轉化為可執行的目標代碼。具體的步驟,可以網上搜下資料。
❾ 將一段c語言程序轉變為python程序,急!!!
按照你的要求,把C語言程序轉換成Python3語言的程序如下
#!/usr/bin/python
#-*-coding:UTF-8-*-
defprintMatrix(n):
arr=[[0foriinrange(20)]foriinrange(20)]
curNum=1
forindexinrange(1,n+1):
i=0
j=index-1
forkinrange(1,index+1):
ifindex%2==1:
arr[i][j]=curNum
curNum=curNum+1
else:
arr[j][i]=curNum
curNum=curNum+1
i=i+1
j=j-1
forindexinrange(n+1,2*n):
i=index-n
j=n-1
forkinrange(1,2*n-index+1):
ifindex%2==1:
arr[i][j]=curNum
curNum=curNum+1
else:
arr[j][i]=curNum
curNum=curNum+1
i=i+1
j=j-1
print("Thematrixisasfollow:");
foriinrange(0,n):
forjinrange(0,n):
print(arr[i][j]," ",end='')
print("")
printMatrix(4)
運行結果
Thematrixisasfollow:
1 3 4 10
2 5 9 11
6 8 12 15
7 13 14 16
❿ 如何用Python封裝C語言的字元串處理函數
在C語言中,字元串處理是每天都要面對的問題。我們都知道C語言中其實並沒有一種原生的字元串類型,『字元串』在C語言里只是一種特殊的以''結尾的字元數組。因此,如何將C語言與更高層次的Python語言在『字元串』處理這個問題上對接是一個有難度的問題。所幸有swig這種強大的工具。
如何封裝一個函數,它修改參數字元串的內容
假如有這樣一個C語言的函數,
<!-- lang: cpp -->
void FillZero(char* pc,size_t * piLen)
{
size_t i=0;
while(i++<*piLen/2 )
*pc++ = '0';
*pc = 0;
*piLen = i+1;
}
這個函數的功能是把字元串變成n個0。不過我們更關注函數的形式。這樣的函數,表面上看char* pc是函數的參數,可是實際上它才是函數的返回值和執行的結果。piLen這個參數既是pc的最大長度,也是新的字元串的長度。我們直接用python封裝,看看運行結果。
Type "help", "right", "credits" or "license" for more information.
>>> import cchar
>>> s='123456'
>>> cchar.FillZero(s,6)
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
TypeError: in method 'FillZero', argument 2 of type 'size_t *'
結果差強人意,不是我們想要得到的結果。函數的第二個參數為size_t* 我們很難用python來表示,而且python中也不存在既是輸入,也是輸出的參數。
swig有一個標准庫,其中有一個cstring.i文件就是用來解決C語言字元串類型的問題。
我們在.i文件中加入這樣幾行
<!-- lang: cpp -->
%include "cstring.i"
%cstring_output_withsize(char* pc,size_t* pi)
void FillZero(char* pc, size_t* pi);
然後運行看結果
Type "help", "right", "credits" or "license" for more information.
>>> import cchar
>>> cchar.FillZero(10)
'00000\x00'
>>> s=cchar.FillZero(10)
>>> print s
00000
我們看函數的變化。首先在python里, FillZero變成了只有一個參數的函數。然後函數的返回值變成了一個字元串。其實cstring_output_size其實是一個宏,通過這個宏的定義改變了函數的形式,直接在Python中得到我們想要的結果。
其實類似cstring_output_size的宏還有好幾個,我列舉一下:
cstring_output_allocate(char *s,free($1));
第一個參數是指向字元串地址的指針,第二個參數為釋放空間的方法。
大家考慮這一下這樣的函數:
void foo(char* & s)
{
s = (char*)malloc(10);
memcpy(s,"123456789",9);
}
s這個參數表面上看是輸入,實際上是函數真正的輸出。 函數中真正改變的東西是char&s指向的字元串的值。而且char&這個類型,
python或者其他腳本語言里應該都沒有對應的類型。那麼我們用cstring_output_allocate將這個函數轉換成另外一個形式的python或者其他腳本語言的函數。轉換後的函數其實是這樣的,以python為例str
foo()。
<!-- lang: cpp -->
%mole a
%include "cstring.i"
%{
void foo(char*& s);
%}
%cstring_output_allocate(char *&s, free(*$1));
void foo(char *&s);
在python中的調用:
<!-- lang: python -->
>>> import a
>>> a.foo()
'123456789'
>>>
cstring_output_maxsize(char *path, int maxpath);
第一個參數也是可以改變的字元串首地址,第二個參數為字元串的最大長度。在Python中調用的時候,只有maxpath這個參數,返回字元串。
cstring_output_allocate(char *s, free($1));
第一個參數為指向字元串首地址的指針,第二個參數為釋放指針的方法。這個宏主要是封裝一種直接在函數內部malloc空間的函數。在Python中調用時沒有參數,直接返回字元串。
cstring_output_allocate_size(char *s, int slen, free(*$1));
這個相當於前面兩個函數的組合。在函數內部malloc空間,然後將字元串長度通過slen返回。其實在調用的時候非常簡單,沒有參數,直接返回字元串。
如何處理c++的std::string
std::string是C++標准類庫STL中常見的類。在平時工作中大家肯定是沒少用。在python中如何封裝std::string? swig提供了標准庫
例如函數:
<!-- lang: cpp -->
string Repeat(const string& s)
{
return s+s;
}
只要在swig中加入這樣幾行:
<!-- lang: cpp -->
%include "std_string.i"
using namespace std;
string Repeat(const string& s);
運行結果:
Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40)
[GCC 4.4.5] on linux2
Type "help", "right", "credits" or "license" for more information.
>>> import cchar
>>> cchar.Repeat('123')
'123123'
使用起來很方便,但需要注意的是,假如函數的參數的內容是可以被修改,就不能用這種方式封裝。
例如:
<!-- lang: cpp -->
void repeat(string s)
{
s+=s;
}
這樣的函數直接使用 'std_string.i' 就是無效的。遇到這種函數,只能用C語言封裝成 void repeat(chars, int maxsize), 再用swig調用 'cstring_output_withsize' 這個宏再封裝一次了。