當前位置:首頁 » 編程語言 » 字元串反轉python

字元串反轉python

發布時間: 2022-10-20 08:43:42

㈠ 怎樣讓python腳本與C++程序互相調用

二、Python調用C/C++

1、Python調用C動態鏈接庫

Python調用C庫比較簡單,不經過任何封裝打包成so,再使用python的ctypes調用即可。
(1)C語言文件:pycall.c

[html] view plain
/***gcc -o libpycall.so -shared -fPIC pycall.c*/
#include <stdio.h>
#include <stdlib.h>
int foo(int a, int b)
{
printf("you input %d and %d\n", a, b);
return a+b;
}
(2)gcc編譯生成動態庫libpycall.so:gcc -o libpycall.so -shared -fPIC pycall.c。使用g++編譯生成C動態庫的代碼中的函數或者方法時,需要使用extern "C"來進行編譯。
(3)Python調用動態庫的文件:pycall.py

[html] view plain
import ctypes
ll = ctypes.cdll.LoadLibrary
lib = ll("./libpycall.so")
lib.foo(1, 3)
print '***finish***'
(4)運行結果:

2、Python調用C++(類)動態鏈接庫

需要extern "C"來輔助,也就是說還是只能調用C函數,不能直接調用方法,但是能解析C++方法。不是用extern "C",構建後的動態鏈接庫沒有這些函數的符號表。
(1)C++類文件:pycallclass.cpp

[html] view plain
#include <iostream>
using namespace std;

class TestLib
{
public:
void display();
void display(int a);
};
void TestLib::display() {
cout<<"First display"<<endl;
}

void TestLib::display(int a) {
cout<<"Second display:"<<a<<endl;
}
extern "C" {
TestLib obj;
void display() {
obj.display();
}
void display_int() {
obj.display(2);
}
}
(2)g++編譯生成動態庫libpycall.so:g++ -o libpycallclass.so -shared -fPIC pycallclass.cpp。
(3)Python調用動態庫的文件:pycallclass.py

[html] view plain
import ctypes
so = ctypes.cdll.LoadLibrary
lib = so("./libpycallclass.so")
print 'display()'
lib.display()
print 'display(100)'
lib.display_int(100)
(4)運行結果:

3、Python調用C/C++可執行程序
(1)C/C++程序:main.cpp

[html] view plain
#include <iostream>
using namespace std;
int test()
{
int a = 10, b = 5;
return a+b;
}
int main()
{
cout<<"---begin---"<<endl;
int num = test();
cout<<"num="<<num<<endl;
cout<<"---end---"<<endl;
}
(2)編譯成二進制可執行文件:g++ -o testmain main.cpp。
(3)Python調用程序:main.py

[html] view plain
import commands
import os
main = "./testmain"
if os.path.exists(main):
rc, out = commands.getstatusoutput(main)
print 'rc = %d, \nout = %s' % (rc, out)

print '*'*10
f = os.popen(main)
data = f.readlines()
f.close()
print data

print '*'*10
os.system(main)
(4)運行結果:

4、擴展Python(C++為Python編寫擴展模塊)
所有能被整合或導入到其它python腳本的代碼,都可以被稱為擴展。可以用Python來寫擴展,也可以用C和C++之類的編譯型的語言來寫擴展。Python在設計之初就考慮到要讓模塊的導入機制足夠抽象。抽象到讓使用模塊的代碼無法了解到模塊的具體實現細節。Python的可擴展性具有的優點:方便為語言增加新功能、具有可定製性、代碼可以實現復用等。
為 Python 創建擴展需要三個主要的步驟:創建應用程序代碼、利用樣板來包裝代碼和編譯與測試。
(1)創建應用程序代碼

[html] view plain
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int fac(int n)
{
if (n < 2) return(1); /* 0! == 1! == 1 */
return (n)*fac(n-1); /* n! == n*(n-1)! */
}

