パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

エイプリルフール企画 一日でPythonマスターできるよ

2021-04-01 | プログラムをマスター計画2021

一日でPythonマスターできる資料を作る計画


いろんな情報をみて少しずつ吸収するのがいいかも


キーボード打てますか?

簡単な記号の説明

" 文字列を囲む
() 計算の優先順位を変える タプルの囲い
= 変数に値をいれる 右のものを左に
== 比較する 同じなら True 違えば False
[] リストの値を囲む リストの位置を指定する リストの範囲をさらに:を使って指定する(スライス)
: 命令を束ねる(インデントが後ろのもの)
+= 左の変数に右の値を追加する
{} 辞書を登録する
< > <= >= 比較する あっていれば True 違えば False
# 同じ行の#以後はコメント
+ - * / 足す 引く かける 割る

 

環境の構築

ブラウザでcolabolatoryを検索して入る
+コードでプログラムのできる枠を追加する
プログラムを書く
print("こんにちは")
実行する

 

printというあらかじめ作られた関数に
こんにちはという文字列を送る

print ()内のものを表示する , で区切って複数も可能


変数

プログラムでは変数というものを使って、
文字列や数値を簡単なアルファベットの記号に置き換えて使います
データを簡単にするためのものです

Pythonでは
文字型
数値型
少数型
リスト型
タプル型
辞書型
集合型などがあります

 

文字型

aiueo = "あいうえお" #定義
aiueoka = aiueo + "か" #追加
print(aiueo[0]) #文字列の先頭
print(aiueo[-1]) #文字列の最後


数値型
n = 5
n2 = n * 2

少数型
n = 5.1
n2 = n * 2 #コンピュータで少数の計算は誤差が出やすいです

リスト型
[]でくくって , で分割
いろんな変数をいくつも持てます
list1 = [1,2,3,4,5]
list2 = [1,"2",3.0,[4,5]] 

list2 = [1,"2",3.0,[4,5]] #4/1 1:00時点
print(list2[3])
list2 += [6] #追加 
del list2[0] #削除


タプル型
()でくくって , で分割
いろんな変数をいくつも持てます
まとめ役 リストと使い分けると見やすくなります
t1 = (1,2,3)
t1 += (4,) #追加


辞書型
いろんな変数をいくつも持て、keyをつけて高速で検索できます
同じkeyはありません
d1 = dict()
d1["k1"]="key1" #追加
d1[5]="five"
print(d1[5])


集合型
{} でくくって ,で分割
いろんな変数をいくつも持てます。ただし同じ値を複数は持てません
circle = {"太郎","二郎","花子"}
print("花子" in circle)


プログラムとは
データを演算、検索するもの 面倒な計算を簡単にするもの

コンピュータとは
入力して出力するもの

Pythonとは
データの自由度が高く 命令が簡潔 

Pythonは遅いと言われている
どれぐらい遅いかというと

10000人に3桁の数字を二つ思い浮かべてもらう
それをかけ合わせた結果を太郎くんが全て足すという計算を

google Colaboratoryでやってもらうとこんな感じで遅い。だいたい0.038秒 たしかに遅い

これを全人類で80億人分やってもらうと8時間半 まあ遅い

このプログラムを解説すると


1 乱数つかうよ
2 時計つかうよ
3 stに今を入れるよ
4 bに0を入れるよ
5 10000回 6,7行を回すよ
6 aに100から999までの数字を2つかけて入れるよ
7 bに今計算したaを足すよ
8 bの値を表示するよ
9 今からstを引いた時間を表示するよ
である

これをそれっぽくいうと
1 randomライブラリのインポート
2 timeライブラリのインポート
3 変数stに現在時刻を設定
4 変数bを0で初期化
5 ループ 添字はiで 0から9999まで
6  乱数100から999までの範囲をかけてaに代入
7  bにaを加算
8 bの表示
9 現在時刻と変数stの差分の表示 

こんな感じでしょうか #4/1 7:45時点

 

ここからのソースリストはここに置いてます

https://colab.research.google.com/drive/1jX90zf_ugZ86QY2Mz7UclJnT3K9kQSkt?usp=sharing

 

リストとループと再帰関数

sumという関数でリストの合計は簡単に求められます
それをループと再帰関数求めて見た例です。

 


len count を作ってみる

lenは文字列の長さ、リストの数を求めてくれます
countは文字列に含まれている数、リストに含まれている数を求めてくれます

 


ソート

多分いちばん遅い力技ソート(正しい結果になると保証もできない)と
多分一番速いソートの例です

 


置換

文字列の置換はよく行われます。
成型例と
自作で関数を作ってみます。

 


関数
replaceAllとfindを自前で作ってみます

 

クラス

使わなくても大抵のことできます。

ちなみに私の作ったアタリ碁のプログラムずっと世界2位ですが
クラス使ってないです。
こんなのが850行ほど

久しぶりに順位みたら1位になってました^^ /

 

スライス

こっそり使ってました
文字列やリストの抽出ができます

#4/1 17:04時点


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。