python学習 1時間(累計3時間)

リスト

>>> l = [1, 20, 4, 50, 2, 1, 2]
>>> l
[1, 20, 4, 50, 2, 1, 2]

---指定位置の出力

>>> l[0]
1

>>> l[1]
20
>>> l[-1]
2
>>> l[-2]
1
>>> l[0:2]
[1, 20]
>>> l[:2]
[1, 20]
>>> l[2:5]
[4, 50, 2]
>>> l[2:]
[4, 50, 2, 1, 2]
>>> l[:]
[1, 20, 4, 50, 2, 1, 2]

---len()で配列内のデータ数

>>> len(l)
7

---データ数はlist型
>>> type(l)
<class 'list'>

---()で入れることで文字列も入れれる
>>> list('abcdefg')
['a', 'b', 'c', 'd', 'e', 'f', 'g']

---データのないところを指定するとエラー
>>> l[100]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range

 


>>> n = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> n
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

---1個飛ばしで出力

>>> n[::2]
[1, 3, 5, 7, 9]

---末尾から出力
>>> n[::-1]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
>>> n[::]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

 

---ネスト

>>> a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]
>>> x[0]
['a', 'b', 'c']
>>> x[1]
[1, 2, 3]
>>> x[0][1]
'b'
>>> x[1][2]
3

 

 

リストの操作

---文字列操作(基本的には数字と一緒)
>>> s = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> s
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> s[0]
'a'

--- 文字列置き換え
>>> s[0] = 'X'
>>> s
['X', 'b', 'c', 'd', 'e', 'f', 'g']
>>> s[2:5]
['c', 'd', 'e']

--- 範囲を指定して置き換え
>>> s[2:5] = ['C', 'D', 'E']
>>> s
['X', 'b', 'C', 'D', 'E', 'f', 'g']

--- 範囲を指定して削除
>>> s[2:5] =
>>> s
['X', 'b', 'f', 'g']
>>> s[:]
['X', 'b', 'f', 'g']
>>> s[2:5] =

>>> s
['X', 'b']

--- 配列内全削除
>>> s[:] =
>>> s

>>> n = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> n
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

--- .append()メソッドで配列の末尾に追加
>>> n.append(100)
>>> n
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100]

--- .insert()メソッドで挿入位置を指定することで文字列を任意の箇所に追加が可能
>>> n.insert(0,200)

