Soumettre la recherche
Mettre en ligne
私の好きなPython構文 vol.2 #nds46
•
Télécharger en tant que PPTX, PDF
•
0 j'aime
•
1,761 vues
C
civicpg
Suivre
Pythonの文字列リテラル、with文について
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 45
Télécharger maintenant
Recommandé
LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45
civic Sasaki
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
shoma h
PyPy 紹介
PyPy 紹介
shoma h
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
shoma h
たった一ファイルの python スクリプトから始めるOSS開発入門 / PyCon JP 2016
たった一ファイルの python スクリプトから始めるOSS開発入門 / PyCon JP 2016
Kei IWASAKI
Pynyumon03 LT
Pynyumon03 LT
drillan
言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo
Shuyo Nakatani
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
Kei IWASAKI
Recommandé
LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45
civic Sasaki
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
shoma h
PyPy 紹介
PyPy 紹介
shoma h
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
shoma h
たった一ファイルの python スクリプトから始めるOSS開発入門 / PyCon JP 2016
たった一ファイルの python スクリプトから始めるOSS開発入門 / PyCon JP 2016
Kei IWASAKI
Pynyumon03 LT
Pynyumon03 LT
drillan
言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo
Shuyo Nakatani
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
Kei IWASAKI
Python入門 コードリーディング - PyConJP2016
Python入門 コードリーディング - PyConJP2016
Shinya Okano
PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッション
Tetsuya Morimoto
Pyconjp2016 pyftplib
Pyconjp2016 pyftplib
Shinya Okano
Python & PyConJP 2014 Report
Python & PyConJP 2014 Report
gree_tech
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
Yusuke Kon
勉強会 Cvml python基礎
勉強会 Cvml python基礎
真哉 杉野
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Katsuhiro Morishita
久しぶりのPythonでgoogleのアレを制御してみた
久しぶりのPythonでgoogleのアレを制御してみた
Shohei Tai
なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?
Aki Ariga
OSSと私
OSSと私
Hattori Hideo
サードパーティパッケージの歩き方
サードパーティパッケージの歩き方
Takesxi Sximada
Stapy#22 LT
Stapy#22 LT
NaoY-2501
Javascriptを書きたくないヒ トのためのPythonScript
Javascriptを書きたくないヒ トのためのPythonScript
Kazufumi Ohkawa
Python界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクト
Tetsuya Morimoto
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
Hisao Soyama
GPT
GPT
norimatsu5
Python3 プログラミング勉強会
Python3 プログラミング勉強会
Tetsuya Morimoto
スクレイピングとPython
スクレイピングとPython
Hironori Sekine
Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjp
Yoshifumi Yamaguchi
OSS Study#19_LT
OSS Study#19_LT
NaoY-2501
第38回載せられないapp
第38回載せられないapp
civic Sasaki
Firefoxos
Firefoxos
civic Sasaki
Contenu connexe
Tendances
Python入門 コードリーディング - PyConJP2016
Python入門 コードリーディング - PyConJP2016
Shinya Okano
PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッション
Tetsuya Morimoto
Pyconjp2016 pyftplib
Pyconjp2016 pyftplib
Shinya Okano
Python & PyConJP 2014 Report
Python & PyConJP 2014 Report
gree_tech
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
Yusuke Kon
勉強会 Cvml python基礎
勉強会 Cvml python基礎
真哉 杉野
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Katsuhiro Morishita
久しぶりのPythonでgoogleのアレを制御してみた
久しぶりのPythonでgoogleのアレを制御してみた
Shohei Tai
なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?
Aki Ariga
OSSと私
OSSと私
Hattori Hideo
サードパーティパッケージの歩き方
サードパーティパッケージの歩き方
Takesxi Sximada
Stapy#22 LT
Stapy#22 LT
NaoY-2501
Javascriptを書きたくないヒ トのためのPythonScript
Javascriptを書きたくないヒ トのためのPythonScript
Kazufumi Ohkawa
Python界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクト
Tetsuya Morimoto
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
Hisao Soyama
GPT
GPT
norimatsu5
Python3 プログラミング勉強会
Python3 プログラミング勉強会
Tetsuya Morimoto
スクレイピングとPython
スクレイピングとPython
Hironori Sekine
Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjp
Yoshifumi Yamaguchi
OSS Study#19_LT
OSS Study#19_LT
NaoY-2501
Tendances
(20)
Python入門 コードリーディング - PyConJP2016
Python入門 コードリーディング - PyConJP2016
PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッション
Pyconjp2016 pyftplib
Pyconjp2016 pyftplib
Python & PyConJP 2014 Report
Python & PyConJP 2014 Report
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
勉強会 Cvml python基礎
勉強会 Cvml python基礎
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
久しぶりのPythonでgoogleのアレを制御してみた
久しぶりのPythonでgoogleのアレを制御してみた
なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?
OSSと私
OSSと私
サードパーティパッケージの歩き方
サードパーティパッケージの歩き方
Stapy#22 LT
Stapy#22 LT
Javascriptを書きたくないヒ トのためのPythonScript
Javascriptを書きたくないヒ トのためのPythonScript
Python界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクト
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
GPT
GPT
Python3 プログラミング勉強会
Python3 プログラミング勉強会
スクレイピングとPython
スクレイピングとPython
Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjp
OSS Study#19_LT
OSS Study#19_LT
En vedette
第38回載せられないapp
第38回載せられないapp
civic Sasaki
Firefoxos
Firefoxos
civic Sasaki
第39回続・古くなったkindle4
第39回続・古くなったkindle4
civic Sasaki
第43回NDS NetBeansを使ったJavaプロファイリングの紹介
第43回NDS NetBeansを使ったJavaプロファイリングの紹介
civic Sasaki
今日帰ってすぐに始められるChrome App #nds45
今日帰ってすぐに始められるChrome App #nds45
civic Sasaki
第42回中華製安価デバイスの通信を解析した話
第42回中華製安価デバイスの通信を解析した話
civic Sasaki
第49回emailを安全んにつかうための心がけ
第49回emailを安全んにつかうための心がけ
civicpg
Amazon SESのメール受信対応でサーバー減らせた話
Amazon SESのメール受信対応でサーバー減らせた話
civic Sasaki
#nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
#nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
civicpg
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
civic Sasaki
En vedette
(10)
第38回載せられないapp
第38回載せられないapp
Firefoxos
Firefoxos
第39回続・古くなったkindle4
第39回続・古くなったkindle4
第43回NDS NetBeansを使ったJavaプロファイリングの紹介
第43回NDS NetBeansを使ったJavaプロファイリングの紹介
今日帰ってすぐに始められるChrome App #nds45
今日帰ってすぐに始められるChrome App #nds45
第42回中華製安価デバイスの通信を解析した話
第42回中華製安価デバイスの通信を解析した話
第49回emailを安全んにつかうための心がけ
第49回emailを安全んにつかうための心がけ
Amazon SESのメール受信対応でサーバー減らせた話
Amazon SESのメール受信対応でサーバー減らせた話
#nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
#nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
Similaire à 私の好きなPython構文 vol.2 #nds46
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
You&I
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
Takanori Suzuki
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack bot
dcubeio
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門
Takayuki Shimizukawa
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013
DQNEO
ctypes拡張モジュール
ctypes拡張モジュール
Moriyoshi Koizumi
Python for Beginners ( #PyLadiesKyoto Meetup )
Python for Beginners ( #PyLadiesKyoto Meetup )
Ai Makabi
せっかくだから俺はこの NPAPI の話をするぜ
せっかくだから俺はこの NPAPI の話をするぜ
Naruto TAKAHASHI
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
johgus johgus
Python パッケージの影響を歴史から理解してみよう!
Python パッケージの影響を歴史から理解してみよう!
Kir Chou
Pythonを始めよう
Pythonを始めよう
shouta yoshikai
PythonでPodcastを聴く
PythonでPodcastを聴く
Masato Fujitake
cs-10. Python の基礎(オブジェクト,メソッド,引数,文字列)
cs-10. Python の基礎(オブジェクト,メソッド,引数,文字列)
kunihikokaneko1
Introduction Pycon2010
Introduction Pycon2010
(shibao)芝尾 (kouichiro)幸一郎
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
Takuya Nishimoto
深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデル
Yuta Kashino
Django で始める PyCharm 入門
Django で始める PyCharm 入門
kashew_nuts
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
Hisateru Tanaka
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
Junichi Ishida
2013_kougi6
2013_kougi6
ytanno
Similaire à 私の好きなPython構文 vol.2 #nds46
(20)
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack bot
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013
ctypes拡張モジュール
ctypes拡張モジュール
Python for Beginners ( #PyLadiesKyoto Meetup )
Python for Beginners ( #PyLadiesKyoto Meetup )
せっかくだから俺はこの NPAPI の話をするぜ
せっかくだから俺はこの NPAPI の話をするぜ
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
Python パッケージの影響を歴史から理解してみよう!
Python パッケージの影響を歴史から理解してみよう!
Pythonを始めよう
Pythonを始めよう
PythonでPodcastを聴く
PythonでPodcastを聴く
cs-10. Python の基礎(オブジェクト,メソッド,引数,文字列)
cs-10. Python の基礎(オブジェクト,メソッド,引数,文字列)
Introduction Pycon2010
Introduction Pycon2010
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデル
Django で始める PyCharm 入門
Django で始める PyCharm 入門
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
2013_kougi6
2013_kougi6
Plus de civicpg
オンライン英会話のモチベーション維持!
オンライン英会話のモチベーション維持!
civicpg
#nds54 ルーチンワーク自動化の話
#nds54 ルーチンワーク自動化の話
civicpg
#nds53 IoTプラットフォーム・工作でスーヴィード(低温調理)
#nds53 IoTプラットフォーム・工作でスーヴィード(低温調理)
civicpg
第52回なんてかんたんなJavaEE
第52回なんてかんたんなJavaEE
civicpg
第51回NDS PostgreSQLのデータ型 #nds51
第51回NDS PostgreSQLのデータ型 #nds51
civicpg
jupyterの紹介 #nds48
jupyterの紹介 #nds48
civicpg
Amazon SESのメール受信対応でサーバー減らせた話 #nds44
Amazon SESのメール受信対応でサーバー減らせた話 #nds44
civicpg
Plus de civicpg
(7)
オンライン英会話のモチベーション維持!
オンライン英会話のモチベーション維持!
#nds54 ルーチンワーク自動化の話
#nds54 ルーチンワーク自動化の話
#nds53 IoTプラットフォーム・工作でスーヴィード(低温調理)
#nds53 IoTプラットフォーム・工作でスーヴィード(低温調理)
第52回なんてかんたんなJavaEE
第52回なんてかんたんなJavaEE
第51回NDS PostgreSQLのデータ型 #nds51
第51回NDS PostgreSQLのデータ型 #nds51
jupyterの紹介 #nds48
jupyterの紹介 #nds48
Amazon SESのメール受信対応でサーバー減らせた話 #nds44
Amazon SESのメール受信対応でサーバー減らせた話 #nds44
Dernier
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
Dernier
(8)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
私の好きなPython構文 vol.2 #nds46
1.
私の好きなPython構文 vol.2 #nds4 @civic
2.
お前だれよ • @civic • NDS管理者 •
Python, Java
3.
このプレゼンのねらい Pythonへの熱い想いを語って 少しでもPython人口を増やしたい
4.
前回の発表 おさらい
5.
今日帰ってすぐに始められる Python
6.
Pythonの良さ
7.
かんたん
8.
素直で覚えやすい
9.
人気あり
10.
プログラミング言語 人気ランキング Top10 2015年8月 GitHub発表
http://goo.gl/160eHH
11.
Python人気は? • 4位 PHP •
5位 Python • 6位 CSS • 7位 C++ • 8位 C# • 9位 C • 10位 HTML • 1位 JavaScript • 2位 Java • 3位 Ruby
12.
好きなPython構文 vol.1
13.
デコレータについて 紹介しました 詳しくはこちら www.slideshare.net/fbcivic/lt-python-nds45
14.
今日話す内容
15.
好きなPython構文 vol.2 文字列リテラル with文 (コンテキストマネージャー)
16.
文字列リテラル
17.
文字列リテラル 基本 'Hello' #
シングルクォート "World" # ダブルクォート • 普通な感じ • 変数の展開などはしない • format関数 • %
18.
文字列リテラルのプレフィックス • プレフィックスで意味が変わる b'abc' #
バイト列 ≠ 文字列 r'rn' # raw文字列(エスケープなし) u'あいう' # Unicode文字列 #(python2のみ。3.3以降ではuは不要) リテラルの記号を増やすことなく、アルファベット1字で 様々なリテラルを表現できてわかりやすい!好き!
19.
正規表現リテラルなど不要! • Pythonでは正規表現は言語仕様になく、 標準ライブラリ。正規表現リテラルはない。 • JavaScriptの正規表現リテラル //
nにマッチするか? test_string.match(/n/); // にマッチするか? test_string.match(//);
20.
Javaの場合 • 同様に正規表現が標準ライブラリで提供されるJava の場合 • Javaの場合 //
nにマッチするか? test_string.matches("n"); // にマッチするか? test_string.matches(""); 文字列でパターンを表現するので、正規表現としてのエ スケープ文字と文字列リテラルのエスケープが重なる
21.
Pythonの場合 • raw文字列を使えばさほど問題ない • Pythonの場合 //
nにマッチするか? re.match(r"n", test_string) // にマッチするか? re.match(r"", test_string); raw文字列 r""→エスケープ無効な文字列リテラル 言語仕様に正規表現リテラルを含めなくてもライブラリ で十分!→シンプル!
22.
文字列リテラルのプレフィックス • 記号を使わずに文字列リテラルをたくさん表現できる "abc" 文字列 r"n"
raw文字列 b"abc" バイト列 u"あいう" Unicode文字列 (Python2) f"Hello! {name}" 変数展開できるやつ (Python3.6予定)
23.
余談ですが
24.
Python2と3の文字列(闇)
25.
Python2の文字列 • Python2の文字列リテラルはバイト列 なんらかのエンコードの文字列→バイト列 • 文字単位で数えたりするには、 なんらかのエンコードのバイト列では扱いにくい →Unicode文字列もあるよ "Hello"
# 文字列(バイト列) u"Hello" # Unicode文字列
26.
混ぜるな危険!! Python2の 文字列 vs Unicode文字列 UnicodeDecodeError:
'ascii' 〜
27.
安心してください Python3では自然な感じに Python2 意味
Python3 "abc" バイト列 b"abc" u"abc" Unicode文字列 "abc" • 自然になったが互換性が... • u" "リテラルはもう付けなくてもいいから不要!
28.
Python3.0では u""は廃止!
29.
Python2の u""が 全部使えなくなった! 互換性ヤバい!
30.
ゴメン! やっぱりPython3.3から u"" 復活させるわ!
31.
お分かり いただけただろうか?
32.
えっと... Pythonの文字列リテラルが 好きだって話だった
33.
このプレゼンのねらい(再) Pythonへの熱い想いを語って 少しでもPython人口を増やしたい
34.
文字列リテラル まとめ • 3になってからは自然な感じ •
プレフィックスで表現できて便利 • 記号よりわかりやすい • Python3.6で新しい文字列リテラル f"Hello {name}" # フォーマット文字列 https://docs.python.org/3.6/whatsnew/3.6.html#pep-498- formatted-string-literals
35.
今日2つめの 好きな構文
36.
with文 コンテキストマネージャー
37.
with文 • コンテキストを扱う便利な構文(雑) with open('hoge.txt',
'w') as f: f.write('Hello World') # withブロックを抜けるとファイルをclose 「ファイルを開いた」というコンテキストで処理を記述
38.
Javaでいうところの • try-with-resource try (Write
w = new FileWriter(path)) { //ファイル処理 } • Javaの場合はAutoClosableインターフェースを 実装したオブジェクトを返す • Pythonの場合はコンテキストマネージャー型
39.
コンテキストマネージャー型 • __enter__と__exit__メソッドをもつオブジェクト class Hoge(): def
__enter__(self): print("Enter") def __exit__(self, exc_type, exc_value, traceback): print("Exit") with Hoge(): print("Hello") # Enter # Hello # Exit コードブロックの入り口と出口
40.
もう少しかんたんに
41.
contextlibモジュール • コンテキストマネージャー型のクラスつくるの メンドクサ →
contextlibでお手軽に @contextlib.contextmanager def テストすっぞ(): print("test setup') yield print("test teardown") with テストすっぞ(): print("テスト中") # test setup # テスト中 # test teardown
42.
contextlib.contextmanager • 前処理・後処理が簡単に記述できた! • リソースのcloseだけでなく 定型的な前処理・後処理に •
yieldは関数の途中で保留して戻るようなやつ • yieldについてはまた別の機会に
43.
まとめ
44.
まとめ • 好きなPython構文として2つ挙げました • 文字列リテラル(のプレフィックス) •
わかりやすくて表現の幅が広がる • with文(コンテキストマネージャー) • 前処理・後処理がきれいに書ける
45.
ご静聴ありがとう ございました
Notes de l'éditeur
変数展開については、次のPython3.6で搭載予定
具体的な例として、どういう点で分かりやすいかということを紹介
正規表現リテラルのあるJavaScriptの場合
正規表現ライブラリに文字列でパターンを渡さなければならない
raw文字列は正規表現のためのものではないが、文字列の表現の幅が広がる 言語仕様はシンプルに。その代わり豊富な標準ライブラリ
PEP498のフォーマット文字列
Python2の文字列はバイト列でしかないので、代わりにUnicode文字列というオブジェクトもある
2つの文字列があるから、よく発生したエラー!
いままでのUnicode文字列が、ふつーに使いたい文字列だからプレフィックスなし たとえば文字列→SJISで表現されたバイト列にしたらbプレフィックスにしよう uリテラルもう要らないよね!
ただしつけても、なにも機能しない互換性のためだけに存在
f-string
コンテキストマネージャーを返すことで、前処理・後処理を実装できて綺麗
クラスを作成するのはおっくうでも、関数ならサッと作る気になる
Télécharger maintenant