Introduction of Python

Tomoya Nakayama
Tomoya NakayamaSoftware Engineer
Introduction to Python



         2012/04/11
      Tomoya Nakayama
Agenda

Pythonって何?
とにかく使ってみよう
Pythonとの出会い

もともとPerl使い
技術書を何冊か読む
サンプルコードが結構な確率でPython
これはPython知らなきゃまずいな…
使ってみると意外とおもしろい!
これを機にPerlからPythonにシフトしよう!!


                             3
Pythonって何?




             4
Pythonの歴史

Guide van Rossum が開発
1991年 0.90公開
1994年 1.0リリース
2000年 2.0リリース
2008年 3.0リリース



                          Wikipedia
                       「グイド・ヴァンロッサ    5
                             ム」
Pythonの特徴

スクリプト言語(インタプリタ)
動的型付け
インデントが命
オブジェクト指向




                    6
Pythonのいいところ

幅広く使われている
可読性
 インデントが強制されているから
簡単
ライブラリが豊富




                     7
プログラミング言語ランキング

               Language               Ratings
     1        Java                    17.110%
     2        C                       17.087%
     3        C#                      8.244%
     4        C++                     8.047%
     5        Objective-C             7.737%
     6        PHP                     5.555%
     7        (Visual) Basic          4.369%
     8        JavaScript              3.386%
     9        Python                  3.291%
     10       Perl                    2.703%
 (出典) TIOBE Programming Community Index for March 2012
                                                         8
オープンソースでも

http://www.ohloh.net/languages/compare




                                         9
こんなところにPythonが




(出典) Wikipedia 「Pythonを使っている製品あるいはソフトウェア
 の一覧」                                      10
こんなところにも




Gmail
Google Groups
Google Maps
   (出典) Wikipedia 「Pythonを使っている製品あるいはソフトウェア
    の一覧」                                      11
ライブラリが豊富

標準ライブラリだけでも100種類以上
 ファイル操作(CSV, HTML, XMLなど)
 インターネット(HTTPなど)
 GUI
 単体テスト
 その他いろいろ…
 詳細はこちら
  http://www.python.jp/doc/release/library/index.html
標準以外にも数多くのパッケージ
                                                        12
使ってみよう




         13
まずはインストール

Windowsインストーラをダウンロードする
インストーラを実行する
おしまい




                         14
コマンドライン実行環境の起動

スタートメニューから「Python2.7」⇒「Python
 (command line)」
コマンドプロンプトのような対話式の実行環境が
 起動する




                                15
お決まりの…

print “Hello, Python.”




                         16
Pythonの特徴をもう一度

スクリプト言語(インタプリタ)
動的型付け
インデントが命
オブジェクト指向




                    17
動的型付け

変数の型は動的に変化する
 PerlとかPHPと同じ


 foo = “string”
 foo = 7




                    18
インデントが命

プログラムの階層はインデントで表現
次の2つの例では結果が異なる
 (1)   if score >= 80:
         print “Good!n”
         print “Your score is ” + str(score) + “n”

 (2)   if score >= 80:
         print “Good!n”
       print “Your score is ” + str(score) + “n”


                                                      19
C言語で書くと…

(1)   if (score >= 80) {
        printf(“Good!n”);
        printf(“Your score is %dn”, score);
      }


(2)   if (score >= 80) {
        printf(“Good!n”);
      }
      printf(“Your score is %dn”, score);



                                               20
制御構造:if

if score >= 80:
   Print “Good!”
elif score >= 60:
   Print “So, so.”
else:
   Print “No Good.”




                      21
制御構造:while

n = 0
while n < 10:
   print n
   n = n + 1




                     22
制御構造:for

Javaでいう拡張forループ
 array = [1, 2, 3, 4, 5]
 for n in array:
    print n




                           23
データ構造:リスト(1)

いわゆる「配列」
 array1 = [1, 2, 3, 4, 5]
 array2 = [1, 2, [3, 4], 5]
 array3 = [1, 2, “3”, “4”, 5]
 array4 = range(2, 6, 1)
