1

了解しました。rootStringとして定義された文字列を次のように作成する必要があります。

F:0.0

文字Fは、次の方法で取得された前の文字列から派生しています。

root = str(newickString[-1])

そして、float0.0は次のようになります。

rootD = 0.0

私の質問は、変数名と浮動小数点数の両方をコロンで組み合わせるにはどうすればよいですか?

4

6 に答える 6

3
>>> string = 'WWF'
>>> num = 0.0
>>> print ("{0}:{1}".format(string[-1],num))
F:0.0

古いバージョンの Python (<2.6) では、次のことを行う必要があります。

"%s:%s" % (string[-1], num)

それ以外の

"{0}:{1}".format(string[-1],num)
于 2012-06-28T20:28:08.820 に答える
1

記号を使用して、+それらを連結することができます:

>>> old_string = 'oldF'
>>> float_val = 0.0
>>> rootString = old_string[-1] + ':' + str(float_val)
>>> print rootString
F:0.0
于 2012-06-28T20:26:44.307 に答える
1

Python での文字列補間は非常に単純です。Python のほとんどのバージョンでは、次のように記述できます。

template = "%s:%f"
root = "F"
rootD = 0.0
result = template % (root, rootD)
# and result is "F:0.0"

http://docs.python.org/library/stdtypes.html#string-formattingをご覧ください

(十分に新しいバージョンの Python を使用している場合は、文字列に対して新しい.formatメソッドを使用することをお勧めします。http://docs.python.org/library/string.html#new-string-formatting を参照してください)

于 2012-06-28T20:29:07.427 に答える
0

文字列として格納する変数(または提案されている他のいくつかのメソッド)が必要な場合:

rootString = "%s:%s" % (root,rootD)

後で値を使用/変更することを計画している場合は、このサンプルコードのようにクラスを設定する方がよい場合があります(さらに、文字列を簡単に出力できます)。

class rootString:
    def __init__(self,root,rootD):
    self.root = root
    self.rootD = rootD

    def getRoot(self):
    return self.root

    def getRootD(self):
    return self.rootD

    def setRoot(self, root):
        self.root = root

    def setRootD(self, rootD):
        self.rootD = rootD

    def __str__(self):
    return "%s:%s" % (self.root,self.rootD)

if __name__=='__main__': 
    myRootStr = rootString("F",0.0)
    print myRootStr #gives string output you want                                                                                                                                                                                                                             
    print myRootStr.getRootD() #but you can still get the float easily                                                                                                                                                                                                        
    myRootStr.setRootD(3.14) #or change it if you need to                                                                                                                                                                                                                     
    print myRootStr
于 2012-06-28T20:41:50.200 に答える
0

2 つの値を結合して出力する方法を次に示します。

string_value = 'BOF'
float_value = 0.0
print "%s:%s" % (string_value[-1], float_value)
>>F:0.0
于 2012-06-28T20:25:26.510 に答える
0

これを試して:

'%s:%0.1f' % (root, rootD)

文字列の書式設定について詳しくは、こちらをご覧ください。

于 2012-06-28T20:26:48.987 に答える