---.pop()で末尾のデータを取り出す
>>> n.pop()
100
>>> n
[200, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

--- 引数の指定で任意の箇所からデータの取得が可能
>>> n.pop(0)
200
>>> n
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

--- del を使えばデータの削除が可能
>>> del n[0]
>>> n
[2, 3, 4, 5, 6, 7, 8, 9, 10]

 

---注意が必要なのはdel は強力なので配列自体を削除可能
>>> del n

--- nは宣言されてないよエラー
>>> n
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'n' is not defined

--- 任意の文字、数字を削除する.remove()メソッド
>>> n = [1, 2, 2, 2, 3]
>>> n.remove(2)
>>> n
[1, 2, 2, 3]
>>> n.remove(2)
>>> n.remove(2)
>>> n
[1, 3]

---消せるものがなくなったらエラー
>>> n.remove(2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list

 

--- 配列のデータ結合
>>> a = [1, 2, 3, 4, 5]
>>> b = [6, 7, 8, 9, 10]
>>> a
[1, 2, 3, 4, 5]
>>> b
[6, 7, 8, 9, 10]
>>> x = a + b
>>> x
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> a
[1, 2, 3, 4, 5]
>>> b
[6, 7, 8, 9, 10]

 

--- += をすることで配列の末尾に追加ができる
>>> a += b
>>> a
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> x = [1, 2, 3, 4, 5]
>>> y = [6, 7, 8, 9, 10]

--- extend()メソッドを使えばさらにシンプルに(覚えていこう)
>>> x.extend(y)
>>> x
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

 

リストのメソッド

r = [1, 2, 3, 4, 5, 1, 2, 3]
#なんばん目に任意の数値があるか
print(r.index(3))
#第2引数に番号を入れることでその箇所から検索を開始
print(r.index(3, 3))

#配列内の数値の個数検索
print(r.count(3))

#リストを使えばif 文での判定できる
if 3 in r:
print('exist')

#リストのそーと
r.sort()
print(r)
#降順
r.sort(reverse=True)
print(r)
#ソート順逆にする方法2
r.reverse()
print(r)

s = 'My name is Tanaka.'
#split を使うことで、指定した文字で区切って配列に入れてくれる
to_split = s.split(' ')
print(to_split)

#join を使うことで配列を文字列に戻すことも可
x = ' ##### '.join(to_split)
print(x)

#helpでメソッド見ようね
print(help(list))

 

リストのコピー

※リストは参照渡しだからデータをコピーするときは気をつけようね


i = [1, 2, 3, 4, 5]
#リストは参照渡しだからこんな風に代入すると出力した時に同じになるよ
j = i
j[0] = 100
print('j = ', j)
print('i = ', i)

x = [1, 2, 3, 4, 5]
#だからデータを代入するときはコピーメソッドを使おうね
y = x.copy()
#y = x[:] #みたいな書き方でもできるけど可読性的にはcopyの方が良さげ
y[0] = 100
print('x = ', x)
print('y = ', y)

#int とかは 値渡しだから特に問題なし
X = 20
Y = X
Y = 5
#id()を使うことでデータの格納箇所を確認可能
#ちなみに値私の場合は別の番地
print(id(X))
print(id(Y))
print(X)
print(Y)

#配列で参照渡しを確認できるよ同じ番地になってるよ
X = [ 'a', 'b']
Y = X
Y[0] = 'p'
print(id(X))
print(id(Y))
print(X)
print(Y)

python学習 2時間(累計2時間)

Udamyの学習

今日の範囲はsection2 python の基本まで

学習時間:21:00 ~ 22:58

感想:最初の方だからまだ簡単だった。

   動画を視聴→コードを写経&コメント入れるって感じだったから思ったより

   時間がかかった。

   普通に2時間とか時間がかかるからやばい。

   写経は今回の一回のみとして動画自体は3〜5回くらい

   見直したい。      

   ビデオ時間が28.5時間だから今月中8/31までに1回目は終わらせたいなぁ・・・

    

計算

足し算

>>> 2 + 2
4

 

掛け算
>>> 50 - 5 * 6
20

 

データ型の確認
>>> type(1)
<class 'int'>
>>> type(1.6)
<class 'float'>

 

.6ってかきかたでも0を保管してくれる
>>> .6
0.6

 

割り算 
>>> 17/3
5.666666666666667

 

割り算 整数部のみ
>>> 17 // 3
5

 

割り算あまり
>>> 17 % 3
2

 

掛け算
>>> 5 * 5
25

 

べき乗
>>> 5 ** 5
3125

変数に数値入れても大丈夫

>>> x = 5
>>> x
5
>>> y = 10
>>> x * y
50

 

宣言してない引数はエラー
>>> a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined

 

有効桁数
>>> pie = 3.1415151515151515151
>>> round(pie,2)
3.14

 

終了
>>> exit()

 

#math ライブラリインポート
import
math
result = math.sqrt(25)
print(result)

y = math.log2(10)
print(y)

print(help(math))

 

文字列

s = 'test'

#シングルクォーテーションもダブルクォーテーションも動作は同じ
print('hello')
print("hello")

#文字列中で' を使いたいときは"でやるみたいな
print("I don't know")
#バックスラッシュをつかって文字列の扱い色々
print('I don\'t kow')
print('say "I don\'t know"')
print("say \"I don't know\"")

#\nで改行
print('hello.\nHow arr you?')
#文中で\nを使いたい場合など文字列をそのまま利用したいときは r' のかたちでやる
print(r'C:\name\name')

#"""のような形で書くことで改行させることができる
#また、\を下記のように入れることで不要な空白の削除が可能
print("###############")
print("""\
line1
line2
line3\
""")
print("###############")

#文字列に も繰り返し表示できる
print('Hi.' * 3 + 'Mike.')

#連結も可能
print('Py' + 'thon')
print('Py''thon')

#文字列の管理
word = 'python'
#1文字目
print(word[0])
#2文字目
print(word[1])
#最後の1文字
print(word[-1])
#1〜3文字目
print(word[0:2])
#3〜6文字目
print(word[2:5])
print('###################')
#1〜3文字目
print(word[0:2])
#番号を書かないことで省略が可能
print(word[:2])
print('###################')
#末尾も同じく
print(word[2:])
print('###################')
#文字の置き換え
word = 'j' + word[1:]
print(word[:])
n = len(word)
print(n)

文字のメソッド

s = 'My name is Mike . Hi Mike.'
print(s)
#My から始まっているか判定
is_start = s.startswith('My')
print(is_start)
is_start = s.startswith('X')
print(is_start)

print('#######################')

#任意の文字列がどこから始まっているか
print(s.find('Mike'))
#任意の文字列がどこから始まっているか(末尾から検索
print(s.rfind('Mike'))
#文字列の個数
print(s.count('Mike'))
#文章先頭文字のみ大文字
print(s.capitalize())
#文章内の単語の先頭文字のみ大文字
print(s.title())
#文字列全て大文字
print(s.upper())
#文字列全て小文字
print(s.lower())
#任意の文字列置き換え
print(s.replace('Mike', 'Nancy'))

 

文字列の代入

---.format() で文字列内の{} に代入できる

>>> 'a is {}' .format('a')
'a is a'
>>> 'a is {}' .format('test')
'a is test'

--- 複数の文字列も可能

>>> 'a is {} {} {}' .format(1, 2, 3)
'a is 1 2 3'

--- 順番をつけることも

>>> 'a is {0} {1} {2}' .format(1, 2, 3,)
'a is 1 2 3'

---順番を入れ替えることも

>>> 'a is {2} {1} {0}' .format(1, 2, 3)
'a is 3 2 1'

---数字だけじゃない

>>> 'My name is {0} {1}' .format('Tanaka', 'Taro')
'My name is Tanaka Taro'
---引数を宣言すると読みやすい
>>> 'My name is {name} {family} .Watashi ha {family} {name}' .format(name = 'Tanaka', family = 'Taro')
'My name is Tanaka Taro .Watashi ha Taro Tanaka'

---数値

>>> 1
1

---文字列
>>> '1'
'1'

---str()を使うことで文字列に
>>> x = str(1)
>>> x
'1'
>>> type(x)
<class 'str'>

---不動小数点型だって文字列に

>>> str(3.14)
'3.14'

---boolean型だって文字列
>>> str(True)
'True'

 

学習記録1日目

Udemyに登録をしました。

90%offのセールを行っていたので、

 

www.udemy.com

www.udemy.com

www.udemy.com

 

上記3コースを購入

最初はpythonから学習中

本日は動画を見ながらpyCharmのインストールまで。

 

ソースコードとかも一個ずつ保管したいんだけどどうしたらいいんだろ・・・

githubに一個ずつついかしてここに貼り付ける感じがやりやすいかな?