2022年4月6日 星期三

Python list +for

 Python list 串列 

#-----------------------------------------------程式--------
#串列list宣告, 陣列array 
list1=[11,22,33,44,55,66,77
# index 索引 = 0,1,2,3,4,5,6
# len( list1 )= 7 

#引用元素
print( list1[0], list1[1], list1[2])

#呼叫全部
print(list1)
for i in range(7):   # range(7)=0,1,2,3,4,5,6
   print( list1[i],end=",")
print()   #空行
for s in list1:
   print(s,end=",")

#-----------------------------------------------程式--------
#字串型內容
apple=["香蕉","芭樂","蘋果","流連","葡萄"]
for s in apple: 
  print(s,end=",")


#-----------------------------------------------程式--------
#求總和 1
score=[11,22,33,44,55,66,77]
sum=0
for i in rangelen(score) ) :  #length
   # len(score)=7, range(len(score))=range(7)=0~6
   #print(score[i],end="'")
   print(sum,"=",sum,"+",score[i],end="")
   sum=sum+score[i]    # <-----縮排,跑了7次
   print"---> sum=",sum )
print()
print("sum=" , sum )

#------------------------------------文字==結果----
0 = 0 + 11---> sum= 11 11 = 11 + 22---> sum= 33 33 = 33 + 33---> sum= 66 66 = 66 + 44---> sum= 110 110 = 110 + 55---> sum= 165 165 = 165 + 66---> sum= 231 231 = 231 + 77---> sum= 308 sum= 308

#-----------------------------------------------程式--------
#求總和 2  <----注意, sum的位置不一樣
score=[11,22,33,44,55,66,77]
sum=0
for i in rangelen(score)) :
  print(i,end=",")
print()
print("i=",i)
sum=sum+score[i] # <----注意, sum的位置不一樣
          ## <-----沒有縮排,不在for裡面,跑了1次
print("sum=" , sum )
print("why? sum=77 ")
print(".......自已填............")

#-----------------------------------------------程式--------
#自動產生100個數字, 排序
import random   #外掛,亂數
list2=[]
for i in range(100):
  list2.append( random.randint(1,100) )
print( list2 )

list2.sort()
print( list2 )

list2.reverse()
print( list2 )

#-----------------------------------------------程式--------
# 搜尋, 計算找到幾個元素
import random
list2=[]
for i in range(100):
  list2.append(random.randint(1,100))
print( list2 )

x=int(input("請輸入一個數字做search.."))  # input-->字串
for i in range(100):   # i=0~99
  if(x==list2[i]):    # list2[0] ~ list2[99] , 
    # a=5 assign ,  a==5 compare,傳回直=True/False
    print(i,list2[i])  # i=index , list[i]=直
   
#計算找到幾個元素--自己算
cnt=0
for i in range(100):
  if(x==list2[i]): 
    cnt+=1   # cnt=cnt+1
print("There are", cnt ,"elements in List2 (自己算)" )

#計算找到幾個元素--用現有的函式
print("There are", list2.count(x),"elements in List2 (count)" )


#-----------------------------------------------程式--------
## Home Work 1
# 產生100個元素的陣列list3, 再產生一個空的陣列odd(奇數),even(偶數)
# 將list3的奇數copy到odd,將list3的=偶數copy到even,排序後印出
import random
list3=[]
for i in range(100):
  list3.append(random.randint(1,100))
print( list3 )
list3.sort()

odd=[]
even=[]
for i in range(100):
  if( list3[i] %2 ==1 ):  # % 取餘數 , ==比較(是不是等於),結果=True/false
    odd.append( list3[i] )
  else:
    even.append( list3[i] )
print( odd )
print( even )

# HomeWork 請計算奇數數字和,偶數數字的和


#-----------------------------------------------程式--------
# Home work 2
# 產生一個list,如下 [1,2,3,,,,,,100]
# 計算總和sum跟平均值average
import random
list3=[]
for i in range(100):
  list3.append(random.randint(1,100))
print( list3 )

sum=0
for i in range100 ) :
   sum=sum+list3[i] 
print("sum=" , sum )
print("averge=" , sum/100 )

----------------------------------

#統計list內每一個元素的數量
import random
list4=[]
for i in range(300): list4.append(random.randint(1,50))
print( list4 )

#count
list4.sort()
print(list4)
x=list4[0]
cnt=0
for i in range(300):
  if(x != list4[i]):
    print(x," 有 ", list4.count(x),",",cnt,"個")
    x=list4[i]
    cnt=0
  cnt+=1

沒有留言:

張貼留言