自從換來新公司之後,就一陣忙碌,似乎好像也沒啥蜜月期,第一天大概了解一下環境和系統,第二天就開始寫code,然後,就一路搞到現在,邊寫邊申請一些權限,直到上禮拜release後,才有點時間來記錄一下這幾星期的心得。
首先,我想先說,C++和python真的很不一樣,但說真的不一樣到哪裡,以目前來說,就是一些處理上的不一樣而已,其實,我真的覺得還好欸….. 至於陣痛部分,我到覺得語言不是讓我最辛苦的地方,最辛苦的是在IDE的變換,這才是最麻煩的事情;或許,是VS用久了,現在換到Pycharm後,真的是各種不爽。
好了,廢話就不多說了,第一篇的python,我先以簡單的for來教學吧,一樣,如果有錯誤的地方,希望大家能在下方留言讓我知道,謝謝囉。
首先,我們先聊聊range(),range()可以產生一個等差級序列,我們又稱這等差級序列(註1)為可迭代物件( iterable object) ,也可以稱為是range物件。這裡我們不探討深入的東西,就把這個range() 當作迴圈的計數器來看就行了。
※註1:
1-2-3-4-5….n
n- (n-1) = (n-1)-(n-2)
數列中任意相鄰兩項之差均相等,我們稱為等差。
x = range(3) print(type(x)) #-> <class 'range'>
接下來,我們來介紹關於range的用法
只有一個參數的range()
當我們的range(x)函數只有一個參數的時候,他將產生0,1,2……..n-1的內容
#這裡注意一件事情,int必不可少!!! 不然,你input的類型會是string的 n = int(input("Please enter start count :")) #3 for number in range(n): print("*",end="") #***
有兩個參數的range()
當range()配上兩個參數的時候,它的格式會是如下:
range(start,end) # start:起始值 , end-1是終止值,然後,start或end也可以是負數的,但是,如果終止值小於起始值,則會產生空序列。
for i in range(0,3): print(i) #0 1 2 for k in range(-1,2): print(k) #-1 0 1 for j in range(10,2): print(j) #空的 ''' C/C++的方式 : for (int i = 0 ; i< 3 ;i++) printf("%d",i) '''
# 一個很簡單的範例: 計算1+....n n = int(input("please enter n: "))#10 sum = 0 for num in range(1,n+1): sum +=num print(sum) #55
有三個參數的range()
接下來,越來越多了,哈哈,我們來使用三個參數吧,三個參數的格式如下 :
range( start , end , step ) #Start : 起始值 ,end : 終止值, Step:間隔值
''' 其實這玩意的理解,我會比較傾向於向 for (int i =0 ; i<n ;i+=x ) 為了要控制i+=x這件事情,所以延伸出來的方式 ''' for i in range(2,11,2): #產生2-10之間的偶數 print(i) #2 4 6 8 10 #另外,剛剛說過step也可以是負數,但是重點是,起始值必須大於終止值 for i in range(10,0,-2): print(i) #10 8 6 4 2
運用range()
好,我們來看一些我新學會的應用吧,首先是簡化我們剛剛的1加到n
n = int (input("Please enter an integer: ")) total = sum (range(n+1)) print(total)
以及python特有的列表(list)操作
xlist=[] xlist.append(0) xlist.append(1) xlist.append(2) xlist.append(3) xlist.append(4) print(xlist) #0,1,2,3,4 xlist2=[] for n in range(5): xlist2.append(n) print(xlist2)#0,1,2,3,4 #或是我們可以更精簡點 xlist3=list(range(5)) print(xlist3)#0,1,2,3,4 #以上的方式,都可以work,接下來,來介紹一個新鮮的! ''' 新串列 = [ 運算式 for 項目 in 可迭代物件 ] 上面的意思是說,將每個可迭代的物件套入運算式,每次產生一個串列元素。 如果將串列生成式的觀念用在上面的實例,我們可以得到以下的內容: ''' xlist4=[n for n in range(5)] print(xlist4)#0,1,2,3,4 ''' 上面第一個n是指產生串列的,也可以想像成迴圈結果的值,第二個n是就是迴圈的一部分, 用來迭代range(5)的內容 '''
celsius = [25,37,40] fahrenheit=[(x*9 / 5+32) for x in celsius] print(fahrenheit) #77.0,98.6 ,104.0 n = 5 sum = [(n*2) for num in range(0,n)] print(sum) #sum : 10 10 10 10 10
留言列表