char *reverse(char *s)
{
register char t, /* tmp */
*p = s, /* fwd */
*q = (s + (strlen(s) - 1)); /* bwd */

while (p < q) /* if p < q */
{
t = *p; /* swap & move ptrs */
*p++ = *q;
*q-- = t;
}
return(s);
}

int main()
{
char s[BUFSIZ];
printf("4! == %d\n", fac(4));
printf("8! == %d\n", fac(8));
printf("12! == %d\n", fac(12));
strcpy(s, "abcdef");
printf("reversing 'abcdef', we get '%s'\n", \
reverse(s));
strcpy(s, "madam");
printf("reversing 'madam', we get '%s'\n", \
reverse(s));
return 0;
}
上述代碼中有兩個函數,一個是遞歸求階乘的函數fac();另一個reverse()函數實現了一個簡單的字元串反轉演算法,其主要目的是修改傳入的字元串,使其內容完全反轉,但不需要申請內存後反著復制的方法。
(2)用樣板來包裝代碼
介面的代碼被稱為「樣板」代碼,它是應用程序代碼與Python解釋器之間進行交互所必不可少的一部分。樣板主要分為4步:a、包含Python的頭文件;b、為每個模塊的每一個函數增加一個型如PyObject* Mole_func()的包裝函數;c、為每個模塊增加一個型如PyMethodDef MoleMethods[]的數組;d、增加模塊初始化函數void initMole()。

㈡ python怎麼將字元串反轉後輸出

字元串='123456789'
字元串[::-1]='987654321'

㈢ python怎麼將數字反轉後輸出

可以將數字轉換成字元串,字元串反轉之後再進行反轉輸出,例如:
a=12345
將a轉換成字元串並反轉
b=str(a)[-1:]
之後就在將b轉換成數字就行

c=int(b)

㈣ python必背入門代碼是什麼

具體如下:

1、反轉字元串:

#Reversing a string using slicing

my_string ="ABCDE」

reversed string = my_string[:: -1]

print( reversed _string)

#output

#EDCBA

2、使用標題類:

my_string = "my name is chaitanya baweja"