いろんな参照方法
  array1[0]
  array1[1:3]
  array1[-2]
                                24
データ構造:リスト(2)

いろんな操作
 len(array1)
 array1.append(6)
 array3.remove(“3”)
 array1.reverse()




                      25
データ構造:タプル

リストと同じように使えるが、後から操作できな
 い

 tpl = (1, 2, 3, 4, 5)
 print tpl[0]
 tpl[0] = 10# これはNG




                         26
データ構造:辞書

キーと値のペア
dic1 = {'name': 'John', 'age': 25}
print dic1['name']

dic2 = {
   'john': {'name': 'John', 'age': 25},
   'bob': {'name': 'Bob', 'age': 20}
} # ネストもOK
print dic2['bob']['age']
                                          27
リスト内包表記

(1) array = [60, 92, 12, 54, 88]
    print len([n for n in array if n >=
     60])

(2) ax = [“x1”, “x2”, “x3”]
    ay = [“y1”, “y2”, “y3”]
    az = [“z1”, “z2”, “z3”]
    print [(x, y, z) for x in ax for y
     in ay for z in az]
                                          28
関数の定義

def my_double(x):
   return x * 2

num = my_double(5)




                     29
クラスの定義
class Derived(Base):   # Baseクラスを継承したDerivedクラ
 ス

  def __init__(self):
    # __init__はコンストラクタ(名前固定)

  def public_method(self, arg1, arg2):
    # publicメソッド

  def __private_method(self, arg1, arg2):
    # 先頭に__を付けるとprivateに。

obj = Derived()
obj.public_method(arg1, arg2)
obj.__private_method(arg1, arg2) # これはエラー    30
ダックタイピング(duck typing)

"If it walks like a duck and quacks like a duck,
  it must be a duck"

「もしもそれがアヒルのように歩き、アヒル
 のように鳴くのなら、それはアヒルである」




                                                   31
ダックタイピング

class Duck:
    def sound(self):
       return “quack”

class Cat:
    def sound(self):
       return “myaa”

def let_sound(obj):
    print obj.sound()

let_sound(Duck())
let_sound(Cat())
                        32
サンプルプログラム




            33
twitterアプリの製作

特定のユーザーのツイートを取得
 twitter APIを利用
 レスポンスをJSONで取得
ツイートの時刻とテキストを出力




                        34
プログラム作成の前に…

twitter API
  https://dev.twitter.com/docs/api/1/get/statuses/user_timeline

JSON
  「キー: 値」の形式でデータを表現




                                                                  35
プログラム

# -*- coding: utf-8 -*-

import urllib
import json

scr_name = 'NHK_PR' # twitterのスクリーンネーム
url = 'https://twitter.com/statuses/user_timeline.json' 
    + '?screen_name=' + scr_name
result = urllib.urlopen( 
    url, proxies={'https': 'http://proxy:8080'} )
result = json.loads(result.read())

for tweet in result:
    print '[%s] %s' % (tweet['created_at'], tweet['text'])
                                                       36
まとめ




      37
まとめ

簡単でしょ?
使ってみてくださいね。




               38
おまけ




      39
Pythonの亜種

IronPython
  .NET frameworkで動くPython
  .NET frameworkのライブラリが使える
  Visual Studioが使えるっぽい(フォームデザイナと
    か)
Jython
  Java VMで動くPython
  ちょっとバージョン古めかな…

                                   40
IronPython

import clr
clr.AddReferenceByPartialName(“System.Windows.Forms”)
from System.Windows.Forms import *
MessageBox.Show(
    “Are you OK?”, “Test”,
    MessageBoxButtons.YesNo,
    MessageBoxIcon.Question)




                                                        41
Jython

    JavaのコードからPythonを呼び出す感じ。
import org.python.util.PythonInterpreter;

