嗨 各位大大 我將程式碼改成這樣,有計算出結果了,可是會一直顯示出0,請問為甚麼會這樣?!
c#
class Program
{
static void Main(string[] args)
{
System.Timers.Timer timer = new System.Timers.Timer();
timer.Enabled = true;
timer.Interval = 3000;
timer.Start();
timer.Elapsed += new System.Timers.ElapsedEventHandler(test);
Console.ReadKey();
}
private static void test(object source, ElapsedEventArgs e)
{
string line;
System.IO.StreamReader file = new System.IO.StreamReader(@"C:\Users\wkj88\Desktop\teraterm.txt");
while ((line = file.ReadToEnd()) != null)
{
ScriptRuntime pyRunTime = Python.CreateRuntime();
dynamic obj = pyRunTime.UseFile(@"C:\Users\wkj88\hello.py");
Console.Write(obj.welcome(line));
}
file.Close();
Console.ReadKey();
}
}
python
def welcome(rms):
a = rms.replace('\r\n','')
results = list(map(int, a))
return sum(results)
看起來問題出在 Python 腳本中的數據處理方式上。
函數 "welcome" 使用 "replace" 方法將所有字符串 "\r\n" 替換為空字符串,但這不是將字符串分割為單獨值的正確方法。
要將字符串分割為單獨值,您可以使用 "split" 方法。
def welcome(rms):
results = list(map(int, rms.split('\r\n')))
return sum(results)