newstring =my string.title(

print(new_string)

# My Name Is chaitanya Baweja

3、查找字元串的唯一要素:

my_string = "aavvccccddddeee"

temp_set = set(my_string)

new string = -join(temp_set)

print(new_string)

4、輸出 n次字元串或列表:

n = 3

my_string = "abcd"my _list = [1,2,3]

print(my_string*n)

print(my_list*n)

import streamlit as st

5、列表解析:

n = 4

my_list = [o]*n#[o, o,o,o]

6、兩個變數之間的交換值:

original_list =[1,2,3,4]

new list =[2*x for x in original_list]

print(new_list)

#[2,4,6,8]

Python經常被用於Web開發。比如,通過mod_wsgi模塊,Apache可以運行用Python編寫的Web程序。Python定義了WSGI標准應用介面來協調Http伺服器與基於Python的Web程序之間的通信。一些Web框架,如Django,TurboGears,web2py,Zope等,可以讓程序員輕松地開發和管理復雜的Web程序。

在很多操作系統里,Python是標準的系統組件。大多數Linux發行版以及NetBSD、OpenBSD和Mac OS X都集成了Python,可以在終端下直接運行Python。

應用范圍:

有一些Linux發行版的安裝器使用Python語言編寫,比如Ubuntu的Ubiquity安裝器,Red Hat Linux和Fedora的Anaconda安裝器。

Gentoo Linux使用Python來編寫它的Portage包管理系統。Python標准庫包含了多個調用操作系統功能的庫。

通過pywin32這個第三方軟體包,Python能夠訪問Windows的COM服務及其它Windows API。

使用IronPython,Python程序能夠直接調用.Net Framework。一般說來,Python編寫的系統管理腳本在可讀性、性能、代碼重用度、擴展性幾方面都優於普通的shell腳本。

㈤ Python中字元串兩端加什麼

加空格。
字元串兩端空格的方法目的獲得一個首尾不含多餘空格的字元串方法可以與python中的字元串反轉在go中,需要用rune來處理。
字元串是Python中最常用的數據類型我們可以使用引號('或")來創建字元串。

㈥ Python中字元串常用操作有哪些

字元串是 Python
中常用的數據類型,我們可以使用引號('或")來創建字元串,對字元串進行使用和操作,需要用到特定的函數,以下是常用的Python字元串操作方法:
1. capitalize()
作用:capitalize() 主要是用來實現字元串首字母大寫,其他字母小寫的功能。
實例:
1
2str1 = "oldboy"
print(str1.capitalize())
輸出結果:Oldboy
2. swapcase()
作用:swapcase() 主要是用來實現字元串大小寫反轉。
實例:
1
2str1 = " Oldboy"
print(str1.swapcase())
輸出結果:oLDBOY
3. title()
作用:title() 主要是用來實現字元串非字母隔開的部分,首字母大寫,其餘字母小寫。
實例:
1
2str1 = "Old boy e com"
print(str1.title())
輸出結果:Old Boy E Com
4. upper()
作用:upper() 主要是用來實現字元串所有字母全部大寫。
實例:
1
2str1 = "Oldboye"
print(str1.upper())
輸出結果:OLDBOYEDU
5. lower()
作用:lower() 主要是用來實現字元串所有字母全部小寫。
實例:
1
2str1 = "oLDBOYEDU"
print(str1.lower())
輸出結果:oldboye
6. center()
作用:center() 主要是用來實現字元串內容居中,填充物默認為空。
實例:
1
2
3str1 = "Oldboye"
print(str1.center(15))
print(str1.center(15,"*"))
輸出結果:
Oldboye
***Oldboye***
7. find()
作用:find() 主要作用是通過元素找索引,可以整體找,可以切片,找不到則返回-1。
實例:
1
2
3str1 = "Oldboye"
print(str1.find('b'))
print(str1.find('A'))
輸出結果:3 -1
8. index()
作用:index() 主要作用是通過元素找索引,可以整體找,可以切片,找不到會報錯。
實例:
1
2
3str1 = " Oldboye "
print(str1.index("b"))
print(str1.index("A"))
輸出結果:
0
Traceback (most recent call last):
File "", line 1, in
ValueError: substring not found
9. startswith(obj)
作用:startswith(obj) 主要作用是檢查字元串是否是以 obj 開頭,是則返回 True,否則返回 False。
實例:
1
2str1 = "Oldboye"
print(str1.startswith("O"))
輸出結果:True
10. endswith(obj)
作用:endswith(obj) 主要作用是檢查字元串是否是以 obj 開頭,是則返回 True,否則返回 False。
實例:
1
2str1 = " Oldboye "
print(str1.endswith("e"))
輸出結果:True
11. strip()
作用:strip() 主要作用是去除字元串前後兩端的空格或其他字元、換行符、tab鍵等。
實例:
1
2
3
4str1 = "***Oldboy***"
print(str1.strip("*")) #去除兩邊的*
print(str1.lstrip("*")) #去除左邊的*
print(str1.rstrip("*")) #去除右邊的*
輸出結果:
Oldboy
Oldboy***
***Oldboy
12. replace(oldstr, newstr)
作用:replace(oldstr, newstr)主要作用是替換字元串。
實例:
1
2str1 = "Oldboye"
print(str1.replace("boy","man"))
輸出結果:Oldmane
13. isalpha()
作用:isalpha()主要作用是要判斷字元串是否只由字母組成,是返回Ture,否返回False。
實例:
1
2
3
4str1 = "Oldboye"
str2 = 「Old boy e」
print(str1.isalpha())
print(str2.isalpha())
輸出結果:True False
14. isdigit()
作用:isdigit()主要作用是判斷字元串是否只由數字組成,是返回Ture,否返回False。
實例:
1
2
3
4str1 = "Oldboye"
str2 = 「520」
print(str1.isdigit())
print(str2.isdigit())
輸出結果:False True
15. format()
作用:format()主要作用是格式化字元串。
方式一:按位置傳參
1
2str1 = '我叫{},今年{}歲'.format('oldboy',30)
print(str1)
輸出結果:我叫oldboy,今年30歲
方式二:按索引傳參
1
2str1 = '我叫{0},今年{1}歲'.format('oldboy',30)
print(str1)
輸出結果:我叫oldboy,今年30歲
方式三:按key傳參
1
2str1 = '我叫{name},今年{age}歲'.format(age=30,name='oldboy')
print(str1)
輸出結果:我叫oldboy,今年30歲
16. count()
作用:count()主要作用是統計元素在字元串出現的次數。
1
2str1 = "oldboye"
print(str1.count(『o』)) #統計字元o在字元串中出現的次數
數據結果:2

㈦ python中eval的用法

python中eval函數用法如下:

1、計算字元串中有效的表達式,並返回結果。

2、將字元串轉成相應的對象(如list、tuple、dict和string之間的轉換)。

3、將利用反引號轉換的字元串再反轉回對象。

函數作用域:eval()函數並不會創建一個新的作用域,並且它的作用域就是它所在的作用域,有時候需要將eval()函數的作用域設置為全局,當然可以將eval()在全局作用域中使用,這個時候可以用window.eval()的方式實現。


參數情況:

(1)如果參數是一個表達式,eval() 函數將執行表達式。

(2)如果參數是Javascript語句,eval()將執行 Javascript 語句。

注意:如果執行結果是一個值就返回,不是就返回undefined,如果參數不是一個字元串,則直接返回該參數。

㈧ 如何用python語言獲得一個字元串的逆序字元串

1、有時候我們可能想讓字元串倒序輸出,下面給出幾種方法
方法一:通過索引的方法
[python] view plain print?
>>> strA = "abcdegfgijlk"
>>> strA[::-1]
'kljigfgedcba'
方法二:借組列表進行翻轉
[python] view plain print?
#coding=utf-8
strA = raw_input("請輸入需要翻轉的字元串:")
order = []
for i in strA:
order.append(i)
order.reverse() #將列表反轉
print ''.join(order) #將list轉換成字元串
執行結果:
[python] view plain print?
請輸入需要翻轉的字元串:abcdeggsdd
ddsggedcba

㈨ 程序設計,輸入字元串str1和數字n,將字元串前n個字元前後順序反轉存儲在str2中並輸出。

#include <iostream>

#include <cstdio>

using namespace std;

int main()

{

int n;

char a[20],b[20];

scanf("%s",a);

scanf("%d",&n);

cout<<a<<endl;

for(int i=0;i<=n-1;i++)

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# 編一個程序,輸入兩個字元串str1和str2,計算str2在str1中出現的位置,輸出位置結果

str1 = raw_input()

str2 = raw_input()

if str2 in str1:

print len(str1.split(str2)[0]) + 1

(9)字元串反轉python擴展閱讀:

通常以串的整體作為操作對象,如:在串中查找某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。兩個字元串相等的充要條件是:長度相等,並且各個對應位置上的字元都相等。設p、q是兩個串,求q在p中首次出現的位置的運算叫做模式匹配。串的兩種最基本的存儲方式是順序存儲方式和鏈接存儲方式。

熱點內容
隨機啟動腳本 發布:2025-07-05 16:10:30 瀏覽:513
微博資料庫設計 發布:2025-07-05 15:30:55 瀏覽:18
linux485 發布:2025-07-05 14:38:28 瀏覽:298
php用的軟體 發布:2025-07-05 14:06:22 瀏覽:747
沒有許可權訪問計算機 發布:2025-07-05 13:29:11 瀏覽:421
javaweb開發教程視頻教程 發布:2025-07-05 13:24:41 瀏覽:675
康師傅控流腳本破解 發布:2025-07-05 13:17:27 瀏覽:229
java的開發流程 發布:2025-07-05 12:45:11 瀏覽:673
怎麼看內存卡配置 發布:2025-07-05 12:29:19 瀏覽:274
訪問學者英文個人簡歷 發布:2025-07-05 12:29:17 瀏覽:824