Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 以10为基数的int()的文本无效:';328.94';(将字节转换为int()时)_Python_Python 3.x_Serial Port_Byte_Arduino Uno - Fatal编程技术网

Python 以10为基数的int()的文本无效:';328.94';(将字节转换为int()时)

Python 以10为基数的int()的文本无效:';328.94';(将字节转换为int()时),python,python-3.x,serial-port,byte,arduino-uno,Python,Python 3.x,Serial Port,Byte,Arduino Uno,这是我的代码: import serial print('Arduino is setting up') # Setting up the Arduino board arduinoSerialData = serial.Serial('com4', 9600) while True: if arduinoSerialData.inWaiting() > 1: myData = arduinoSerialData.readline() myDat

这是我的代码:

import serial

print('Arduino is setting up')
# Setting up the Arduino board

arduinoSerialData = serial.Serial('com4', 9600)
while True:
    if arduinoSerialData.inWaiting() > 1:
        myData = arduinoSerialData.readline()
        myData = str(myData)
        myData = myData.replace("b'", '')
        myData = myData.replace("\\r\\n'", '')
        myData1=myData
        if myData1.find("a"):
            myData1= myData1.replace("a",str(0))
            if int(myData1)<100:
                print(myData)
导入序列号
打印(‘Arduino正在设置’)
#设立Arduino董事会
arduinoSerialData=serial.serial('com4',9600)
尽管如此:
如果arduinoSerialData.inWaiting()>1:
myData=arduinoSerialData.readline()
myData=str(myData)
myData=myData.replace(“b'”,)
myData=myData.replace(“\\r\\n”“,”)
myData1=myData
如果myData1.find(“a”):
myData1=myData1.replace(“a”,str(0))
如果int(myData1)如果给
int()
一个字符串,则它必须是一个整数。如果您有一个非整数,可以先用
float()
将其转换,然后使用
int()
将该浮点值转换为整数,如下所示:

>>> print(int("328.94"))               # Will not work.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '328.94'

>>> print(float("328.94"))             # Convert string to float.
328.94

>>> print(int(float("328.94")))        # Convert string to float to int.
328

>>> print(int(float("328.94") + 0.5))  # Same but rounded.
329
>打印(int(“328.94”)#将无法工作。
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:基数为10的int()的文本无效:“328.94”
>>>打印(浮点(“328.94”)#将字符串转换为浮点。
328.94
>>>打印(int(float(“328.94”))#将字符串转换为float到int。
328
>>>打印(整数(浮点(“328.94”)+0.5))#相同但四舍五入。
329

如果希望将最后一个整数舍入到最接近的整数,而不是截断,则可以选择最后一个。

字节到字符串的转换似乎不正确。为什么不试试这个:

1. Bytes to string conversion:
   mydata  = myData.decode("utf-8")

2. Eliminatinf trailing newline characters:
   myData = myData.strip("\r\n")
确保生成的字符串仅包含要转换为int的数字字符。您可以执行以下检查:

if mydata1.isdigit() and int(mydata1) < 100:
    <your code>
如果mydata1.isdigit()和int(mydata1)<100:
如果ur字符串包含浮点数,则可以执行以下操作:

if mydata1.replace(".", "").isdigit() and int(float(mydata1)) < 100:
如果mydata1.replace(“.”,“”)。isdigit()和int(float(mydata1))<100:

改用
float()
?哇,好吧,这很管用,但有没有合适的方法将其转换为float?我尝试了网上给出的方法,但都不管用。如果你不告诉我们返回数据的格式,你必须检查你使用的硬件/代码的文档,如果你不是自己编写的。如果该值是一个浮点值,并按实际情况以字符串形式返回,那么这是正确的方法。