public class JythonTest {
    public static void main(String[] args) {
         PythonInterpreter pyi = new
 PythonInterpreter();
         pyi.exec(“print 'Hello, world.'”);
         pyi.execfile(“hello.py”); // ファイル実行もOK

     }
}
                                                  42
Django

Pythonで作られたWebフレームワーク
モデルを書くだけで
 テーブルを勝手に作ってくれたり
 データ編集画面を自動で作ってくれたり




                        43
Python入門者向けサイト

ほぷしぃ
  http://www.isl.ne.jp/pcsp/python/
PythonWeb
  http://www.pythonweb.jp/




                                      44
ご清聴ありがとうございました




                 45
1 de 45

Recomendados

PEP8を読んでみよう por
PEP8を読んでみようPEP8を読んでみよう
PEP8を読んでみよう2bo 2bo
5.9K vistas49 diapositivas
20170131 python3 6 PEP526 por
20170131 python3 6 PEP526 20170131 python3 6 PEP526
20170131 python3 6 PEP526 masahitojp
3.3K vistas35 diapositivas
Twitter sphere of #twitter4j #twtr_hack por
Twitter sphere of #twitter4j #twtr_hackTwitter sphere of #twitter4j #twtr_hack
Twitter sphere of #twitter4j #twtr_hackkimukou_26 Kimukou
2.8K vistas87 diapositivas
Good Parts of PHP and the UNIX Philosophy por
Good Parts of PHP and the UNIX PhilosophyGood Parts of PHP and the UNIX Philosophy
Good Parts of PHP and the UNIX PhilosophyYuya Takeyama
3.8K vistas100 diapositivas
ゆるふわJava8入門 por
ゆるふわJava8入門ゆるふわJava8入門
ゆるふわJava8入門dcubeio
1.6K vistas35 diapositivas
2017/12/21 虎の穴 Python勉強会 por
2017/12/21 虎の穴 Python勉強会2017/12/21 虎の穴 Python勉強会
2017/12/21 虎の穴 Python勉強会虎の穴 開発室
4.5K vistas85 diapositivas

Más contenido relacionado

La actualidad más candente

Java8のstreamをダラダラまとめてみる por
Java8のstreamをダラダラまとめてみるJava8のstreamをダラダラまとめてみる
Java8のstreamをダラダラまとめてみるShinya Mochida
4.1K vistas28 diapositivas
PHPの今とこれから2014 por
PHPの今とこれから2014PHPの今とこれから2014
PHPの今とこれから2014Rui Hirokawa
21.3K vistas33 diapositivas
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2 por
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2Masatoshi Tada
54.9K vistas95 diapositivas
tse - Pythonによるテキスト整形ユーティリティ por
tse - Pythonによるテキスト整形ユーティリティtse - Pythonによるテキスト整形ユーティリティ
tse - Pythonによるテキスト整形ユーティリティAtsuo Ishimoto
22.5K vistas32 diapositivas
from old Java to modern Java por
from old Java to modern Javafrom old Java to modern Java
from old Java to modern Java心 谷本
35.4K vistas102 diapositivas
PHPコアから読み解くPHP5.5 por
PHPコアから読み解くPHP5.5PHPコアから読み解くPHP5.5
PHPコアから読み解くPHP5.5Yahoo!デベロッパーネットワーク
9.7K vistas83 diapositivas

La actualidad más candente(20)

