Python 3ベース-問題の概要

19907 ワード

Python 3ベース-問題の概要
この文章は主にpython 3の使用を学ぶ上で出会ったいくつかの問題について書きます.--私はpython白です.もし間違いがあったら、大神さんに教えてください.
1、print()関数
古いprint関数はprint「Hello」として使用され、新しいprint関数はprint(「Hello」)に変更され、以前のバージョンと互換性がなくなりました.3.XバージョンのPythonで古いprint構文を使用すると、「SyntaxError:invalid syntax」エラーが発生します.
2、raw_input()とinput()
Python 3ではraw_の代わりにinput()を使用していますinput()は、もちろん名前の変更だけで、使用上は違いません.
3、比較記号、使用!=置換<>
4、repr関数
repr()関数を使用して置換」(注意:キーボード1の左側にあるキーの逆一重引用符)を使用して、objectをstringに変換します.repr()はstr()と少し異なることに注意してください.
5、exec()関数
execは文字列またはファイルに格納されたPython文を実行するために使用され、JavaScriptのeval()関数と同様に、新しいexecはexec(‘print(‘Hello’))として使用されます.
  • 新しいインタフェースの設計は、新しい執筆体験をもたらします.
  • 創作センターでお気に入りのコードハイライトスタイルを設定し、Markdownはコードシートに選択したハイライトスタイルを表示します.
  • は、ローカルの画像を編集領域に直接ドラッグ&ドロップして表示することができる画像ドラッグ機能を追加しました.
  • 新しいKaTeX数学公式文法;
  • ガントチャートをサポートするmermaid構文1機能を追加しました.
  • マルチスクリーン編集Markdown記事機能を追加しました.
  • はフォーカスライティングモード、プレビューモード、簡潔ライティングモード、左右領域同期ローラ設定などの機能を追加し、機能ボタンは編集領域とプレビュー領域の中間に位置する;
  • はチェックリスト機能を追加しました.
  • 6.Windowsでの「No module named'xlrd」の解決策
  • 問題説明windows 10でpythonコードでヘッダファイル
  • を参照
     import xlrd
    

    次のエラーが発生しました
         "No module named 'xlrd'
    
  • 原因pythonのxlrdライブラリはサードパーティ製で、別途インストールする必要があります.
  • ソリューションwindows commandコマンドラインに入り、pythonのインストールディレクトリの下のScriptフォルダにディレクトリを切り替え、easy_inatall pipを実行し、pipコマンド
  • をインストールします.
    pipコマンドを使用してxlrdパッケージをインストール
    pip install xlrd
    

    7. ImportError: No module named ‘urllib2’
    今日は簡単なコードを試してみました.
    import urllib2
    response = urllib2.urlopen("http://www.baidu.com")
    print response.read()
    

    実行後のエラー:
    Traceback (most recent call last):
      File "D:/PycharmProjects/network_test/scrapy.py", line 1, in <module>
        import urllib2
    ImportError: No module named 'urllib2'
    

    自分のパソコンにはpython 3.4が入っていて、3以降urllib.requestでurllib 2の代わりになっているので、このように変更しました.
    import urllib.request
    response = urllib.request.urlopen("http://www.baidu.com")
    print(response.read())
    

    8.python 3 AttributeError:'module'object has no attribute'urlencode'を解決する
    エラー:
    Traceback (most recent call last):
    File "C:/Users/Window/Desktop/urllib2_test01.py", line 13, in <module>
    data = urllib.urlencode(values)
    AttributeError: 'module' object has no attribute 'urlencode'
    

    解決:python 3バージョンurllib.parse.urlencode(values)
    9.python 3.x実行post要求時報エラー「POST data should be bytes or an iterable of bytes...」の解決方法
    python 3.5.1を使用してpostリクエストを実行する場合、「POST data should be bytes or an iterable of bytes.It cannot be of type str.」とエラーが発生し続け、チュートリアルをよく照らしても作成方法に問題はありません.
    最後に、urlencode文の後にencode(encoding=‘UTF 8’)を付ける必要があることをコミュニケーションで発見しました.
    eg:
    params = urllib.parse.urlencode({'userid':'381fccbd776c4deb'}).encode(encoding='UTF8')
    

    問題解決
    10.リストの各要素をfloatに変換する(Python 2とPython 3の違い)
    #Python2
     for line in fr.readlines():
            curLine = line.strip().split('\t')
            fltLine = map(float, curLine)    #        float  
            dataMat.append(fltLine)
    
    #Python3
     for line in fr.readlines():
            curLine = line.strip().split('\t')
            fltLine = list(map(float,curLine))#        float  
            dataMat.append(fltLine)
    

    11.PythonエラーTypeError:write()argument must be str,not bytes
    今日Pythonのpickleストレージを使用している間に、次のエラーが発生しました.
    TypeError: write() argument must be str, not bytes
    

    ネットで検索してみると、ファイルが開く方法に問題があることが分かった.
    以前に開いたファイルの文は次のとおりです.
    f=open("list.pkl","w+")
    

    その後、バイナリ方式で開くと、この問題はありません.
    f=open("list_account.pkl","wb+")
    

    問題の原因はpickleストレージ方式がデフォルトでバイナリ方式であるためです
    Python読み書きファイル中国語文字化け
    fo = open("temp.txt", "wb+")
    str = '  '
    str = str.encode('utf-8')
    fo.write(str)
    fo.close()
    

    12. python TypeError: ufunc ‘subtract’ did not contain a loop with signature matching types dtype(‘S32’)
    import numpy as np
     
    x = np.array([1, 2, 2.5])
    x.astype(int)
     
    y = np.array([3, 6, 2], dtype='S32')
    y = y.astype('float64')
     
    x - y
    

    13.tensorflow公式ドキュメントのsubとmulの関数はAPIで名前を変更しました
    1)AttributeError: module ‘tensorflow‘ has no attribute ‘sub‘
    #       Tensorflow  
    import tensorflow as tf
    sess = tf.InteractiveSession()
    x = tf.Variable([1.0,2.0])
    a = tf.constant([3.0,3.0])
    #      initalizer op run()     ‘x‘
    x.initializer.run()
    #      sub op,  ‘x‘  ‘a‘,    op,    
    sub = tf.sub(x,a)
    print(sub.eval())
    #     ,    
    sess.close()
    

    実行時エラー:
    Traceback (most recent call last):
      File "C:/PythonProj/tensorflow/first_tensorflow.py", line 43, in <module>
        sub = tf.sub(x,a)
    AttributeError: module ‘tensorflow‘ has no attribute ‘sub‘
    

    pycharmでtf.が自動的に反転する情報を経て、私はもとのこのsub関数がsubtractに取って代わられたことを発見して、tf.subtract(x,a)、okに変えて、すべて順調です!
    2)AttributeError: module ‘tensorflow‘ has no attribute ‘mul‘
    input1 = tf.constant(3.0)
    input2 = tf.constant(2.0)
    input3 = tf.constant(5.0)
    
    intermed = tf.add(input2,input3)
    mul = tf.mul(input1,intermed)
    with tf.Session() as sess:
        result = sess.run([mul,intermed])
        print(result)
    

    エラーメッセージ:
    Traceback (most recent call last):
      File "C:/PythonProj/tensorflow/first_tensorflow.py", line 78, in <module>
        mul = tf.mul(input1,intermed)
    AttributeError: module ‘tensorflow‘ has no attribute ‘mul‘
    

    同じように、pycharmでtf.反顕情報を観察したところ、このtf.mul関数がtf.multiplyに変換されたことがわかりました.修正後、ok!
    14. AttributeError: module ‘tensorflow’ has no attribute ‘types’
    input1 = tf.placeholder(tf.types.float32)
    

    ソリューション:コードを~に変更
    input1 = tf.placeholder(tf.float32)
    

    mermaid構文の説明↩︎