close

 

自從換來新公司之後,就一陣忙碌,似乎好像也沒啥蜜月期,第一天大概了解一下環境和系統,第二天就開始寫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的類型會是stringn = int(input("Please enter start count :")) #3
for number in range(n):                      
    print("*",end="")                        #***

 

 

 有兩個參數的range()

range()配上兩個參數的時候,它的格式會是如下:

range(start,end) # start:起始值 , end-1是終止值,然後,startend也可以是負數的,但是,如果終止值小於起始值,則會產生空序列。

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

 

 

 

 

 

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Eric 的頭像
    Eric

    一個小小工程師的心情抒發天地

    Eric 發表在 痞客邦 留言(0) 人氣()