Java8のstreamをダラダラまとめてみる por Shinya Mochida
Java8のstreamをダラダラまとめてみるJava8のstreamをダラダラまとめてみる
Java8のstreamをダラダラまとめてみる
Shinya Mochida4.1K vistas
PHPの今とこれから2014 por Rui Hirokawa
PHPの今とこれから2014PHPの今とこれから2014
PHPの今とこれから2014
Rui Hirokawa21.3K vistas
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2 por Masatoshi Tada
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
Masatoshi Tada54.9K vistas
tse - Pythonによるテキスト整形ユーティリティ por Atsuo Ishimoto
tse - Pythonによるテキスト整形ユーティリティtse - Pythonによるテキスト整形ユーティリティ
tse - Pythonによるテキスト整形ユーティリティ
Atsuo Ishimoto22.5K vistas
from old Java to modern Java por 心 谷本
from old Java to modern Javafrom old Java to modern Java
from old Java to modern Java
心 谷本35.4K vistas
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツール por Atsuo Ishimoto
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツールPyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツール
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツール
Atsuo Ishimoto23K vistas
Pythonでの開発を効率的に進めるためのツール設定 por Atsushi Odagiri
Pythonでの開発を効率的に進めるためのツール設定Pythonでの開発を効率的に進めるためのツール設定
Pythonでの開発を効率的に進めるためのツール設定
Atsushi Odagiri46.8K vistas
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12 por Takanori Suzuki
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
Takanori Suzuki3K vistas
Java SE 8 lambdaで変わる プログラミングスタイル por なおき きしだ
Java SE 8 lambdaで変わる プログラミングスタイルJava SE 8 lambdaで変わる プログラミングスタイル
Java SE 8 lambdaで変わる プログラミングスタイル
なおき きしだ18K vistas
from old java to java8 - KanJava Edition por 心 谷本
from old java to java8 - KanJava Editionfrom old java to java8 - KanJava Edition
from old java to java8 - KanJava Edition
心 谷本2.9K vistas
Tensorflow dynamically loadable XLA plugin ソースコード解析 por Mr. Vengineer
Tensorflow  dynamically loadable XLA plugin ソースコード解析Tensorflow  dynamically loadable XLA plugin ソースコード解析
Tensorflow dynamically loadable XLA plugin ソースコード解析
Mr. Vengineer1.2K vistas
Java Puzzlers JJUG CCC 2016 por Yoshio Terada
Java Puzzlers JJUG CCC 2016Java Puzzlers JJUG CCC 2016
Java Puzzlers JJUG CCC 2016
Yoshio Terada7.1K vistas
Pythonはどうやってlen関数で長さを手にいれているの? por Takayuki Shimizukawa
Pythonはどうやってlen関数で長さを手にいれているの?Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?
Takayuki Shimizukawa38.1K vistas
【java8 勉強会】 怖くない!ラムダ式, Stream API por dcomsolution
【java8 勉強会】 怖くない!ラムダ式, Stream API【java8 勉強会】 怖くない!ラムダ式, Stream API
【java8 勉強会】 怖くない!ラムダ式, Stream API
dcomsolution6.4K vistas
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる por Koichi Sakata
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるJJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
Koichi Sakata3.7K vistas
PHPの今とこれから 2013 por Rui Hirokawa
PHPの今とこれから 2013PHPの今とこれから 2013
PHPの今とこれから 2013
Rui Hirokawa7.1K vistas

Similar a Introduction of Python

Python Kyoto study por
Python Kyoto studyPython Kyoto study
Python Kyoto studyNaoya Inada
2K vistas69 diapositivas
ひのきのぼうだけで全クリ目指す por
ひのきのぼうだけで全クリ目指すひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指すAromaBlack
1.5K vistas35 diapositivas
T69 c++cli ネイティブライブラリラッピング入門 por
T69 c++cli ネイティブライブラリラッピング入門T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門伸男 伊藤
5.2K vistas65 diapositivas
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド por
 ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイドEtsuji Nakai
16.1K vistas25 diapositivas
Python physicalcomputing por
Python physicalcomputingPython physicalcomputing
Python physicalcomputingNoboru Irieda
1.5K vistas58 diapositivas
Pythonによる機械学習入門〜基礎からDeep Learningまで〜 por
Pythonによる機械学習入門〜基礎からDeep Learningまで〜Pythonによる機械学習入門〜基礎からDeep Learningまで〜
Pythonによる機械学習入門〜基礎からDeep Learningまで〜Yasutomo Kawanishi
58.9K vistas73 diapositivas

