baltfart
@baltfart

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

出力結果が足りない

解決したいこと

問題で、
新しくName,StudentNumber,Scoreの変数を持つpクラスを定義。
pを使って、変数xを作成。
xの変数Nameに任意の文字列、StudentNumberとScoreに数値をキー入力。
Nameに'end'が入力されるまで変数xを追加。
という問題でStudentNumberとScoreが出力されなくて困っています。
このサイトでこういう質問をしてはいけないと思いますが、どこが間違っていてどこが違うのか教えて下さい。

発生している問題・エラー

出ているエラーメッセージを入力

例)

NameError (uninitialized constant World)

または、問題・エラーが起きている画像をここにドラッグアンドドロップ

該当するソースコード

ソースコードを入力

例)

class p(object): 
  __slots__ = ( 'Name' , 'StudentNumber' , 'Score' )
x = p()
x.Name = input('>')
x.StudentNumber = int(input('>'))
x.Score = int(input('>'))
x = p()
top = x
x.Name = input('Name>')
x.StudentNumber = None
x.Score = None
while x.Name != 'end':
	x.StudentNumber = p()
	x = x.StudentNumber
	x.Name = input('Name>')
	x.StudentNumber = None
x = top
while x.StudentNumber!=None:
	print( x.Name )
	x=x.StudentNumber

自分で試したこと

ここに問題・エラーに対して試したことを記載してください。

0

2Answer

StudentNumberとScoreが出力されなくて困っています。

コードを見る限り、そもそもこれらを出力(print)している個所はないようですが。
期待する結果はどのようなものなのでしょうか?

0Like

Comments

  1. @baltfart

    Questioner

    上から順に
    Name
    StudentNumber
    Score
    Name
    Name
    で出力したいです。
    (Scoreの後のNameは何回でもいいです)

Name、StudentNumber、Scoreを入力させた後にxを初期化してしまっているので、最初の入力がなかったことになっています。

x = p()
x.Name = input('>')
x.StudentNumber = int(input('>'))
x.Score = int(input('>'))
x = p() # ←ここでxが初期化されている

ソースを見たところ処理の流れがごちゃごちゃなってる感じがします。
日本語でやりたいことを書き出してみて、上から一つずつコードに起こしてみるとやりたいことをきれいに実装できると思います。

0Like

Comments

  1. @baltfart

    Questioner

    ご丁寧にありがとうございます。

Your answer might help someone💌