◇for 構文
◆書式1for 要素(取り出した要素を格納する変数) 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 n 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 件のコメント:
コメントを投稿