MicroPython学习笔记(一) 格式字符串

本文介绍了在移远EC600X开发板上使用QPYcom工具,对比讲解了Python中的格式化字符串方法,包括占位符、format和f-string,并特别提到了在EC600X上f-string的不支持情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.实验平台

开发板:移远EC600X_QuecPython_EVB_V2.0

开发工具:QPYcom

2.格式化字符串

一个常见的问题是怎么输出格式化字符串,在c语言中我们常用printf输出格式化字符串,而在python中常用的格式化字符串有下面两种:

(1)占位符

跟c语言一样可以在print中使用占位符,常使用的占位符如下:

常用占位符
%d整型
%rrepr 显示raw data
%s字符串
%f浮点型
%x十六进制

测试代码如下:

str1 = "hello world"

Pi   = 3.14159265

numbers = 77

print("numbers = %d,PI= %f,string = %s,hex = %x,repr = %r"%(numbers,Pi,str1,numbers,str1))

通过工具QPYcom_V2.0下载到开发板中并执行代码,结果如下:

example.exec('usr/micro_python_test.py')
numbers = 77,PI= 3.141593,string = hello world,hex = 4d,repr = 'hello world'

       可以发现%运算符是用来格式化字符串,使用% + 不同的后缀可以实现格式化不同类型。其中要注意%s和%r的用法。在使用%f时需要注意丢失精度问题。

(2)format 方法

      format方法是一种string格式化方法,使用{x}来代替%占位符。具体用法如下:

str1 = "hello world"

Pi   = 3.14159265

numbers = 77

#print("numbers = %d,PI= %f,string = %s,hex = %x,repr = %r"%(numbers,Pi,str1,numbers,str1))

print("numbers = {0},PI= {1},string = {2}".format(numbers,Pi,str1))


#结果如下:
example.exec('usr/micro_python_test.py')
numbers = 77,PI= 3.14159265,string = hello world

可以看到PI的精度被完整保留下来了。

(3)f-string

  f-string是另一种格式化字符串的方法,其优点是只要使用{xxxx}就可以实现xxxx变量的替换,并且还可以控制精度比如:{Pi:05.2f} 测试结果如下:


str1 = "hello world"

Pi   = 3.14159265

numbers = 77

#print("numbers = %d,PI= %f,string = %s,hex = %x,repr = %r"%(numbers,Pi,str1,numbers,str1))

#print("numbers = {0},PI= {1},string = {2}".format(numbers,Pi,str1))

print(f"numbers = {numbers},PI= {Pi:05.2f},string = {str1}")


#测试结果如下:
example.exec('usr/micro_python_test.py')
Traceback (most recent call last):
  File "/usr/micro_python_test.py", line 12
SyntaxError: invalid syntax

     实际测试报错,询问客服EC600X并不支持f-string格式化字符串。

3.总结

    实际开发中使用格式化字符串debug相当便利,使用占位符还是format方法,仁者见仁智者见智啦。当然如果您不知道该用什么,使用%s将永远起作用,它可以把任何数据类型转换成字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值