pythonで書いたものをhtmlで表示させています。しかし「''」がどのような意味になるのかを調べてみても時分の納得のいくものがありませんでした。この'は途中になにかを挟む場合に入れると解釈しているのですがそれでいいのでしょうか。
宜しくおねがいします。
html
1print("<img src='"+items_img[item]+"'>")
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
回答3件
0
print("<img src='"+items_img[item]+"'>")
↑「<img src='」という文字列と「items_img[item]」の内容と、「'>」という文字列を連結しているだけ。
「items_img[item]」の内容が「hogehoge.jpg」だとしたら出力結果は
<img src='hogehoge.jpg'>
↑となるだけのこと。
投稿2018/06/13 04:39
総合スコア5572
わかりやすいように変えているっことですね
ありがとうございます
すでに回答にでていますが、Python に限らず、コーディング上のルールです。
クォーテーションは「出力文字列」を明示するための「命令」です。
htmlの属性値は「この属性に所属するもの」と明示するためのものです。
ただし、実行されるのはサーバー側の言語からとなるのでサーバー側の言語にあわせて記述しなければなりません。
私の回答は少し端折ってしまっていますが、サーバー側でダブルクォーテーションを使っているとそれが区切りとなってしまうので、html内ではそのままでは使えません。
PythonほとんどやったことがないのでPHPで例えますが、同じクォーテーションを使いたければ「単なる文字列ですよ」と認識させるためにエスケープを入れます。
echo '<img src=¥''.$hoge.'¥'>';
0
ベストアンサー
結果としてはこういうものを得たいだけです。
python
1>>> items_img = {"hoge":"hoge"} # 適当に定義 2>>> item = "hoge" # 適当に定義 3>>> print("<img src='"+items_img[item]+"'>") 4<img src='hoge'>
属性値を囲むクォーテーションです。
htmlの属性
これ自体はシングルでもダブルでもHTML的な意味は同じなのですが、外側のpython文字列のクォーテーションと混ざるのを回避するために、python文字列の方はダブルクォーテーション、HTMLの方はシングルクォーテーションで書いているようですね。
投稿2018/06/13 05:05
総合スコア30939
なるほどです、
言語によって変えているわけですね
言語はあんまり関係ありませんね。ダブルクォーテーションの中にもう一回ダブルクォーテーションを書く訳にはいかないというだけで。これはpythonの文字列の仕様です
>>> print("hoge:"hoge"") # hoge:"hoge"を期待
File "<stdin>", line 1
print("hoge:"hoge"") # hoge:"hoge"を期待
^
SyntaxError: invalid syntax
>>> print('hoge:"hoge"') # これならオッケー
hoge:"hoge"
>>> print("hoge:\"hoge\"") # こういうのもあります(エスケープする)
hoge:"hoge"
あ、質問のプログラムでは外がダブルで内側がシングルだった。どっちでも同じです。あと、中に複数個入るかどうかも関係なし
なるほど。
Pythonのなかでのルールなのですね
はい。
ちなみにHTMLの方でも実は同じような仕様があったり(質問に貼ったリンクに書いてあります。たぶん本当に気になるのはHTMLの方だと思うので、よく読んでおくと良いと思います)
ありがとうございます。参考にさせていただきます
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
2018/06/13 05:11