首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为列表赋值

为列表赋值
EN

Stack Overflow用户
提问于 2017-04-25 09:26:38
回答 1查看 19关注 0票数 1

语句"ai=GEH“没有将GEH的值赋给列表。为什么会这样呢?如果有人能告诉我我做错了什么,我将不胜感激。

代码:-

代码语言:javascript
复制
import os, sys
global rec

def interpret_string(s):
    if not isinstance(s, str):
        return str(s)
    if s.isdigit():
        return int(s)
    try:
        return float(s)
    except ValueError:
        return s

f= open("turn.prn","r")
f1=open('turn.out', 'a')

if f.mode == 'r':
    fl = f.readlines()

i = 0
a = [0.0] * 1000
rec = [0] * 1000

for x in fl:
    vol = interpret_string(x[90:96])
    ul1 = interpret_string(x[32:40])
    ul2 = interpret_string(x[41:49])

    if vol != str(x[90:96]):
        if vol > 0 and ul1 > 0:
            Diff = (((ul1 - vol) / ul1) ** 2) ** 0.5
            GEH  = (((2 * (ul1-vol)**2))/(ul1+vol))**0.5
            if GEH > 0.0 :
               a[i]=GEH
               rec[i] = i
               i=i+1
               print(i,a[i],rec[i],GEH)
f.close()
f1.close()

问候

栅格

EN

回答 1

Stack Overflow用户

发布于 2017-04-25 14:09:59

如果现在没有可能测试它,但是由于您似乎希望有一个包含" None“值(如果If不匹配)和"GEH”(如果匹配)的列表,我将使用"else“-语句并附加None。

代码语言:javascript
复制
import os, sys
global rec

def interpret_string(s):
    if not isinstance(s, str):
        return str(s)
    if s.isdigit():
        return int(s)
    try:
        return float(s)
    except ValueError:
        return s

f= open("turn.prn","r")
f1=open('turn.out', 'a')

if f.mode == 'r':
    fl = f.readlines()

i = 0
a = [0.0] * 1000
rec = [0] * 1000

for x in fl:
    vol = interpret_string(x[90:96])
    ul1 = interpret_string(x[32:40])
    ul2 = interpret_string(x[41:49])

    if vol != str(x[90:96]):
        if vol > 0 and ul1 > 0:
            prin = false # This will trigger the print only if the if-
                         # condition is met
            Diff = (((ul1 - vol) / ul1) ** 2) ** 0.5
            GEH  = (((2 * (ul1-vol)**2))/(ul1+vol))**0.5
            if GEH > 0.0 :
               a.append(GEH)
               prin = true
            else :
               a.append(None)
            rec[i] = i
            i=i+1
            if prin :
                print(i,a[i],rec[i],GEH)
f.close()
f1.close()

很抱歉打印出乱七八糟的"if“--这是我能想到的最简单的方法;)。正如我所说的,我不能测试,但我认为这可以工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43600099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档