背景を白黒にして、魚の色を変えたい
元画像

selectを使う
あああああああ、違う

あれ、変わってない!?

こうか?
select toolで色を反転

ムムム難しい

随机应变 ABCD: Always Be Coding and … : хороший
背景を白黒にして、魚の色を変えたい
元画像

selectを使う
あああああああ、違う

あれ、変わってない!?

こうか?
select toolで色を反転

ムムム難しい

SimpleHTTPServerをimportする。
[vagrant@localhost python]$ python
Python 2.7.14 (default, Mar 12 2018, 22:03:33)
[GCC 5.4.0 20160609] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import SimpleHTTPServer
>>> SimpleHTTPServer.test()
Serving HTTP on 0.0.0.0 port 8000 …
192.168.33.1 – – [21/Jul/2018 22:28:14] “GET / HTTP/1.1” 200 –
192.168.33.1 – – [21/Jul/2018 22:28:14] code 404, message File not found
192.168.33.1 – – [21/Jul/2018 22:28:14] “GET /favicon.ico HTTP/1.1” 404 –
192.168.33.1 – – [21/Jul/2018 22:28:18] “GET /app.py HTTP/1.1” 200 –
ん?どういうことだ?

class Yamanote: pass shinagawa = Yamanote() shinagawa.city = "Minato-ku" shinagawa.user = 370000 shinagawa.line = 24 shibuya = Yamanote() shibuya.city = "Shibuya-ku" shibuya.user = 3310000 shibuya.spot = "hachiko" print(shinagawa.city) print(shibuya.spot)
[vagrant@localhost python]$ python app.py
Minato-ku
hachiko
コンストラクタを使う。
class Yamanote:
def __init__(self, city):
self.city = city
shinagawa = Yamanote("Shinagawa-ku")
shibuya = Yamanote("Shibuya-ku")
print(shinagawa.city)
print(shibuya.city)
[vagrant@localhost python]$ python app.py
Shinagawa-ku
Shibuya-ku
クラス変数を呼び出す。
class Yamanote:
count = 0
def __init__(self, city):
Yamanote.count += 1
self.city = city
shinagawa = Yamanote("Shinagawa-ku")
shibuya = Yamanote("Shibuya-ku")
print(Yamanote.count)
ふむ。
[vagrant@localhost python]$ python app.py
2
メソッド
class Yamanote:
count = 0
def __init__(self, city):
Yamanote.count += 1
self.city = city
def announce(self):
print("This is " + self.city)
shinagawa = Yamanote("Shinagawa-ku")
shibuya = Yamanote("Shibuya-ku")
shinagawa.announce()
shibuya.announce()
わかるんだが、使っていかないと、慣れないね。
[vagrant@localhost python]$ python app.py
This is Shinagawa-ku
This is Shibuya-ku
@classmethod
class Yamanote:
count = 0
def __init__(self, city):
Yamanote.count += 1
self.city = city
def announce(self):
print("This is " + self.city)
@classmethod
def show_info(cls):
print(str(cls.count) + "instances")
shinagawa = Yamanote("Shinagawa-ku")
shibuya = Yamanote("Shibuya-ku")
Yamanote.show_info()
あああああ
[vagrant@localhost python]$ python app.py
2instances
class のprivate, public
class Yamanote:
def __init__(self, city):
self.__city = city
def announce(self):
print("This is " + self.__city)
shinagawa = Yamanote("Shinagawa-ku")
shibuya = Yamanote("Shibuya-ku")
print(shinagawa.__city)
[vagrant@localhost python]$ python app.py
Traceback (most recent call last):
File “app.py”, line 12, in
print(shinagawa.__city)
AttributeError: Yamanote instance has no attribute ‘__city’
ほえ~
継承のsuperがうまくいかない。
class Yamanote:
def __init__(self, spot):
self.spot = spot
def announce(self):
print("Enjoy " + self.spot)
class Startup(Yamanote):
def __init__(self, spot, company):
super().__init__(spot)
self.company = company
def hello(self):
print("What's up " + self.company)
harajyuku = Startup("takeshita","sm")
print(Harajyuku.spot)
Harajyuku.hello()
[vagrant@localhost python]$ python app.py
Traceback (most recent call last):
File “app.py”, line 16, in
harajyuku = Startup(“takeshita”,”sm”)
File “app.py”, line 11, in __init__
super().__init__(spot)
TypeError: super() takes at least 1 argument (0 given)
あ、python2系はエラーになるのね。。早くいってよ、もー
import math, random print(math.pi)
関数の中で変数を定義する。
def yurakucho_line(): dep = "nagatacho" arrive = "yurakucho" print(dep + " + " +arrive) yurakucho_line()
[vagrant@localhost python]$ python app.py
nagatacho + yurakucho
グローバルな変数
dep = "東京駅" def yurakucho_line(): dep = "永田町" arrive = "有楽町" print(dep + " → " +arrive) yurakucho_line() print(dep + "を出発しました。")
[vagrant@localhost python]$ python app.py
永田町 → 有楽町
東京駅を出発しました。
変数の中をコメントアウトする。
def yurakucho_line(): # dep = "永田町" arrive = "有楽町" print(dep + " → " +arrive) yurakucho_line() print(dep + "を出発しました。")
[vagrant@localhost python]$ python app.py
東京駅 → 有楽町
東京駅を出発しました。
defを使います。
coffee = raw_input("注文 ? ")
def cheer():
print("いらっしゃいませ。ご注文はお決まりでしょうか?")
def order():
print(coffee + "をお願いします。")
def thanks():
print(coffee + "ですね。少々お待ちくださいませ。")
cheer()
order()
thanks()
[vagrant@localhost python]$ python app.py
注文 ? orange
いらっしゃいませ。ご注文はお決まりでしょうか?
orangeをお願いします。
orangeですね。少々お待ちくださいませ。
引数を渡します。
def order(coffee):
print("いらっしゃいませ。ご注文はお決まりでしょうか?")
print(coffee + "をお願いします。")
print(coffee + "ですね。少々お待ちくださいませ。")
order("ブレンド")
order("カフェラテ")
order("カフェモカ")
ルノアールでも大体こんな感じ。
[vagrant@localhost python]$ python app.py
いらっしゃいませ。ご注文はお決まりでしょうか?
ブレンドをお願いします。
ブレンドですね。少々お待ちくださいませ。
いらっしゃいませ。ご注文はお決まりでしょうか?
カフェラテをお願いします。
カフェラテですね。少々お待ちくださいませ。
いらっしゃいませ。ご注文はお決まりでしょうか?
カフェモカをお願いします。
カフェモカですね。少々お待ちくださいませ。
引数を注文と支払金額にアレンジしてみます。
brend = 380
cafelate = 420
cafemoca = 480
def order(coffee, money):
print("いらっしゃいませ。ご注文はお決まりでしょうか?")
print(coffee + "をお願いします。")
print(coffee + "ですね。少々お待ちくださいませ。")
if coffee == "ブレンド":
print(str(brend) + "円になります。")
print(str(money) + "円でお願いします。")
print(str(money - brend) + "円のお返しになります。ありがとうございました。")
elif coffee == "カフェラテ":
print(str(cafelate) + "円になります。")
print(str(money) + "円でお願いします。")
print(str(money - brend) + "円のお返しになります。ありがとうございました。")
elif coffee == "カフェモカ":
print(str(cafemoca) + "円になります")
print(str(money) + "円でお願いします。")
print(str(money - brend) + "円のお返しになります。ありがとうございました。")
else:
print("申し訳ございません。" + coffee + "は当店にはございません。")
order("ブレンド", 500)
order("カフェラテ", 1000)
order("カフェモカ", 10000)
order("ブルーマウンテン", 1000)
やる気のない定員は大体こんなワンパターン。
[vagrant@localhost python]$ python app.py
いらっしゃいませ。ご注文はお決まりでしょうか?
ブレンドをお願いします。
ブレンドですね。少々お待ちくださいませ。
380円になります。
500円でお願いします。
120円のお返しになります。ありがとうございました。
いらっしゃいませ。ご注文はお決まりでしょうか?
カフェラテをお願いします。
カフェラテですね。少々お待ちくださいませ。
420円になります。
1000円でお願いします。
620円のお返しになります。ありがとうございました。
いらっしゃいませ。ご注文はお決まりでしょうか?
カフェモカをお願いします。
カフェモカですね。少々お待ちくださいませ。
480円になります
10000円でお願いします。
9620円のお返しになります。ありがとうございました。
いらっしゃいませ。ご注文はお決まりでしょうか?
ブルーマウンテンをお願いします。
ブルーマウンテンですね。少々お待ちくださいませ。
申し訳ございません。ブルーマウンテンは当店にはございません。
関数はreturnして値を返すこともできる。PassはNoneです。
def deeplearning(): return "DNN, CNN, RNN" def conputerVision(): return "画像認識" msg = deeplearning() print(msg)
[vagrant@localhost python]$ python app.py
DNN, CNN, RNN
printする際に、iをstr(i)としないと、 cannot concatenate ‘str’ and ‘int’ objectsとエラーになる。
list = ["井山裕太","許家元","一力遼","山下敬吾","余正麒"]
j = 0
for i in range(5, 0, -1):
print("第" + str(i) + "位:" + list[j])
j += 1
[vagrant@localhost python]$ python app.py
第5位:井山裕太
第4位:許家元
第3位:一力遼
第2位:山下敬吾
第1位:余正麒
途中にif文を差し込むと
j = 0
for i in range(5, 0, -1):
print("第" + str(i) + "位:" + list[j])
if i == 2:
print("ざわざわ")
j += 1
[vagrant@localhost python]$ python app.py
第5位:井山裕太
第4位:許家元
第3位:一力遼
第2位:山下敬吾
ざわざわ
第1位:余正麒
j = 0
for i in range(5, 0, -1):
if i == 2:
print("ざわざわ")
continue
print("第" + str(i) + "位:" + list[j])
j += 1
スキップされます
[vagrant@localhost python]$ python app.py
第5位:井山裕太
第4位:許家元
第3位:一力遼
ざわざわ
第1位:山下敬吾
配列を使ってwhile文
# coding: utf-8
list = ["王将","飛車","角行","金将","銀将","桂馬","香車","歩兵"]
num = len(list)
i = 0
while i < num:
print(list[i])
i += 1
else:
print("end")
[vagrant@localhost python]$ python app.py
王将
飛車
角行
金将
銀将
桂馬
香車
歩兵
end
while文の途中でbreakを入れる場合は
i = 0
while i < num:
if list[i] == "桂馬":
print("あとは雑魚")
break
print(list[i])
i += 1
else:
print("end")
なるほど
[vagrant@localhost python]$ python app.py
王将
飛車
角行
金将
銀将
あとは雑魚
range
以下のように書くと、10 9 8 .. 2 1 0となるかと思ったが、何も表示されない。rangeは足す時だけのようね。
for i in range(10, 0): print(i)
for i in range(0, 10): print(i)
あーはいはい、こういうことね。そりゃ出来ない訳ないよね♪
for i in range(10, 0, -1): print(i)
[vagrant@localhost python]$ python app.py
10
9
8
7
6
5
4
3
2
1
pythonのif文を麻雀の役の計算で書いてみる。
chair = "parent"
yaku = int(input("yaku ? "))
if yaku == 1:
print("lon, 2000")
elif yaku == 2:
print("lon, 3900")
elif yaku == 3:
print("lon, 7700")
elif yaku < 6:
print("mangan, 12000")
elif yaku < 8:
print("haneman, 18000")
elif yaku < 11:
print("baiman, 24000")
elif yaku < 13:
print("sanbaiman, 36000")
else:
print("48000, shuryodesu")
[/python]
[vagrant@localhost python]$ python app.py
yaku ? 6
haneman, 18000
yaku ? 24
48000, shuryodesu
ifを入れ子にする場合。インデントでずらす。
[python]
chair = "child"
yaku = int(input("yaku ? "))
if chair == "parent":
if yaku == 1:
print("lon, 2000")
elif yaku == 2:
print("lon, 3900")
elif yaku == 3:
print("lon, 7700")
elif yaku < 6:
print("mangan, 12000")
elif yaku < 8:
print("haneman, 18000")
elif yaku < 11:
print("baiman, 24000")
elif yaku < 13:
print("sanbaiman, 36000")
else:
print("48000, shuryodesu")
elif chair == "child":
if yaku == 1:
print("lon, 1500")
elif yaku == 2:
print("lon, 2900")
elif yaku == 3:
print("lon, 5800")
elif yaku < 6:
print("mangan, 8000")
elif yaku < 8:
print("haneman, 12000")
elif yaku < 11:
print("baiman, 18000")
elif yaku < 13:
print("sanbaiman, 24000")
else:
print("36000, shuryodesu")
else:
print("see you again")
[/python]
[vagrant@localhost python]$ python app.py
yaku ? 4
mangan, 8000
Yes sir!
改行せずに1行で書くこともできる。
[python]
chair = "child"
yaku = int(input("yaku ? "))
print("tobimashita" if yaku > 4 else "I'm winner")
while文
i = 1
while i < 29:
print("2月{0}日".format(i))
i += 1
[/python]
# coding: utf-8
name = "Gennadiy"
skill = "3D modeling"
location = "West Hollywood, Russia"
print("name: %s, skill: %s, location: %s" % (name, skill, location))
[vagrant@localhost python]$ python app.py
name: Gennadiy, skill: 3D modeling, location: West Hollywood, Russia
この記法は、mysqlのset valueみたいですね。変数をstringからnumberに変えます。
# coding: utf-8
name = "Gennadiy"
skill = "3D modeling"
age = 18
print("name: %s, skill: %s, age: %d" % (name, skill, age))
[vagrant@localhost python]$ python app.py
name: Gennadiy, skill: 3D modeling, age: 18
%f はfloatになるので、コンパイルエラーになります。
Traceback (most recent call last):
File “app.py”, line 6, in
print(“name: %s, skill: %s, age: %f” % (name, skill, age))
TypeError: float argument required, not str
型指定しない記法もある。
print("name: {0}, skill: {1}, age: {2}".format(name, skill, age))
# coding: utf-8 x = 598 print(x / 3)
[vagrant@localhost python]$ python app.py
199
print(True and False)
プログラミングの基礎やるとき、いつも思うんだが、これ何でFalseになるかね?
[vagrant@localhost python]$ python app.py
False
TrueとFalseなら、TrueFalseでいいと思うんだが。
美女 and 野獣 => 美女と野獣 でしょ。
美女 and 野獣 => 野獣 でもあながち間違いではないが。 あ、例がまずかった。
print("Data Scraping" + " +S\n")
print("Data Science" + " +A\n")
改行コードいれなくても勝手に改行されますね。この辺は、phpと違うようです。
[vagrant@localhost python]$ python app.py
Data Scraping +S
Data Science +A