1.试验任务1
1 x = 'nba FIFA' 2 print(x.upper()) # 字符串转大写 3 print(x.lower()) # 字符串转小写 4 print(x.swapcase()) # 字符串大小写互换 5 print() 6 x = 'abc' 7 print(x.center(10, '*')) # 字符串居中,宽度10列,不足左右补*号 8 print(x.ljust(10, '*')) # 字符串居左,宽度10列,不足右边补*号 9 print(x.rjust(10, '*')) # 字符串居右,宽度10列,不足左边补*号 10 print() 11 x = '123' 12 print(x.zfill(10)) # 字符串宽度10列,不足左边用0填充 13 x = 123 14 print(str(x).zfill(10)) # 把int类型转换成字符串类型后,对字符串对象使用str.zfill()方法 15 print() 16 x = 'phone_number' 17 print(x.isidentifier()) # 判断字符串是否是python合法标识符 18 x = '222test' 19 print(x.isidentifier()) 20 print() 21 x = ' ' 22 print(x.isspace()) # 判断字符串是否是空白符(包括空格、回车、Tab键) 23 x = '\n' 24 print(x.isspace()) 25 print() 26 x = 'python is fun' 27 table = x.maketrans('thon', '1234') # 为字符串对象x创建一个字符映射表, 字符thon分别映射到字符1234 28 print(x.translate(table)) # 根据字符映射表table对字符串对象x中的字符进行转换
运行结果如图:
2.实验任务2
1 x = [5,11,9,7,42] 2 3 print('整数输出1:',end = '') 4 i = 0 5 while i <len(x): 6 print(x[i],end = ' ') 7 i += 1 8 9 print('\n整数输出2:',end = '') 10 i = 0 11 while i < len(x): 12 print(f'{x[i]:02d}',end = '-') #指定每个整数宽度占2列;不足2列,左边补0 13 i += 1 14 15 print('\n整数输出3:',end = '') 16 i = 0 17 while i < len(x) - 1: 18 print(f'{x[i]:02d}',end = '-') 19 i += 1 20 print(f'{x[-1]:02d}') 21 22 print('\n字符输出1:',end = '') 23 y1 = [] 24 i = 0 25 while i < len(x): 26 y1.append(str(x[i])) #函数str()用于吧其他类型对象转换成字符串对象 27 i += 1 28 print('-'.join(y1)) 29 30 print('字符输出2:',end = '') 31 y2 = [] 32 i = 0 33 while i < len(x): 34 y2.append(str(x[i]).zfill(2)) #x[i]是int类型对象,使用str()转换成字符串对象后处理,然后加到列表中 35 i += 1 36 print('-'.join(y2))
运行结果如图:
换一组数据后:
3.实验任务3
1 # 把姓名转换成大写,分行输出 2 3 name_list = ['david bowie', 'louis armstrong', 'leonard cohen', 'bob dylan','cocteau twins'] 4 5 #方法1 6 i = 0 7 while i < len(name_list): 8 print(name_list[i].title()) 9 i += 1 10 print() 11 12 #方法2 13 t = [] 14 i = 0 15 while i < len(name_list): 16 t.append(name_list[i].title()) 17 i += 1 18 19 print('\n'.join(t))
实验结果如图:
4.实验任务4
name_list = sorted(['david bowie', 'louis armstrong', 'leonard cohen', 'bob dylan','cocteau twins']) i = 0 while i < len(name_list): print(f'{i+1}.',name_list[i].title()) i += 1
运行结果如图:
5.实验任务5
1 #在交互式界面输入import this,敲回车后,将内容复制过来 2 text = '''The Zen of Python, by Tim Peters 3 4 Beautiful is better than ugly. 5 Explicit is better than implicit. 6 Simple is better than complex. 7 Complex is better than complicated. 8 Flat is better than nested. 9 Sparse is better than dense. 10 Readability counts. 11 Special cases aren't special enough to break the rules. 12 Although practicality beats purity. 13 Errors should never pass silently. 14 Unless explicitly silenced. 15 In the face of ambiguity, refuse the temptation to guess. 16 There should be one-- and preferably only one --obvious way to do it. 17 Although that way may not be obvious at first unless you're Dutch. 18 Now is better than never. 19 Although never is often better than *right* now. 20 If the implementation is hard to explain, it's a bad idea. 21 If the implementation is easy to explain, it may be a good idea. 22 Namespaces are one honking great idea -- let's do more of those!''' 23 linenum=0 24 letternum=0 25 strinum=0 26 spacenum=0 27 linenum=text.count('\n')+1 28 print(f'行数是:{linenum}') 29 for i in text: 30 if i==' ': 31 spacenum+=1 32 print(f'单词数是:{len(text.split())}') 33 print(f'字符数是:{len(text)}') 34 print(f'空格数是:{spacenum}')
运行结果如图:
6.实验任务6
1 title = '图书信息' 2 print(title.center(44, '*')) 3 book_list = [['静静的顿河','肖洛霍夫','金人', '人民文学出版社'], 4 ['大地之上','罗欣顿.米斯特里','张亦琦', '天地出版社'], 5 ['夜航西飞', '柏瑞尔.马卡姆', '陶立夏', '人民文学出版社'], 6 ['来自民间的叛逆', '袁越', '','新星出版社'], 7 ['科技与恶的距离', '珍妮.克里曼', ' 詹蕎語', '墨刻出版社'], 8 ['灯塔','克里斯多夫.夏布特','吕俊君','北京联合出版公司'], 9 ['小行星掉在下午','沈大成', '', '广西师范大学出版社']] 10 11 for index,book in enumerate(book_list): 12 print(f'{index+1}.《{book[0]}》|{book[1]}|{book[3]}')
运行结果如图:
7.实验任务 7
1 x = int(input()) 2 i = 2 3 while True: 4 if x < 2: 5 print(False) 6 break 7 elif x == 2: 8 print(True) 9 break 10 elif x > 2: 11 y = x % i 12 i += 1 13 if y == 0 or i > x - 1: 14 if y == 0: 15 print(False) 16 break 17 else: 18 print(True) 19 break
运行结果如图:
8.实验任务8
1 words_sensitive_list = ['张三', 'V字仇杀队', '杀'] 2 comments_list = ['张三因生命受到威胁正当防卫导致过失杀人,经辩护律师努力,张三不需负刑事责任。', 3 '电影<V字仇杀队>从豆瓣下架了', 4 '娱乐至死'] 5 ans = '\n'.join(comments_list) 6 for i in words_sensitive_list: 7 j = i.rstrip() 8 if j in ans: 9 num = len(j) 10 ans = ans.replace(j,'*'*num) 11 else: 12 print(ans)
运行结果如图:
9.实验任务9
task9-1
1 """ 2 家用电器销售系统 3 v1.1 4 """ 5 6 #欢迎信息 7 print('欢迎使用家用电器销售系统!') 8 9 #产品信息列表 10 print('产品和价格信息如下:') 11 print('******************************************************************************') 12 print('%-10s'%'编号','%-10s'%'名称','%-10s'%'品牌','%-10s'%'库存数量') 13 print('------------------------------------------------------------------------------') 14 print('%-10s'%'0001','%-10s'%'电视机','%-10s'%'海尔','%10.2f'%5999.00,'%10d'%20) 15 print('%-10s'%'0002','%-10s'%'冰箱','%-10s'%'西门子','%10.2f'%6998.00,'%10d'%15) 16 print('%-10s'%'0003','%-10s'%'洗衣机','%-10s'%'小天鹅','%10.2f'%1999.00,'%10d'%10) 17 print('%-10s'%'0004','%-10s'%'空调','%-10s'%'格力','%10.2f'%3900.00,'%10d'%0) 18 print('%-10s'%'0005','%-10s'%'热水器','%-10s'%'美的','%10.2f'%688.00,'%10d'%30) 19 print('%-10s'%'0006','%-10s'%'笔记本','%-10s'%'联想','%10.2f'%5699.00,'%10d'%10) 20 print('%-10s'%'0007','%-10s'%'微波炉','%-10s'%'苏泊尔','%10.2f'%480.50,'%10d'%33) 21 print('%-10s'%'0008','%-10s'%'投影仪','%-10s'%'松下','%10.2f'%1250.00,'%10d'%12) 22 print('%-10s'%'0009','%-10s'%'吸尘器','%-10s'%'飞利浦','%10.2f'%999.00,'%10d'%9) 23 print('------------------------------------------------------------------------------') 24 25 #商品数据 26 products = [ 27 ['0001','电视机','海尔',5999.00,20], 28 ['0002','冰箱','西门子',6998.00,15], 29 ['0003','洗衣机','小天鹅',1999.00,10], 30 ['0004','空调','格力',3900.00,0], 31 ['0005','热水器','格力',680.00,30], 32 ['0006','笔记本','联想',5699.00,10], 33 ['0007','微波炉','苏泊尔',480.00,33], 34 ['0008','投影仪','松下',1250.00,12], 35 ['0009','吸尘器','飞利浦',999.00,9], 36 ] 37 38 #用户输入信息 39 product_id = input('请输入您要购买的产品编号:') 40 count = int(input('请输入您要购买的 产品数量:')) 41 42 #获取编号对应商品的信息 43 product_index = len(product_id) - 1 44 product = products[product_index] 45 46 #计算金额 47 print('购买成功,您需要支付',product[3]*count,'元') 48 49 #退出系统 50 print('谢谢您的光临 ,下次再见!')
运行结果如图:
可以看到结果明显错误,正确的价格应为5999.00元
检查代码后发现,在line39中输入商品编码总为字符形式的000x,导致line43的product-index始终为3,即结果对应编号为0004的商品,
对照结果也可证明
因此在line39将输入的数据用int()取整,并将line43改写为product_index = product_id - 1
修改后的代码为:
1 """ 2 家用电器销售系统 3 v1.1 4 """ 5 6 #欢迎信息 7 print('欢迎使用家用电器销售系统!') 8 9 #产品信息列表 10 print('产品和价格信息如下:') 11 print('******************************************************************************') 12 print('%-10s'%'编号','%-10s'%'名称','%-10s'%'品牌','%-10s'%'库存数量') 13 print('------------------------------------------------------------------------------') 14 print('%-10s'%'0001','%-10s'%'电视机','%-10s'%'海尔','%10.2f'%5999.00,'%10d'%20) 15 print('%-10s'%'0002','%-10s'%'冰箱','%-10s'%'西门子','%10.2f'%6998.00,'%10d'%15) 16 print('%-10s'%'0003','%-10s'%'洗衣机','%-10s'%'小天鹅','%10.2f'%1999.00,'%10d'%10) 17 print('%-10s'%'0004','%-10s'%'空调','%-10s'%'格力','%10.2f'%3900.00,'%10d'%0) 18 print('%-10s'%'0005','%-10s'%'热水器','%-10s'%'美的','%10.2f'%688.00,'%10d'%30) 19 print('%-10s'%'0006','%-10s'%'笔记本','%-10s'%'联想','%10.2f'%5699.00,'%10d'%10) 20 print('%-10s'%'0007','%-10s'%'微波炉','%-10s'%'苏泊尔','%10.2f'%480.50,'%10d'%33) 21 print('%-10s'%'0008','%-10s'%'投影仪','%-10s'%'松下','%10.2f'%1250.00,'%10d'%12) 22 print('%-10s'%'0009','%-10s'%'吸尘器','%-10s'%'飞利浦','%10.2f'%999.00,'%10d'%9) 23 print('------------------------------------------------------------------------------') 24 25 #商品数据 26 products = [ 27 ['0001','电视机','海尔',5999.00,20], 28 ['0002','冰箱','西门子',6998.00,15], 29 ['0003','洗衣机','小天鹅',1999.00,10], 30 ['0004','空调','格力',3900.00,0], 31 ['0005','热水器','格力',680.00,30], 32 ['0006','笔记本','联想',5699.00,10], 33 ['0007','微波炉','苏泊尔',480.00,33], 34 ['0008','投影仪','松下',1250.00,12], 35 ['0009','吸尘器','飞利浦',999.00,9], 36 ] 37 38 #用户输入信息 39 product_id = int(input('请输入您要购买的产品编号:')) 40 count = int(input('请输入您要购买的 产品数量:')) 41 42 #获取编号对应商品的信息 43 product_index = product_id - 1 44 product = products[product_index] 45 46 #计算金额 47 print('购买成功,您需要支付',product[3]*count,'元') 48 49 #退出系统 50 print('谢谢您的光临 ,下次再见!')
运行结果如图:
task9-2
1 """ 2 家用电器销售系统 3 v1.1 4 """ 5 6 #欢迎信息 7 print('欢迎使用家用电器销售系统!') 8 9 #首先建立产品信息 10 products = [ 11 ['0001','电视机','海尔',5999.00,20], 12 ['0002','冰箱','西门子',6998.00,15], 13 ['0003','洗衣机','小天鹅',1999.00,10], 14 ['0004','空调','格力',3900.00,0], 15 ['0005','热水器','格力',680.00,30], 16 ['0006','笔记本','联想',5699.00,10], 17 ['0007','微波炉','苏泊尔',480.00,33], 18 ['0008','投影仪','松下',1250.00,12], 19 ['0009','吸尘器','飞利浦',999.00,9], 20 ] 21 22 #用索引循环方式打印商品信息 23 print('产品和价格信息如下:') 24 print('*'*57) 25 print(f'{"编号":<10} {"名称":<10} {"品牌":<10} {"价格":<10} {"库存数量":<10}') 26 print('-'*58) 27 i = 0 28 while i < 9: 29 print(f'{products[i][0]:<10} {products[i][1]:<10} {products[i][2]:<10} {products[i][3]:.2f} {products[i][4]:10}') 30 i += 1 31 print('-'*58) 32 33 #用户输入信息 34 product_id = int(input('请输入您要购买的产品编号:')) 35 count = int(input('请输入您要购买的 产品数量:')) 36 37 #获取编号对应商品的信息 38 product_index = product_id - 1 39 product = products[product_index] 40 41 #计算金额 42 print('购买成功,您需要支付',product[3]*count,'元') 43 44 #退出系统 45 print('谢谢您的光临 ,下次再见!')
运行结果如图:
实验总结
在本次实验中,我继续学习了python中字符串和列表的知识,并结合循环、判断对字符和列表进行更多应用。我一直认为
字符串部分的内容很枯燥,因为它的知识点很零散,有许多需要记忆的格式等,不像结构通常运用逻辑来解决问题显得有趣,
直观,容易理解。但事实上计算机的字符串因为其自身的特点,配合一些函数,有时可以在代码体量上优于一些逻辑结构。我
现在只能在写代码的过程中隐约感受到这一点,因为它实在是太灵活了,我只能从生活中的逻辑思维出发,将其复现并联想学习
过的内容后进行优化,不能以计算机的思维进行思考。我觉得这是一件非常困难的事,需要对计算机有很深的理解,才能对各种
函数信手拈来,随心所欲地运用代码解决问题。虽然道阻且长,但我能感受到自己的理解在提升,这将是我继续学习的内在推动力。
标签:%-,10,10.2,10d,列表,print,实验,字符串,10s From: https://www.cnblogs.com/ciallo/p/17242877.html