python2.7 的 Built-in Functions 文档连接
字符串的索引、切片
感觉很像c语言里的数组,但比数组更方便,而且还不会有数组越界的情况。切片就是取子串。以串“32F”为例。
0:2即从下角标0开始切到第下角标2之前,从而得到32F的子串32
0:-1切出来的是从下角标0到最后1个字符之前的切片,32F中去掉最后一个字符F的子串为32
所以 0:2 和 0:-1 都可以得到数字部分32
val='32F'
print val[0:-1]
print val[0:2]
print val[0:3]
print val[0]
print val[-3]
32
32
32F
3
3
北理工mooc的小例子
#coding=utf-8
val = input()
if val[-1] in ['C','c']:
f=1.8*float(val[0:-1])+32
print ("转换后的温度为:%.2fF"%f)
elif val[-1] in ['F','f']:
c=(float(val[0:-1])-32)/1.8
print ("转换后的温度为: %.2fC"%c)
else:
print("输入有误")
sample input:’32C’
sample output: 转换后的温度为:89.60F
运行上面这个程序的时候,如果是python2,那么应该输入’32C’,如果是python3,那么应该输入32C,而不用加引号。
解释:如果在python2中直接输入32C,而不是加引号的’32C’,那么就会报语法错误,因为它默认为int型,加引号后它识别为字符串型。但python3好像可以直接识别为字符串型,即输入32C,它会自动识别为’32C’
因为我用的是python2,所以为了方便,我做了一下小改进。直接使用了返回字符串型的raw_input(),raw的英文意思是生的,未加工的,raw_input()也大概就是最基础的输入。
#coding=utf-8
val = raw_input() #只是改了这一行
if val[-1] in ['C','c']:
f=1.8*float(val[0:-1])+32
print ("转换后的温度为:%.2fF"%f)
elif val[-1] in ['F','f']:
c=(float(val[0:-1])-32)/1.8
print ("转换后的温度为: %.2fC"%c)
else:
print("输入有误")
sample input:32C
sample output: 转换后的温度为:89.60F
查看python2.7 input()函数说明后看到Equivalent to eval(raw_input(prompt)).也就是说input()等价于eval(raw_input())
提到了eval(),那就小程序调试一下…毕竟是新手我怕自己忘,方便自己以后看
print eval("3+2")
print eval('3+2')
输出:
5
5
目前对eval()的认识就是将字符串当成表达式进行计算。好像python里单引号和双引号的字符串没什么区别啊。