Visual Studio 2019でPythonを使う場合の基本的な書き方についてまとめていきます。
普段からVisualC、PHP、JavaScriptなど複数言語を使っているとたまにこんがらがってよくわからなくなるので、ここでは関数の書き方やコメントアウトなどを中心に書いておきます。
ただVisual Studio版でもあっても、PythonはPythonなので書き方は一緒です。
基本的な書き方
変数を書く
Visual Cなどと違って、変数の種類を指定しなくてもすぐ使えます。
temp=1
tempword="1"
数字から文字にするにはStr関数を使います。
tempword = str(temp)
文字から数字にするにはint関数を使います。float関数もあります。
tempword = "11"
temp = int(tempword)
どんな型の変数化調べるにはtype関数を使います。
dat = "<div>oswwsk</div><div>ossk</div>"
print("type=" + str(type(dat)))
出力
print文で文字を表示できます。
print('hi')
配列もそのままprint文で使えます。
dat = ["a","b","c"]
print(dat)
変数がある場合には整数は%d, 文字列は%sなどを使って文を作ります。
a = 10
print('A:%d' % a)
複数の変数を使って1文作る場合は以下のようになります。
b = 11
c = "12"
print('b:%d,c:%d' % (b,c))
「+」で変数を連結できますが、数値の場合は「str」関数で文字扱いに一度直しましょう。
b = 11
c = "12"
print('b=' + str(b) + ',c=' + c)
コメントアウト
1行まるまるコメントアウトするには文頭に#をつけます。
#print('temp:%d' % tempdata)
複数行コメントアウトするには、コメントアウトしたいブロックを「'''」または「"""」で囲みます。
Visual Studioのエディターでは、コメントアウトした個所は「-」ボタンを押すことで隠せるので使いやすいです。
実際にやってみると以下のようになります。再表示させるには「+」を押してください。
IF文
PythonはIF文は{}でくくらなくても利用できます。「:」をIFやelseの行末におき、処理の部分は文頭を下げて書きます。
temp = 2
if((temp % 2) == 0):
print('偶数')
else:
print('奇数')
ループ文
こちらにまとめました。
【Visual Studio 2019】Pythonの書き方 ループ文、ループ中のウェイトやゲージ表示 - 困ったー
try文
ptyhonでも「try~except」という記述が利用できます。
try文を使うとエラーが出た場合の対処を記述できるようになります。
try:
mycell = pd.read_excel(myfile,sheet_name="Sheet1")
mycell.info()
except Exception as e:
print(e)
関数を書く
関数をつくる
関数は以下のように「def」を使って書くことができます。
returnを使って処理後の値を返すことができます。
def test(x,y):
return x+y
PHPなどでは下に書いてもいいのですが、Pythonだと駄目なようです。
先に関数の定義をしておいてから、利用しましょう。
def test(x,y):
return x+yval = test(1,2)
print('答え:%d' % val)
グローバル変数
関数を使う場合、グローバル変数の扱いについて知っておかないとイメージ通りの措置になりません。
関数内でも関数外の変数名を使うと参照はできます。以下の結果は「答え10」となります。
def test(x,y):
return tempdata + x + ytempdata = 10
val = test(1,2)
print('答え:%d' % val)
ただし関数内で代入してもグローバル変数には反映されていません。以下の場合関数内で「tempdata」を書き換えていますが、その後のprintでは元の数字が出力されます。
def test(x,y):
tempdata=1
return tempdata + x + ytempdata = 10
val = test(1,2)
print('答え:%d' % val)
print('temp:%d' % tempdata)
関数外の変数を関数内で書き換える場合、関数内でglobalをつけて宣言しておきます。
def test(x,y):
global tempdata
tempdata=1
return tempdata + x + ytempdata = 10
val = test(1,2)
print('答え:%d' % val)
print('temp:%d' % tempdata)
ループ文の書き方
forでカウント
ループ文はrange関数を使って書くと書きやすいです。
以下は1~10までの処理を実行させます。
for i in range(1, 11):
print(i)
PHPなどの場合は通常以下のように書きます。
for(i=1;i<11;i++){
print(i);
}
配列から取得
配列から値を取り出すには以下のように書くことができます。
Teams = ['softbank', 'lotte', 'rakuten']
for name in Teams:
print(name)
ループから抜ける
ほかの言語同様に「break」コマンドで抜けます。
PHPのdieのように、プログラム自体を止めるには「sys」モジュールで「exit」コマンドを実行します。
import sys
sys.exit()
ループ中の処理TIPS
ウェイトをかける
スクレイピングではループをガンガン回すとサーバに負荷をかけまくりになってしまいます。
ループ文を使った場合でも適宜処理を停止させるには「sleep」をはさませます。「time」モジュールをimportしておていから「sleep」で秒数を指定します。
import time
time.sleep(秒数)
以下のように書くと、ちょっと間をおいてから(0.5秒)配列の内容を表示します。
Teams = ['softbank', 'lotte', 'rakuten']
for name in Teams:
print(name)
time.sleep(0.5)
ゲージを表示する
ループを実行中に画面に何も出ないと、フリーズなのか動作しているかわかりません。
そこで処理がどのぐらい進んでいるかゲージ表示してあげるとわかりやすいです。
便利なモジュール「tqdm」がありますので先に「pip install tqdm」でインストールしておきましょう。
Visual Studioでのpipインストール方法は以下参照ください。
【Visual Studio 2019】Pythonの始め方 インストールは?PIPは? - 困ったー
以下のように書くと...
from tqdm import tqdm
for i in tqdm(range(1000000)):
pass
ゲージが表示されます。簡単で便利です。