☆☆ 新着記事 ☆☆

2018年6月8日金曜日

Python 3 Loop表現 While, for, If

◇for 構文
◆書式1
for 要素(取り出した要素を格納する変数) in iterableオブジェクト:
(javascriptやc言語系のような for(i=0; i<n; i++) Syntaxは使えない
for i in 3: のような数字も使えない。 for i in range(3): と記述する事が必要。


例)
fruits = ['maron', 'banana','Strawberry','pineapple']
for fruit in fruits:
  print (fruit)

(output)
maron
banana
Strawberry
pineapple

勿論、for loopは足し算にも使える
b = [1,2,3,4]
total = 0
for b_sum in b:
    total = total+b_sum
(or total += b_sum)

(範囲を指定):リストの一部を抽出

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
my_list=[]
for n in range(3, len(nums)-3): // len()を使うと、使用するリストを指定できる。
    my_list.append(n)

print(my_list)/ /[3, 4, 5, 6, 7]



このrangeでは、開始の指定値以上終了の指定値未満になる。
start ≦ i < stop


♯rangeが数字であれば、i も str形式で、リストの指定などにも使えるようになる。
for i in range(len(text_list)): 
          print(text_list[i])


(リストの取り出し)
import json
people_string='''
{
    "people":[
        {"name":"Wayne Rigsby",
         "phone":"123-456-789",
         "emails":["wayne@cbi.com", "wayne2@cbi.com"],
         "has_license":true},
        {"name":"Patric Jane",
         "phone":"987-654-321",
         "emails":null,
         "has_license":false}

              ]
    }'''
data =json.loads(people_string)

for person in data['people']:
    print(person)
 

◆書式2 List Comprehension
nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

my_list =[n for n in nums ]
print(my_list) // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

my_list =[n*n for in nums ]
print(my_list) // [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

my_list =[n for n in nums[3:8]] //リストの範囲を指定して一部を取り出す。
print(my_list) // [3, 4, 5, 6, 7]


◆書式3 lambdaを使用(あまり使わなくなってる)
my_list = map(lambda n: n*n,nums)



◆ネストのさせ方
nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
my_list=[]
for letter in 'abcd':
    for num in range (4):
        my_list.append((letter, num))

print(my_list)
//[('a', 0), ('a', 1), ('a', 2), ('a', 3), ('b', 0), ('b', 1), ('b', 2), ('b', 3), ('c', 0), ('c', 1), ('c', 2), ('c', 3), ('d', 0), ('d', 1), ('d', 2), ('d', 3)]


◇if 基本構文

amount = int(input("Enter amount: "))
if  (条件1) 900< amount<1000:
   discount = amount*0.05
  print ("Discount",discount)

 elif  (条件2) 800 < amount =< 900':
     discount = amount*0.06

 elif  (条件3) 700< amount =< 800':
     discount = amount*0.07

else:
   discount = amount*0.10
   print ("Discount",discount)
    print ("Net payable:",amount-discount)

** modulo operator (%): 割り算の余りを算出
total = 0
for i in range(1,8):
   if i % 3 ==0:
      total +=i
print(total) : output 9
 


◇ContinueとBreak
 1.continue
continue文は、for文やwhile文のブロック処理中に使用します。continue文を使用すると、それ以降の処理を行わず、for文やwhile文のブロックの先頭に戻ります。

for x in range(5):
    if x == 3:
        continue
    print(x)

実行結果
0
1
2
4

2.break
break文は、for文やwhile文のブロック処理中に使用します。break文を使用すると、それ以降の処理を行わず、for文やwhile文の繰り返し処理自体が終了します。

for x in range(5):
    if x == 3:
        break
    print(x)

実行結果
0
1
2

◇Try, Except構文

x = 1
y = 0

try:
    z = x / y

except: ♯ 例外が発生した場合の処理
    print('例外発生!ゼロで割ることはできません')

else: ♯ 例外が発生しなかった場合に行う処理
    print('例外は発生しませんでした。')

finally: #例外の発生の有無にかかわらない処理。
    print('実行が終了しました')

◇pass文とcontinue文の違い

whileやforのループで使われるcontinue文はそれ以降の処理を行わずに次のステップに進む。したがって、continue文のあとに記述された処理は実行されない。
for i in range(3):
    print(i)
    if i == 1:
        continue
        print('CONTINUE')
# 0
# 1
# 2

source: pass_continue.py
一方、pass文は何もしないのでpass文のあとに記述された処理が続けて実行される。
for i in range(3):
    print(i)
    if i == 1:
        pass
        print('PASS')
# 0
# 1
# PASS

0 件のコメント:

コメントを投稿