Pythonの階段を上る道-3
27551 ワード
11、フロー制御のforループpythonのforループ文は、あるシーケンスオブジェクト(メタグループ、リスト、辞書など)を巡回することによってループを構築し、ループ終了の条件は、オブジェクトを巡回して(1)構文構造を完成することである
(2)例:出力1-10
(3)、for...else文forループのelse文は比較的特殊であり、ここでのelse文はループが正常に終了したときにのみ実行される.すなわち、forループが実行中に中断され、例えばbreakを介してループ全体が飛び出した場合、else文は実行されません.
12、データ型初期(1)、整数(int)、およびロング整数(long int)(2)浮動小数点型(float)(3)ブール値(bool)(4)文字列:'Hello World'、'Hello World'の文字列の共通機能:<1>空白の除去<2>分割<3>長さ<4>インデックス<5>スライス(5)、リスト作成リスト:
基本操作「添削改査」、ソート、アイデンティティ判断<1>nameを増やすlist.append(「XXX」):リストname_リストの最後に追加された文字列「XXX」name_list.insert(index,“XXX”):リストname_listにindexと表記された文字列「XXX」name_list.extend拡張<2>削除name_list.remove(「XXX」):リストname_を削除リストの「XXX」name_list.pop(index):リストnameを削除リストの下にはindexの「XXX」del name_list,del a[index] name_list.clear():リストnameをクリア_List<3>改name_List[index]="XXX":リスト名を変更_リストにindexと表記されている内容は「XXX」name_List[start:end]=[a,b,c]:変更リストにある下付き[start:end]の内容は「a」、「b」、「c」です.<4>インデックス(下付き)を調べると、いずれも0からスライスする.countはある要素が現れる回数を検索する.indexは、コンテンツに基づいて対応する位置「HYQ」in name_を見つけるリストは、文字列がリスト「name_list」にあるかどうかを判断する<5>name_をソートするlist.sort():リスト内の要素はASCIIコードの順序でname_を並べ替えます.list.reserse():リストの要素が後ろから順に出力<6>アイデンティティ判定type(name_list)is list:判定name_リストがリストの基本操作の例であるかどうか:
(6)メタグループはリストと大きく異なり,<1>メタグループの要素は修正できない.2>タプルの作成には括弧、リストには角括弧のタプルの作成
メタグループの操作では、要素を変更できない以外はリストと同じです.(7)辞書は「キー値対(key-value)」によってデータを格納し、フォーマットは以下の通りである.
注意:<1>キーは一意でなければなりませんが、値は必要ありません.つまり、値は任意のデータ型をとることができますが、文字列、数値、メタグループなどのキーは可変でなければなりません.<2>辞書は無秩序な辞書の操作
(8)集合<1>集合(set):異なる要素を組み合わせて集合を形成する.あるいは,集合は無秩序で,重複しないデータの組合せである.Pythonのベースデータ型です.集合オブジェクトは、ソートされていないハッシュ可能な値のセットです.集合メンバーは辞書のキーとして使用できます.注意:ハッシュ可能なオブジェクトは、辞書のキーとsetのパラメータとして使用できます.Pythonでは、文字列、メタグループなど、変更できないすべてのオブジェクトがハッシュ可能です.辞書、リスト、数字などの変更可能なコンテナはハッシュできません.<2>集合の主な役割:・脱重・関係テスト:2組のデータの交差、差セット、並列セットなどの関係をテストします.<3>コレクションの作成
<4>コレクションへのアクセスは、コレクション自体が無秩序であるため、コレクションにインデックスまたはスライス操作を作成することはできず、in、not inをループまたは使用してコレクション要素にアクセスまたは判断するしかない
<5>集合の増加、削除、更新
<6>集合の関係テスト
for in :
1
2
...
(2)例:出力1-10
num = 1
for i in range(10):
print(num,end='\t')
num +=1
'''
1 2 3 4 5 6 7 8 9 10
'''
(3)、for...else文forループのelse文は比較的特殊であり、ここでのelse文はループが正常に終了したときにのみ実行される.すなわち、forループが実行中に中断され、例えばbreakを介してループ全体が飛び出した場合、else文は実行されません.
num = 1
for i in range(10):
print(num,end='\t')
num +=1
else:
print()
print("Edited by Damon")
#-------------------------------------------
counter = 1
for i in range(10):
print(counter, end='\t')
counter += 1
if counter == 5:
break#
else:
print("Edited by Damon")
'''
1 2 3 4 5 6 7 8 9 10
Edited by Damon
1 2 3 4
'''
12、データ型初期(1)、整数(int)、およびロング整数(long int)(2)浮動小数点型(float)(3)ブール値(bool)(4)文字列:'Hello World'、'Hello World'の文字列の共通機能:<1>空白の除去<2>分割<3>長さ<4>インデックス<5>スライス(5)、リスト作成リスト:
name_list = ['Damon','HYQ','Damon24']
基本操作「添削改査」、ソート、アイデンティティ判断<1>nameを増やすlist.append(「XXX」):リストname_リストの最後に追加された文字列「XXX」name_list.insert(index,“XXX”):リストname_listにindexと表記された文字列「XXX」name_list.extend拡張<2>削除name_list.remove(「XXX」):リストname_を削除リストの「XXX」name_list.pop(index):リストnameを削除リストの下にはindexの「XXX」del name_list,del a[index] name_list.clear():リストnameをクリア_List<3>改name_List[index]="XXX":リスト名を変更_リストにindexと表記されている内容は「XXX」name_List[start:end]=[a,b,c]:変更リストにある下付き[start:end]の内容は「a」、「b」、「c」です.<4>インデックス(下付き)を調べると、いずれも0からスライスする.countはある要素が現れる回数を検索する.indexは、コンテンツに基づいて対応する位置「HYQ」in name_を見つけるリストは、文字列がリスト「name_list」にあるかどうかを判断する<5>name_をソートするlist.sort():リスト内の要素はASCIIコードの順序でname_を並べ替えます.list.reserse():リストの要素が後ろから順に出力<6>アイデンティティ判定type(name_list)is list:判定name_リストがリストの基本操作の例であるかどうか:
#___Author: Damon
#___Date: 2017/8/8
#
a = ["hyq","Damon","Hyq","JR"]
a_list = ['hyq','Damon','Hyq','JR']
##
print (a[0])# ,
#
print(a[0:-1])# , ['hyq', 'Damon', 'Hyq']
print(a[::])# , ['hyq', 'Damon', 'Hyq', 'JR']
print(a[0::2])# , ( 2)
print(a[::-1])# , ['JR', 'Hyq', 'Damon', 'hyq']
t = a.count("hyq")# “hyq” a
print("t=",t)
print(a.index("hyq"))# “hyq” a ( )
#print(a.index("hyq","JR"))
print("Damon24" in a)# “Damon24” a
print("Damon" in a)# “Damon” a
##
a.append("Damon24")# a , “Damon24”
print(a)#['hyq', 'Damon', 'Hyq', 'JR', 'Damon24']
a.insert(3,"LJR")# a 3 , “LJR”
print(a)#'hyq', 'Damon', 'Hyq', 'LJR', 'JR', 'Damon24']
a.extend("HYQ")
print(a)#['hyq', 'Damon', 'Hyq', 'LJR', 'JR', 'Damon24', 'H', 'Y', 'Q']
b_list = ["HYQ"]
a_list.extend(b_list)
print(a_list)#['hyq', 'Damon', 'Hyq', 'JR', 'HYQ']
##
a[1]= "Python"# a a[1](“Damon”) “Python”
print(a)#['hyq', 'Python', 'Hyq', 'LJR', 'JR', 'Damon24', 'H', 'Y', 'Q']
a[0:3] = ["I","am,","studying","Python"]
print(a)#['I', 'am,', 'studying', 'Python', 'LJR', 'JR', 'Damon24', 'H', 'Y', 'Q']
##
a.remove('H')# a 'H'
print(a)#['I', 'am,', 'studying', 'Python', 'LJR', 'JR', 'Damon24', 'Y', 'Q']
a.pop(7)
print(a)#['I', 'am,', 'studying', 'Python', 'LJR', 'JR', 'Damon24', 'Q']
del a[7]
print(a)#['I', 'am,', 'studying', 'Python', 'LJR', 'JR', 'Damon24']
#a.clear()
print(a)
##
a.sort()# ASCII
print(a)# ['Damon24', 'I', 'JR', 'LJR', 'Python', 'am,', 'studying']
a.reverse()# a
print(a)#['studying', 'am,', 'Python', 'LJR', 'JR', 'I', 'Damon24']
## a
print(type(a) is list)#True
(6)メタグループはリストと大きく異なり,<1>メタグループの要素は修正できない.2>タプルの作成には括弧、リストには角括弧のタプルの作成
tup1 = ('hyq','Damon','JR')
#
tup1 = ()
# ,
tup1 = ('hyq',)
メタグループの操作では、要素を変更できない以外はリストと同じです.(7)辞書は「キー値対(key-value)」によってデータを格納し、フォーマットは以下の通りである.
dic = {key1:value1,key2:value2}
注意:<1>キーは一意でなければなりませんが、値は必要ありません.つまり、値は任意のデータ型をとることができますが、文字列、数値、メタグループなどのキーは可変でなければなりません.<2>辞書は無秩序な辞書の操作
# = {"key":"value"},
dic1 = {"name":"HYQ","age":"25","sex":"male"}
print(dic1)#{'name': 'HYQ', 'age': '25', 'sex': 'male'}
#
dic1 = {"name":"HYQ"}
dic1['age'] = 25
print(dic1)#{'age': 25, 'name': 'HYQ'}
dic1.setdefault("age",26)# , ,
print(dic1)#{'name': 'HYQ', 'age': 25}
dic1.setdefault('sex','male')# , ,
print(dic1)#{'age': 25, 'sex': 'male', 'name': 'HYQ'}
##--------------------------------------------------------------------
#
dic2 ={'age': 25, 'sex': 'male', 'name': 'HYQ'}
# dic2
print(dic2['age'])#25
# dic2
print(dic2.keys())#dict_keys(['name', 'sex', 'age'])
# dic2
print(dic2.values())#dict_values(['HYQ', 'male', 25])
# dic2
print(dic2.items())#dict_items([('name', 'HYQ'), ('sex', 'male'), ('age', 25)])
##-------------------------------------------------------------------------
#
dic3 = {'age': 25, 'sex': 'male', 'name': 'HYQ'}
# dic3
dic3['name'] = 'Damon'
print(dic3)#{'age': 25, 'name': 'Damon', 'sex': 'male'}
dic3_1 = {'1':'110','2':'120','name':'hyq'}
dic3.update(dic3_1)
print(dic3)#{'1': '110', 'age': 25, 'name': 'hyq', 'sex': 'male', '2': '120'}
print(dic3_1)#{'1': '110', 'name': 'hyq', '2': '120'}
##------------------------------------------------------------
#
dic4 = {'1': '110', 'age': 25, 'name': 'hyq', 'sex': 'male', '2': '120'}
# ,
del dic4['1']
print(dic4)#{'sex': 'male', '2': '120', 'name': 'hyq', 'age': 25}
# ,
ret = dic4.pop('2')
#
print(ret)#120
print(dic4)#{'name': 'hyq', 'sex': 'male', 'age': 25}
#
dic4 = dic4.popitem()
print(dic4)#('name', 'hyq')
#
#del dic4
#print(dic4)
#-------------------------------
##
dic5 = {
" ":{
' ':{' ',' ',' '},
' ':{' ',' ',' '},
' ':{' ',' ',' '},
},
" ":{
' ':{' ',' ',' '},
' ':{' ',' ',' '},
' ':{' ',' ',' '}
}
}
(8)集合<1>集合(set):異なる要素を組み合わせて集合を形成する.あるいは,集合は無秩序で,重複しないデータの組合せである.Pythonのベースデータ型です.集合オブジェクトは、ソートされていないハッシュ可能な値のセットです.集合メンバーは辞書のキーとして使用できます.注意:ハッシュ可能なオブジェクトは、辞書のキーとsetのパラメータとして使用できます.Pythonでは、文字列、メタグループなど、変更できないすべてのオブジェクトがハッシュ可能です.辞書、リスト、数字などの変更可能なコンテナはハッシュできません.<2>集合の主な役割:・脱重・関係テスト:2組のデータの交差、差セット、並列セットなどの関係をテストします.<3>コレクションの作成
# s = set(('Damon Huang',2,'HYQ'))
# s = set("Damon Huang")
# print(s,type(s))#{'u', 'a', 'm', ' ', 'o', 'n', 'D', 'g', 'H'} 'set'>
# s1 = list(s)
# print(s1,type(s1))
# li = [[1,2],'3','abc']# li ‘[1,2]’ ,
# s = set(li)#li ,li
# print(s)# :unhashable type: 'list'
# li = [1,2,'hyq']
# s = set (li)
# print(s)#{'1','2','hyq'}
<4>コレクションへのアクセスは、コレクション自体が無秩序であるため、コレクションにインデックスまたはスライス操作を作成することはできず、in、not inをループまたは使用してコレクション要素にアクセスまたは判断するしかない
li = [2,3,'hyq']
print(type(li))
s = set(li)
print(s)
print(2 in s)#True
print('hy' in s)#False
for i in s:
print(i)#hyq 2 3
<5>集合の増加、削除、更新
# li = [2,3,'hyq']
# s = set(li)
# #s.add('U')#
# #print(s)#{2, 3, 'hyq', 'U'}
# #s.add('uu')
# #print(s)#{'uu', 2, 3, 'hyq'}
# # s.update('opps')#
# # print(s)#{2, 3, 's', 'hyq', 'p', 'o'}
# s.update([12,'Damon'])
# print(s)#{2, 3, 12, 'hyq', 'Damon'}
# s.remove('hyq')#
# print(s)#{'Damon', 2, 3, 12}
# s.pop()
# print(s)#{3, 12, 'Damon'}
# # s.clear()
# # print(s)#set()
# del s
# print(s)#
<6>集合の関係テスト
# a = set([1,2,3,4,5,6])
# b = set([4,5,6,7,8])
# print(a.intersection(b))# {4, 5, 6}
# print(a & b)#{4, 5, 6}
# print(a.union(b))# {1, 2, 3, 4, 5, 6, 7, 8}
# print(a|b) #{1, 2, 3, 4, 5, 6, 7, 8}
#
# print(a.difference(b))#in a but not in b {1, 2, 3}
# print(a-b)#{1, 2, 3}
# print(b-a)#{8, 7}
# ( )
# print(a.symmetric_difference(b))# a ,b ,b a {1, 2, 3, 7, 8}
# print(a^b)#{1, 2, 3, 7, 8}
# ( )
#print(a.issuperset(b))#False
#
#print(a.issubset(b))#False