Similar a Introduction of Python(20)

Python Kyoto study por Naoya Inada
Python Kyoto studyPython Kyoto study
Python Kyoto study
Naoya Inada2K vistas
ひのきのぼうだけで全クリ目指す por AromaBlack
ひのきのぼうだけで全クリ目指すひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指す
AromaBlack1.5K vistas
T69 c++cli ネイティブライブラリラッピング入門 por 伸男 伊藤
T69 c++cli ネイティブライブラリラッピング入門T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門
伸男 伊藤5.2K vistas
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド por Etsuji Nakai
 ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
Etsuji Nakai16.1K vistas
Python physicalcomputing por Noboru Irieda
Python physicalcomputingPython physicalcomputing
Python physicalcomputing
Noboru Irieda1.5K vistas
Pythonによる機械学習入門〜基礎からDeep Learningまで〜 por Yasutomo Kawanishi
Pythonによる機械学習入門〜基礎からDeep Learningまで〜Pythonによる機械学習入門〜基礎からDeep Learningまで〜
Pythonによる機械学習入門〜基礎からDeep Learningまで〜
Yasutomo Kawanishi58.9K vistas
NumPyが物足りない人へのCython入門 por Shiqiao Du
NumPyが物足りない人へのCython入門NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門
Shiqiao Du36.9K vistas
Python standard 2022 Spring por anyakichi
Python standard 2022 SpringPython standard 2022 Spring
Python standard 2022 Spring
anyakichi220 vistas
DATUM STUDIO PyCon2016 Turorial por Tatsuya Tojima
DATUM STUDIO PyCon2016 TurorialDATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 Turorial
Tatsuya Tojima3.1K vistas
Introduction to cython por Atsuo Ishimoto
Introduction to cythonIntroduction to cython
Introduction to cython
Atsuo Ishimoto14.9K vistas
15分でざっくり分かるScala入門 por SatoYu1ro
15分でざっくり分かるScala入門15分でざっくり分かるScala入門
15分でざっくり分かるScala入門
SatoYu1ro20.8K vistas
はじめての人のためのDeep Learning por Tadaichiro Nakano
はじめての人のためのDeep Learningはじめての人のためのDeep Learning
はじめての人のためのDeep Learning
Tadaichiro Nakano4.9K vistas
Rあんなときこんなとき(tokyo r#12) por Shintaro Fukushima
Rあんなときこんなとき(tokyo r#12)Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)
Shintaro Fukushima5.6K vistas
研究生のためのC++ no.2 por Tomohiro Namba
研究生のためのC++ no.2研究生のためのC++ no.2
研究生のためのC++ no.2
Tomohiro Namba430 vistas
Cython intro prelerease por Shiqiao Du
Cython intro prelereaseCython intro prelerease
Cython intro prelerease
Shiqiao Du1.8K vistas

Último

PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 por
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PC Cluster Consortium
36 vistas36 diapositivas
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可 por
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可Hitachi, Ltd. OSS Solution Center.
18 vistas22 diapositivas
光コラボは契約してはいけない por
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけないTakuya Matsunaga
31 vistas17 diapositivas
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 por
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PC Cluster Consortium
71 vistas12 diapositivas
私のMicrosoft Azure 2023 por
私のMicrosoft Azure 2023私のMicrosoft Azure 2023
私のMicrosoft Azure 2023Ryuji Iwata
5 vistas36 diapositivas
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 por
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Hitachi, Ltd. OSS Solution Center.
136 vistas26 diapositivas

Último(6)

PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 por PC Cluster Consortium
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
光コラボは契約してはいけない por Takuya Matsunaga
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけない
Takuya Matsunaga31 vistas
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 por PC Cluster Consortium
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
私のMicrosoft Azure 2023 por Ryuji Iwata
私のMicrosoft Azure 2023私のMicrosoft Azure 2023
私のMicrosoft Azure 2023
Ryuji Iwata5 vistas

Introduction of Python