検索
ホームページバックエンド開発Python チュートリアルPythonで砂時計パターンを印刷するときにnameerrorエラーを解くにはどうすればよいですか?

Pythonで砂時計パターンを印刷するときにnameerrorエラーを解くにはどうすればよいですか?

Pythonの初心者は、砂時計パターンを印刷するときにNameError遭遇します:問題分析とコードの改善

この記事ではNameError: name 'sym' is not defined 。元のコードは、 print_hourglass関数を使用して、ユーザー指定の文字で構成される砂時計パターンを印刷する予定ですが、エラーは不適切な入力処理によって引き起こされます。

問題のルートは、元のコードの入力処理にあります:行番号と文字の両方を読み込もうとしますが、ユーザーの入力形式が正しくない場合(たとえば、1つの番号を入力するか、 ValueError数値文字を入力します)、 map(int, input().split())さらに重要なことは、 ValueErrorがない場合でも、ユーザーが2番目の入力(文字)を提供しない場合、 sym変数は未定義になり、 NameErrorになります。

改良されたコードは、より堅牢な入力処理と可変定義でこの問題を解決します。

 def is_integer_string(s):
    "" "入力文字列が整数であるかどうかを確認します" "
    試す:
        int(s)
        trueを返します
    ValueRerrを除く:
        falseを返します

def print_hourglass(n、sym):
    "" "砂時計パターンを印刷" ""
    i = 1
    while n> = i * i:
        print( '' *(i -1)sym *(i * 2 -1))#correction formula print( '' *(i -1)sym *((i 1) * 2 -1))#correction formula i = 2
    私は> 0の間:
        print( '' *(i -1)sym *(i * 2 -1))#式i- = 2を変更する

試す:
    n_str = input( "砂時計の行数を入力してください(奇数):")
    is_integer_string(n_str):
        n = int(n_str)
        n%2 == 0の場合:
            印刷(「奇数を入力してください」)
        それ以外:
            sym = input( "砂時計を形成する文字を入力してください:")
            print_hourglass(n、sym)
    それ以外:
        print( "Invalid input、integerを入力してください"))
eとしての例外を除く:
    印刷(f "エラーが発生した:{e}")

改善:

  1. より明確な入力プロンプト:コードは入力プロンプトを追加して、ユーザーが行と文字の数を入力するようにガイドします。
  2. 入力を個別に読み取る:コードは、行と文字の数を個別に読み取り、 map関数の潜在的な問題を回避します。
  3. 整数チェックis_integer_string関数が簡素化され、 try-exceptブロックを使用して、入力がより簡潔に整数であるかどうかを確認します。
  4. 奇数チェック:砂時計パターンの正しい表示を確保するために、入力ラインの数が奇数かどうかを確認しました。
  5. エラー処理try-exceptブロックを使用して、可能なすべての例外と印刷に優しいエラーメッセージをキャッチします。
  6. 式修正:元のコードに砂時計パターンを印刷するための式にはわずかな欠陥があり、砂時計パターンを正しく印刷できるように修正されています。

これらの改善により、コードはより堅牢で、さまざまなユーザー入力を効果的に処理し、 NameErrorエラーを回避し、正しい砂時計パターンを印刷できます。

以上がPythonで砂時計パターンを印刷するときにnameerrorエラーを解くにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Python:編集と解釈に深く掘り下げますPython:編集と解釈に深く掘り下げますMay 12, 2025 am 12:14 AM

pythonusesahybridmodelofcompilation andtertation:1)thepythoninterpretercompilessourcodeodeplatform-indopent bytecode.2)thepythonvirtualmachine(pvm)thenexecuteTesthisbytecode、balancingeaseoputhswithporformance。

Pythonは解釈されたものですか、それとも編集された言語であり、なぜそれが重要なのですか?Pythonは解釈されたものですか、それとも編集された言語であり、なぜそれが重要なのですか?May 12, 2025 am 12:09 AM

pythonisbothintersedand compiled.1)it'scompiledtobytecode forportabalityacrossplatforms.2)bytecodeisthenは解釈され、開発を許可します。

ループ対pythonのループの場合:説明されたキーの違いループ対pythonのループの場合:説明されたキーの違いMay 12, 2025 am 12:08 AM

loopsareideal whenyouwhenyouknumberofiterationsinadvance、foreleloopsarebetterforsituationsは、loopsaremoreedilaConditionismetを使用します

ループのために:実用的なガイドループのために:実用的なガイドMay 12, 2025 am 12:07 AM

henthenumber ofiterationsisknown advanceの場合、dopendonacondition.1)forloopsareideal foriterating over for -for -for -saredaverseversives likelistorarrays.2)whileopsaresupasiable forsaresutable forscenarioswheretheloopcontinupcontinuspificcond

Python:それは本当に解釈されていますか?神話を暴くPython:それは本当に解釈されていますか?神話を暴くMay 12, 2025 am 12:05 AM

pythonisnotpurelyLepted; itusesahybridapproachofbytecodecodecodecodecodecodedruntimerttation.1)pythoncompilessourcodeintobytecode、whodythepythonvirtualmachine(pvm).2)

同じ要素を持つPython Concatenateリスト同じ要素を持つPython ConcatenateリストMay 11, 2025 am 12:08 AM

ToconcatenateListsinpythothesheElements、使用:1)Operatortokeepduplicates、2)asettoremoveduplicates、or3)listcomplunting for controloverduplicates、各メトドハスディフェルフェルフェントパフォーマンスアンドソーダーインプリテーション。

解釈対編集言語:Pythonの場所解釈対編集言語:Pythonの場所May 11, 2025 am 12:07 AM

pythonisantertedlanguage、useaseofuseandflexibility-butfactingporformantationationsincriticalapplications.1)解釈されたlikepythonexecuteline-by-lineを解釈します

ループのために:Pythonでそれぞれを使用するのはいつですか?ループのために:Pythonでそれぞれを使用するのはいつですか?May 11, 2025 am 12:05 AM

Useforloopswhenthenumberofiterationsisknowninadvance、andwhiloopswheniterationsdependonacondition.1)forloopsareidealforsecenceslikelistoranges.2)

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター