鱼C论坛

 找回密码
 立即注册
查看: 2464|回复: 8

[已解决]Python小问题

[复制链接]
发表于 2019-9-24 13:15:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
想请教下大神们:
在Python中对输入的字符串长度有要求吗?还是最大到256?
还有如果我想要截取一个小数的前几位该如何操作啊,round貌似是只能四舍五入的操作,我想要原始的数据,应该用什么方法呢?
最佳答案
2019-9-25 20:30:59
1. 没有要求。
2. 可以这样:
  1. >>> num = 3.885556656
  2. >>> float(str(num)[:5])    # 取小数点后三位
  3. 3.885
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-9-24 13:22:30 | 显示全部楼层
没有要求
round传第二个参数:
  1. >>> round(5.643125613,2)
  2. 5.64
复制代码
第二个参数就是保留的位数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-24 13:22:42 | 显示全部楼层
我先来,字符串可以输很长,具体好长取决于你内存大小。
小数转成字符串就可以切片啦,想切哪就切哪
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-24 13:28:32 | 显示全部楼层
round函数语法中:round(number[, ndigits])
还有个可选参数控制精度,默认为None。



小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-25 17:30:42 | 显示全部楼层
不怎么摇滚 发表于 2019-9-24 13:22
我先来,字符串可以输很长,具体好长取决于你内存大小。
小数转成字符串就可以切片啦,想切哪就切哪

这样的话切出来不还是字符串吗?等于说是类型变化了啊,我想要的是小数,取小数点后面几位,但不要四舍五入:
>>> str = '3.1415926'
>>> str[0:4]
'3.14'
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-25 17:32:32 | 显示全部楼层
永恒的蓝色梦想 发表于 2019-9-24 13:22
没有要求
round传第二个参数:第二个参数就是保留的位数

谢谢您的回答。
但假如小数点后面的第三位要是大于5的话输出的就应该是5.65了,这不是我期望的,我想取出的是没有四舍五入的结果
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-25 17:51:44 From FishC Mobile | 显示全部楼层
旧城1003 发表于 2019-9-25 17:30
这样的话切出来不还是字符串吗?等于说是类型变化了啊,我想要的是小数,取小数点后面几位,但不要四舍五 ...

再转回来呗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-25 20:30:59 | 显示全部楼层    本楼为最佳答案   
1. 没有要求。
2. 可以这样:
  1. >>> num = 3.885556656
  2. >>> float(str(num)[:5])    # 取小数点后三位
  3. 3.885
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-26 00:39:23 | 显示全部楼层
  1. def turnc(decimal, number):
  2.     target = str(decimal)
  3.     parts = target.split('.', 1)
  4.     precision = parts[1][:number]

  5.     result = '{0}.{1}'.format(parts[0], precision)
  6.     return float(result)

  7. source = 3.1415926

  8. print('2位: {0}'.format(turnc(source, 2)))
  9. print('3位: {0}'.format(turnc(source, 3)))
  10. print('4位: {0}'.format(turnc(source, 4)))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-5 04:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表