Python语法里的坑收集

坑一:进行计算时先要定义变量,否则计算会报错

对于只学过C的新手(比如我),会默认为设置一个变量后其默认值为零,但是python里并不是这样

sum+=1

新手可能会认为这样的输出结果是:1,but too naive,这样的结果如下:

"C:\Users\DELL\Desktop\python practice\test\venv\Scripts\python.exe" "C:/Users/DELL/Desktop/python practice/实验/实验.py"
Traceback (most recent call last):
  File "C:/Users/DELL/Desktop/python practice/实验/实验.py", line 1, in <module>
    sum+=1
TypeError: unsupported operand type(s) for +=: 'builtin_function_or_method' and 'int'

这种情况其实也有很多帖子说过,大概是因为在使用C的时候,我们要使用变量必须提前申明,比如 int a 这种形式,实际上这是使变量默认值为1 的关键步骤,python中变量申明不是向C那样非常明显,所以只学过C的新手与可能会掉进这个坑,当然理论学的好的人应该会好些。

正确操作

sum=0	#变量初始化,也是变量申明
sum+=1

坑二:range()函数参数认定为int型,无法输入浮点数

for i in range(0.5,3.0,0.1):
    print(i)

输出结果:

"C:\Users\DELL\Desktop\python practice\test\venv\Scripts\python.exe" "C:/Users/DELL/Desktop/python practice/实验/实验.py"
Traceback (most recent call last):
  File "C:/Users/DELL/Desktop/python practice/实验/实验.py", line 1, in <module>
    for i in range(0.5,3.0,1):
TypeError: 'float' object cannot be interpreted as an integer

如果在数值上想实现小数输入,可以写为s=[i/2 for i in range(1,3)]
效果如下:

s=[i/2.0 for i in range(1,3)]
print(s)

运行结果:

[0.5, 1.0]

采用numpy模块,可轻松实现小数输入操作,步长值也可以为小数

import numpy
s=numpy.arange(0.1,0.3,0.1)
print(s)

运行结果:

[0.1 0.2]

不过这样得出的结果实际上是一个数组,而非列表,numpy模块的引入实际上就是引入了数组,利用数组来达成目的。

print(type(s))

运行结果:

<class 'numpy.ndarray'>

具体操作可以看这里https://stackoverflow.com/questions/477486/how-to-use-a-decimal-range-step-value

待更新···

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值