c 和Python 高階篇筆記(一)

2021-07-26 18:57:23 字數 3316 閱讀 8989

輸入任意4個字元(如:abcd),並按反序輸出(如:dcba)

c++中我嘗試了五種解決辦法:

1. 直接使用陣列

#include

using

namespace

std;

int main()

cout

<<"reverse output:";

for (int j=3;j>=0;j--)

2.使用string來實現

string可以看成一種特殊的容器,在使用string的時候,由於不太熟悉,所以先查詢了string的講解。對於string的研究,以後有時間就繼續寫。

#include

#include

using

namespace

std;

int main()

在這裡要說明三點:(1)c++中string可以使用字元傳的方式進行訪問 (2)在使用string的時候一定要引入string庫(3)如果使用cin作為輸入流,不能接受空格或者回車,就是說,只能接受乙個單詞

3.使用stl中的容器和迭代器

容器(containers):管理某一類物件的集合,可以理解為裝資料的容器。每一類資料又有自帶的成員函式可以使用。例如,deque(佇列), list(鍊錶) ,vector(陣列) ,map

演算法(algorithms): 作用於容器,提供執行各種操作的方式。具體的實現方法是已經封裝好的,我們只要學會怎麼呼叫就好了。比如,初始化,排序,搜尋,和轉換等。

迭代器(iterators): 專門用來便利容器裡的物件元素的。

#include 

#include

using

namespace

std;

int main()

list1.reverse();

cout

<<"reverse output:";

for(list

::iterator it=list1.begin();it!=list1.end();it++)

cout

0;}

在這個嘗試中,我使用的是list容器自帶的reverse的成員函式。

4.使用stl中的容器和演算法以及迭代器

#include 

#include

#include

using

namespace

std;

int main()

reverse(list1.begin(),list1.end());

cout

<<"reverse output:";

for(list

::iterator it=list1.begin();it!=list1.end();it++)

cout

0;}

這裡使用了演算法中的reverse演算法。

5.使用stl中的容器和演算法以及反向迭代器

#include 

#include

using

namespace

std;

int main()

cout

<<"reverse output:";

for(list

::reverse_iterator r_it=list1.rbegin();r_it!=list1.rend();r_it++)

cout

0;}

反向迭代器與正向迭代器的訪問機制是一樣的,只是在反向迭代器中,是把最後乙個元素當成第乙個元素,在++ 的過程中,是在向第乙個元素前進的方向。有了反向迭代器,就可以不用改變鍊錶中的內容了。

接下來要切換到python語言來完成這個題目了。

python語言相對於c++來說,有很多的不同之處,在此處,我只針對於解決這個題目涉及到的內容進行比較:

(1)在python中變數是不需要定義的。比如在傳統的c和c++中,我們需要告訴編譯器,我們定義的這個變數是乙個整型,浮點型,或者是字串。在python中我不需要,基於變數的資料型別,直譯器會分配指定記憶體,並決定什麼資料可以被儲存在記憶體中。

(2)1.第一種方法:切片

這種方法在python中是最簡單的。

str = raw_input("please input a string:")

print 'reverse output:\n'

print str[::-1]

2.直接反向輸出字串:是模仿切片的操作

str = raw_input("please input a string:")

print

'reverse output:\n'

length=len(str)-1

str1=''

while

length>=0:

str1 += str[length]

length -= 1

print str1

在這個小**中,出現了下面的錯誤:

traceback (most recent call

last):

file "c:/users/administrator/desktop/test/python1.py", line 6, in

str1 += str[length]

nameerror: name 'str1'

isnot defined

是因為雖然python中變數不需要宣告,但是如果沒有賦值就輸出就會報錯,說這個變數沒有定義。所以要加上strl=」,給它乙個空值。

3.因為list中有乙個reverse方法,可以將字串轉換成list。轉換成list之後如果要以字串的方式顯示,必須在利用join函式把list中的元素連線起來。

str = raw_input("please input a string:")

print

'reverse output:\n'

list1=list(str)

list1.reverse()

str1=''.join(list1)

print str1

如果不連線的話,輸出的結果是如下情況:

please input a string:123434

reverse output:

['4', '3', '4', '3', '2', '1']

Python高階用法篇 筆記

在python2.x中,items 用於 返回乙個字典的拷貝列表 returns a copy of the list of all items key value pairs in d 佔額外的記憶體。iteritems 用於返回本身字典列表操作後的迭代 returns an iterator o...

python練習 高階篇)

1 求1 2 3 4 5 99的和 count 1 s1 0 s2 0 while count 100 if count 2 0 s1 count else s2 count count 1 s s1 s2 print s 2 用python編寫程式,輸入一年份,判斷該年份是否是閏年並輸出結果 注 ...

C 陣列高階篇

陣列高階知識適合收藏 在陣列基礎知識上進一步提公升和鞏固 前提是 每行中的列數要相等 下面用 舉例說明 int row 2,colums 3 int nums 一維陣列 for int i 0 i row i cout endl 要給定陣列的行數 列數,可以只給定二維陣列列數 不給定行數 不能只給定...