質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

0回答

845閲覧

functionの連続、ループから脱出

SoojunBarng

総合スコア10

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/11/12 13:02

編集2022/01/12 10:55

総じて、テキストの中で、patternにマッチングする行を探し、それから得た値をずっと加工するようなプログラミングを書きたいと考えます。

やりたい事
・sub1()でK_infiniteをreturnしてもらい、K_infiniteを求める事
・sub2()でprompt_nuetron_life_timeををreturnしてもらい、prompt_nuetron_life_timeを求める事

問題
・sub1()の実行後に、sub2()は実効されません。
・errorを返してくれないので、更に難しいです

def sub1(): pattern = re.compile("plot of the estimated col/abs/track-length keff one standard deviation interval") with open (str(atomicnumber)+str(s)+str(t3-3)+"o","r") as file: # open file for reading text. for linenum, line in enumerate(file): # Keep track of line numbers. if pattern.search(line) != None: # If substring search finds a match, K_infinite_line = str(line) K_infinite = K_infinite_line[119:126] #print (line) #print (linenum) #print (K_infinite) return float(K_infinite) print ("hello13") def sub2(): pattern = re.compile("the final combined (col/abs/tl) prompt removal lifetime") with open (str(atomicnumber)+str(s)+str(t3-3)+"o","r") as file: # open file for reading text. for linenum, line in enumerate(file): # Keep track of line numbers. if pattern.search(line) != None: # If substring search finds a match, prompt_neutron_line = str(line) prompt_neutron_life_time_frontnumber = prompt_neutron_life_time_line[62:67] prompt_neutron_life_time_over = prompt_neutron_life_time_line[69:71] prompt_neutron_life_time = prompt_neutron_life_time_frontnumber * (10 ** prompt_neutron_life_time_over) #print (line) #print (linenum) print (line) print (prompt_neutron_line) return float(prompt_neutron_life_time) print("hello24")
t1 = 0 while (t1 < 11): x = 0 y = 0 t2 = 0 while ( t2 < len(Actinide_number[t1]) ): atomicnumber = Actinide_number[t1][t2] nuclide = Actinide_Word[t1] insert = Actinide[t1][0] target = str(insert) + str(atomicnumber) path = "D:/1111/"+str(nuclide) try: os.chdir(path) except: os.mkdir(path) os.chdir(path) # return to zero K_infinite_list = [] prompt_neutron_list = [] fission_area_list = [] assorbtion_area_list = [] nu_bar_list = [] t3 = 0 while (t3 < 9 ): dillution = 10 ** (t3-3) t4 = 0 while (t4 <9 ): dillusion2 = t4+1 dil = dillution * dillusion2 solution = "H2O" H_nuclide = dil H_nuclide2 = dil / dillution solution_H_number = 2 H_U = 200 / H_nuclide s = int(H_nuclide2) sub1() sub2() sub4() sub5() sub6() integrate1() integrate2() t4 += 1 t3 += 1 excel() t2 += 1 t1 += 1

でスクリプトを行った際に、
元々の意図であれば、
hello13
hello24
hello13
hello24
hello13
....
がでるべきなのに

hello13
hello13
hello13
hello13
hello13
hello13
hello13
でしかでません!

是非とも、助けて下さい!
お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2018/11/12 13:22

質門を編集して、<code>ボタンで、’’’の枠の中にコードを貼り付けてください
SoojunBarng

2018/11/12 13:23

ありがとうございます。
y_waiwai

2018/11/12 13:25

もいちど編集やり直しましょうw
y_waiwai

2018/11/12 13:25

おお、すばらしい
LouiS0616

2018/11/12 13:28

そもそも関数を呼び出している箇所が見当たらないのですが。
SoojunBarng

2018/11/12 13:29

すみません。全体を載せたかったのですが、全体が載せられませんでした。
SoojunBarng

2018/11/12 13:30

下にのコードを書く欄に、全体の概要コードを載せました
SoojunBarng

2018/11/12 13:30

どうか、お願い致します。
LouiS0616

2018/11/12 13:30

追記感謝します。続けてお聞きしたいのですが、sub2が呼び出されなかったと判断した理由は何でしょうか?
SoojunBarng

2018/11/12 13:35

はい!sub2()のprint(prom~)はプリントされませんでした。
SoojunBarng

2018/11/12 13:38

ルイさん!本文中でも説明を書きました1
LouiS0616

2018/11/12 13:45

え、print(prompt_neutron_line) も print("hello24") も実行されなかったってことでしょうか?
LouiS0616

2018/11/12 13:45

例外を握り潰しでもしない限り考えづらい挙動なのですが...
SoojunBarng

2018/11/12 13:51 編集

はいえ、print(prompt_neutron_line) も print("hello24") も実行されなかったってことでしょうか? はい、おっしゃる通りです。
LouiS0616

2018/11/13 00:44

それならば、ちょっと思い当たる点が無いですね。例外の握り潰しでジャンプが生じて居るとか、同名の別の関数が呼ばれているとか、そういうのは有りえそうな話ではありますが。
SoojunBarng

2018/11/14 02:26

Louisさん!真剣に考えて下さって大変ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問