2019.5.11
简单函数与字符操作
今天来仔细研究一下昨天Mark的10行代码小程序:温度转换和一些简单的操作
先上代码:
##temperature translation test
T = input('input the data with signal:')
if T[-1] in ["F","f"]:
C = (eval(T[0:-1])-32)/1.8
print("result is:{:.3f}C".format(C))
elif T[-1] in ["C","c"]:
F = (eval(T[0:-1])+32)*1.8
print("result is:{:.3f}F".format(F))
else:
print("data error")
运行结果:
>>> 输入带有符号的温度值:22c
>>> 61.20F
>>> 输入带有符号的温度值:45f
>>> -15.56C
Python 字符串操作(截取/替换/查找/分割)
- 字符截取
在这段代码中的T(-1)
表示了变量T的最后一个字符,而T[0:-1]
则表示变量T的第0个字符至不包括第-1位置的字符,相当于是去除了变量T的最后一个字符。
举个?
str = '12345678’
print str[0:1]
>> 1 # 输出str位置0开始到位置1以前的字符
print str[1:6]
>> 23456 # 输出str位置1开始到位置6以前的字符
num = 18
str = '0000' + str(num) # 合并字符串
print str[-5:] # 输出字符串右5位
>> 00018
Attention
Python语言的字符位置是从左侧0开始计数,右侧从-1开始计数
- 字符替换
# 例2:字符串替换
str = 'akakak'
str = str.replace('k',' 8') # 将字符串里的k全部替换为8
print str
>> 'a8a8a8' # 输出结果
- 字符查找
# 例3:字符串查找
str = 'a,hello'
print str.find('hello') # 在字符串str里查找字符串hello
>> 2 # 输出结果
- 字符分割
例4:字符分割
str = 'a,b,c,d'
strlist = str.split(',') # 用逗号分割str字符串,并保存到列表
for value in strlist: # 循环输出列表值
print value
>> a # 输出结果
>> b
>> c
>> d
简单函数
- eval()函数
if,elif,else函数已经非常常见,用法也很简单,注意要在句末加上“:”,否则会报错
eval函数的作用简单讲就是将输入的字符串转换为Python语句,并执行该语句。
比如在上面的代码中C = (eval(T[0:-1])-32)/1.8
如果用户输入的是102C,经过eval()函数处理后就变成了可进行数值运算的数值102
>>> Temp = "102C"
>>> eval(Temp[0;-1])
102
还有一种情况,eval("hello")
是会报错的,因为eval()函数会先去除两个引号,将其解释为一个变量,而之前并没有定义变量“hello”,因此会发生错误。
当输入>>> eval("'hello'")
,结果为'hello'
,此时函数内部的内容被解释为字符串。
- print()函数
print()函数的用法就不再赘述了 - 小数位选取
在上面代码中的print("result is:{:.3f}C".format(C))
,{:.2f}表示结果保留小数点后两位,这个是固定格式一个符号也不能少。format©则限定了输出和进行保留小数位操作的对象是变量C,f涉及到了Python中的数据类型为浮点型,也就是数学概念中的小数。