Python sang C++

bước

  1. đổi. py đến. pyx
  2. sử dụng cython để chuyển đổi. pyx để. c
  3. biên dịch. c
  4. Chạy thử nghiệm

tập tin python ví dụ

script.py

bước 1

bạn có thể sao chép hoặc đổi tên cả hai tôi đang sao chép

cp script.py script.pyx

bước 2

cython script.pyx --embed

bước 3

gcc -Os -I /usr/include/python3.8 -o script script.c -lpython3.8 -lpthread -lm -lutil -ldl

bước 4

./script

và thực hiện

[Alexander] đã tạo codex_py2cpp như một cách thử nghiệm với Codex, một AI nhằm dịch ngôn ngữ tự nhiên thành mã. Tuy nhiên, [Alexander] có những ý tưởng hơi khác và đã tạo ra

cp script.py script.pyx
3 như một cách để chơi với ý tưởng tự động chuyển đổi Python thành C++. Nó không thực sự nhằm tạo ra các chuyển đổi mã mạnh mẽ, nhưng theo như các thử nghiệm, nó khá gọn gàng

Chương trình hoạt động bằng cách đọc tập lệnh Python dưới dạng tệp đầu vào, thiết lập một số tham số, sau đó đưa ra yêu cầu tới API Codex của OpenAI để chuyển đổi. Sau đó, nó cố gắng biên dịch kết quả. Nếu quá trình biên dịch thành công, thì hy vọng tệp thực thi kết quả thực sự hoạt động giống như cách tệp đầu vào đã làm. Nếu không? . Nếu bạn muốn thử, có thể bắt đầu đơn giản và đừng ném quá nhiều đường cong

Codex là một ý tưởng thú vị và đây không phải là thử nghiệm đầu tiên mà chúng tôi thấy sử dụng khái niệm sử dụng máy học theo cách này. Chúng tôi đã thấy một dự án tạo ra các lệnh Linux dựa trên mô tả bằng lời nói và [Maya Posch] của riêng chúng tôi đã xem xét kỹ GitHub Copilot, một dự án có triển vọng và ý tưởng cao, nhưng — ít nhất là vào thời điểm đó — ít hơn đáng kể

[quảng cáo_1]

chuyển mã python sang c trực tuyến miễn phí

a=[int[x] for x in input[].split[]] 
n=int[input[]] 
l=[] 
for i in range[len[a]-1]:
    c=0 
    print[a[i],a[i+1]] 
    for j in range[2, min[a[i], a[i+1]]+1]:
        if a[i]%j==a[i+1]%j==0:
            c=1 
    if c==0 and a[i]>a[i+1]:
        l.append[i]
print[l[0]]

chuyển mã python sang c trực tuyến miễn phí

name=input["please enter your name: "]
print["your name is " + name]
print["name data type: ",type[name]]

age = input["please enter your age: "]
print["your age is " + age]
print["name data type: ",type[age]]

chuyển mã python sang c trực tuyến miễn phí

n=int[input[]]
a,b=map[int,input[].split[]]
for j in range[n]:
x=int[input[]]
c=0
for i in range [a,b+1]:
if[x%i==0]:
c+=1
print[c]

chuyển mã python sang c trực tuyến miễn phí

________số 8

[quảng cáo_2]

Hãy chia sẻ

rất nhiều người sử dụng Cython để biên dịch mã python của họ trong C để tăng hiệu suất. Nó rất dễ làm và có thể là thứ mà bạn muốn tận dụng

Đảm bảo rằng bạn đã cài đặt Cython trước

Quá trình tổng thể diễn ra như thế này

  • Mang các phần mã của bạn mà bạn muốn chuyển đổi sang c thành một tệp riêng
  • Cung cấp thông tin về loại và cho Cython biết những gì bạn muốn sử dụng trong Python và những gì bạn không sử dụng
  • biên dịch tệp riêng biệt bằng cách sử dụng thiết lập. tập tin py

Trong ví dụ này, giả sử chúng ta muốn biên dịch hàm này thành C

def AddToTen[]:
x = 0
for i in range[1,11]:
x+=i
return x

Điều đầu tiên chúng ta cần làm là di chuyển cái này từ một. tập tin py vào một. pyx, đó là những gì Cython sử dụng. Bây giờ chúng tôi sẽ cung cấp thông tin loại cho các biến của chúng tôi

Bạn muốn đọc câu chuyện này sau?

trong Cython, có ba câu lệnh def

  • cdef. khai báo thứ gì đó sẽ chỉ được sử dụng trong c [như các biến bên trong hàm của chúng ta]
  • pdef. khai báo thứ gì đó sẽ chỉ được sử dụng trong Python
  • cpdef. tuyên bố một cái gì đó điều này sẽ được sử dụng trong cả hai
cp script.py script.pyx
0

Vì tôi sẽ không gọi các biến bên trong hàm của chúng ta trong Python, nên tôi đã sử dụng cdef, nhưng đối với chính hàm đó, tôi đã sử dụng cpdef

Ngoài ra, lưu ý rằng chúng tôi đã nhập I trong vòng lặp for và hàm vì nó trả về một int

Bây giờ chúng ta phải biên dịch. pyx. Trong một tệp riêng biệt [của tôi có tên là setup. py], hãy viết đoạn mã sau

cp script.py script.pyx
1

Cuối cùng, trong terminal [đảm bảo rằng bạn đang ở trong cùng một thư mục], hãy chạy dòng

cp script.py script.pyx
2

Điều này sẽ biên dịch pyx của bạn và bạn sẽ thấy một tệp có cùng tên với phần mở rộng. c thay vì pyx

Giờ đây, bạn có thể nhập các hàm c của mình vào các tệp python cục bộ, với điều kiện là bạn đã sử dụng cpdef, chỉ bằng cách nhập 'tên tệp của bạn'. Các IDE có xu hướng đưa ra lỗi nhập cho tôi mặc dù chúng đã nhập tốt. Bạn cũng có thể nhập các thư viện python vào tệp pyx, nhưng theo kinh nghiệm của tôi, nó hoạt động giống như trong Python

Chúng ta có thể chuyển mã Python sang C không?

Mã Python có thể gọi trực tiếp vào các mô-đun C . Các mô-đun C đó có thể là thư viện C chung hoặc thư viện được xây dựng riêng để hoạt động với Python. Cython tạo ra loại mô-đun thứ hai. Các thư viện C nói chuyện với nội bộ của Python và có thể được gói cùng với mã Python hiện có.

Bạn có thể chuyển Python sang C++ không?

Chuyển đổi tập lệnh Python của bạn thành Mã C++ bằng OpenAI Codex . Đã tạo codex_py2cpp như một cách thử nghiệm với Codex. Tệp Python tạo dấu nhắc đầu vào, sau đó được cung cấp cho OpenAI Codex để tạo mã C++ tương ứng.

Chủ Đề