实验3字符串和标准输入输出 一、 实验目的 (1) 了解Python字符串的定义方式。 (2) 熟悉并掌握字符串的各种运算、转义字符的常用方法和常用的字符串函数。 (3) 掌握标注输入和输出函数的使用方法,特别是print()函数的格式输出。 二、 知识导图 三、 实验内容 1. 照猫画虎 在IDLE Shell的命令提示符后面依次输入下面语句,将语句功能、输出结果或者Python语句填写在横线处。 (1) 字符串的索引和切片。 >>> string="the Communist Party of China" >>> print(string[0]) #功能为: >>> print(string[-1]) #功能为: >>> print(string[4:13]) #输出结果为: >>> print(string[-5::]) #输出结果为: >>> print(string[:]) #功能为: >>> print(string[0::2]) #输出结果为: >>>new=string[::-1] #功能为: >>>print(new) #输出结果为: (2) 字符串的连接、时间和日历库的使用。 >>> from datetime import datetime #功能为: >>>import sxtwl #日历库 >>> info1="今天是" >>> info2="星期" >>> week=datetime.now().isoweekday() #功能为: >>> year=datetime.now().year #功能为: >>> month=datetime.now().month #功能为: >>> day=datetime.now().day #功能为: >>> s1="公历:%d年%d月%d日"%(year,month,day) >>> lunar=sxtwl.fromSolar(year,month,day) #功能为: >>> s = "农历:%d年%s%d月%d日" % (lunar.getLunarYear(), '闰' if lunar.isLunarLeap() else", lunar.getLunarMonth(),lunar.getLunarDay()) #功能为从春节开始计算农历 >>> print(info1+"\n"+s1+"\n"+s+"\n"+info2+str(week)) #输出结果为: (3) 标准输入函数input()的使用。 >>>#从math即数学库中导入用于开根运算的方法sqrt >>> x1,y1=input("请输入第1个点的坐标(用空格分隔):").split() >>> type(x1) #输出结果为: >>> x1,y1=float(x1),float(y1) #功能为: >>> type(x1) #输出结果为: >>>#输入第2个点(x2,y2)的坐标,并用","分隔 >>> #将x2,y2强制转换为float类型 >>> dis=sqrt((x1-x2)**2+(y1-y2)**2) #功能为: >>> #输出两点间距离(结果保留两位小数) (4) 标准输出函数print()的使用。 >>> from datetime import datetime >>> year=datetime.now().year >>> name="中国共产党" >>> print(f"今年是{name}成立{year-1921}周年") #输出结果为: >>> a,b=123456789,'*' #功能为: >>> print("{0:{2}>{1},}\n{0:{2}^{1},}\n{0:{2}<{1}}".format(a,20,b)) #输出结果为: 2. 牛刀初试 (1) 王国维先生在《人间词话》中写道: 古今之成大事业、大学问者,必经过三种境界。其实学习之道也是如此,需要经过迷茫、努力和水到渠成的过程。编写一个程序,输出学习之道的三重境界。 【输出样例】 学习之道的三种境界 望尽天涯,博览群书,学透概念,夯实根基。此乃第一境界也! 题海遨游,为伊憔悴。此乃第二境界也! 蓦然回首,融会贯通,推陈出新。此乃第三境界也! (2) 回文是一种非常有趣的修辞手法,是指把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,从头读也可,倒读也可。比如宋代词人苏轼的《菩萨蛮·夏闺怨》就是用这种修辞手法写成的。请编写程序,输入上句诗文,输出完整的一句回文诗。 【输入输出样例】(其中斜体加下画线表示输入数据) 请输入上句: 柳庭风静人眠昼 完整诗句为: 柳庭风静人眠昼,昼眠人静风庭柳。 (3) 从前有一个年轻的小伙暗恋邻家的姑娘,但是苦于害羞腼腆不敢直抒胸臆。于是小伙子打算写一首英文情诗给她。为了使这首情诗精美感人,小伙子经过三天三夜的精心创作,写了一首藏头的八句情诗。请问你能看出他想要表达的真正内容吗? 【输入输出样例】(其中斜体加下画线表示输入数据) 请输入8句藏头诗: I am a handsome man lonely and long for you attention of all the girls I met you gave me the deepest impression Very lucky to know you earn money to make you happy you are the world oh, be ma side u are the happiest person in the world! 小伙子想表达的真正内容是: IloVeyou 3. 挑战自我 视频31 (1) 居民身份证是国家法定的证明公民个人身份的证件。请根据输入的身份证号码,提取出生日期并计算年龄。比如,输入的身份证号码是“111111200001011234”,则提取的出生日期为“2000年1月1日”,年龄为22岁。 【输入输出样例】(其中斜体加下画线表示输入数据) 请输入您的18位身份证号码:111111200001011234 您的出生日期是2000/01/01。 您的年龄是22岁。 【提示】根据GB 11643—1999中有关公民身份号码的规定,公民身份号码是特征组合码,由17位数字本体码和1位数字校验码组成。排列顺序从左至右依次为: 6位数字地址码,8位数字出生日期码,3位数字顺序码和1位数字校验码。具体为: ① 第1~2位数字表示所在省份的代码; ② 第3~4位数字表示所在城市的代码; ③ 第5~6位数字表示所在区县的代码; ④ 第7~14位数字表示出生年月日; ⑤ 第15~16位数字表示所在地的派出所的代码; ⑥ 第17位数字表示性别: 奇数表示男性,偶数表示女性; ⑦ 第18位数字是校检码: 校检码可以是0~9的数字,有时也用X表示。 视频32 (2) 现实生活中有很多经常使用的号码(如银行卡号、身份证号码等)都很长,核对起来很不方便,通常做法是将号码分段显示。比如吕布的银行卡卡号为“6228480808755324278”,可以将其分段显示为“6228 4808 0875 5324 278”。请编写程序,从键盘输入19位银行卡卡号,从左往右每4位之间加一个空格(最后一组为3位),输出分段显示的银行卡,并将中间的12位卡号用6个“*”代替后加密输出。 【输入输出样例】(其中斜体加下画线表示输入数据) 请输入19位银行卡卡号: 6228480808755324278 分段后的银行卡卡号为: 6228 4808 0875 5324 278 加密后的银行卡卡号为: 6228******278 (3) 在这个每天都会诞生大量数据的时代,数据压缩扮演着重要的角色,如数据传输,传输压缩过的数据肯定会比传输原始数据快。字符串可以根据一定的算法进行压缩。通常规定,字符串压缩的规则是取单词的首尾字母与中间省略的字母个数组合在一起作为压缩后的结果。例如,单词“Python”压缩后为“P4n”。请编程实现此字符串压缩算法。 视频33 【输入输出样例】(其中斜体加下画线表示输入数据) 请输入要压缩的字符串: 等闲识得东风面 压缩后: 等5面