python练习一(对txt文本的操作:切割,切片,格式化输出)

题目一:计算手机销量年增长率
‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬
**

描述

**
1.文件smartphone.txt存放着某些公司手机年销量数据,每行为每家公司若干年销量(百万),数据间的分隔符为制表符。
2.打开文件请注明文件编码格式:with open(“smartPhone.txt”,encoding=“gbk”) as f:
3.编写函数isBigGrowth(L,rate),形参L为一组含有数值型数据的列表(某公司各年份的销量),rate为年增长率,判断并返回是否年销量快速增长:若每年销量增长率都超过给定的rate,则为True,否则为False。
4.主程序读取smartphone.txt内的数据,将每行数据中的年销量转为数值型数据,利用函数isBigGrowth(L,rate)计算并屏幕输出各公司年销量是否快速增长的情况(本题设年销量增长率均超过30%为快速增长),各数据间以制表符相隔。
5.程序运行结果如下图所示:

手机公司 是否快速增长?
Samsung 否
Apple 否
Huawei 否
OPPO 快速
Vivo 快速
ZTE 否
LG 否
Lenovo 否
Xiaomi 否

步骤
按行读取TXT文件

fname = ‘./新建文件夹/yob2010.txt’ //文件夹路径

with open(fname,‘r+’,encoding=‘utf-8’) as f:

for line in f.readlines():    //按行读取每行
		print(line[:-1].split(',')) //切片去掉换行符,再以‘,’分割字符串 ,得到一个列表
//以空格则是solit('\t')
s = [i[:-1].split(',') for i in f.readlines()]    //列表生成器,将文件每行数据按上述方法处理后放入列表

 
	# print(s)

构造函数

def isBigGrowth(L,rate):
    f=True;
    for i in range(0,len(L)-1):
        rrate=(L[i+1]-L[i])/L[i]
        if(rrate<rate):
            f=False
    if(f):        
        return '快速'
    else:
        return '否'

完整代码

def isBigGrowth(L,rate):
    f=True;
    for i in range(0,len(L)-1):
        rrate=(L[i+1]-L[i])/L[i]
        if(rrate<rate):
            f=False
    if(f):        
        return '快速'
    else:
        return '否'

with open("smartPhone.txt",encoding="gbk") as f:
     print('手机公司  是否快速增长?')
     s = [i[:-1].split('\t') for i in f.readlines()]
     for i in range(1,len(s)):
         L=[]
         for j in range(1,len(s[i])):
             L.append(float(s[i][j]))
         print('{}       {}'.format(s[i][0],isBigGrowth(L,0.3)))

运行结果

python练习一(对txt文本的操作:切割,切片,格式化输出)_第1张图片

你可能感兴趣的:(python,python)