英寸和厘米的交互python |
您所在的位置:网站首页 › python英制单位英寸与公制单位厘米换算 › 英寸和厘米的交互python |
前言:这次的作业有六道,难度均有所上升。敲代码过程中遇到很多错误,准备总结出来作为一份错误经验帖单独列出来,敬请期待! 为了记录我的Python课,将我的作业发上来,欢迎各位大佬评鉴。如果你有什么更好的想法,请在下方评论或联系我。谢谢! 作业一:奇偶不同,结果不同(升级版) 描述 使用两个 input() 接收用户的两个输入,第一个为一个整数,第二个为一个任意字符串。根据第一个整数为奇数还是偶数执行不同的操作。 具体要求如下: 1、如果第一个整数为奇数(假设为3),第二个字符串假设为"abc",则输出3遍"abc"中间用英文逗号","分割;即第一个整数为奇数n,则输出n遍第二个字符串,字符串中间用英文逗号分割; 2、如果第一个整数为偶数(假设为4),第二个字符串假设为"abc",则输出4遍"abc"的逆序字符"cba"中间用英文逗号","分割;即第一个整数为偶数n,则输出n遍第二个字符串的逆序串,逆序串中间用英文逗号分割。 特别说明:输入使用 input(),不要增加额外的提示信息,输出结果中不要有任何空格类空白符号。 输入格式 两个输入第一个为正整数,第二个为一串字符,输入使用 input(),不要增加额外的提示信息。 输出格式 按要求输出一行结果,除此外不要输出任何内容。 输入输出示例 输入 输出 示例1 3 abc abc,abc,abc 示例2 4 abcd dcba,dcba,dcba,dcba 代码: a=int(input()) b=input()if a%2==1:for i inrange(a):if i==a-1:print("{}".format(b),end='')break;print("{}".format(b),end=',')else:for i inrange(a):if i==a-1:print("{}".format(b[::-1]),end='')break;print("{}".format(b[::-1]),end=',') View Code 经验: 这道题参考了一位同学的答案,我的代码使用split函数时总出错,所以放弃使用那个函数了。 作业二:英寸和厘米的交互(升级版) 描述 虽然我国已经很好的普及了国际单位制,而在现实生活中,仍然有很多地方采用了英制单位来描述,例如,我们买一台65寸的电视,这个地方的寸指的就是英寸,或者拍一张2寸的照片,用的是相同的英制单位。 现在已知 1英寸 = 2.54厘米。 请编写程序实现以英寸标识的数据和以厘米标识的数据的互相转换。 输入格式 用户输入英制单位数据时,可以输入的形式为以“i”或“inch”结尾的数字,例如:65i、23inch 。 用户输入国际单位制数据时,可以输入的形式为以“c”或“cm”结尾的数字,例如:18c、88cm 。 特别注意: 输入使用input(),不要增加额外的提示信息 输出格式 结果为厘米为单位的数据时,输出格式为数字后跟cm的形式,例如,120cm 。 结果为英寸为单位的数据时,输出格式为数字后跟inch的形式,例如,120inch 。 用户输入的内容结尾不为“inch”、“i”、“cm”、“c”中的任何一个数据时,输出结果为:输入错误。 输入输出示例 请严格按照输入输出示例样式完成程序。 输入 输出 示例 1 18i 45.72cm 示例 2 20inch 50.80cm 示例 3 66c 25.98inch 示例 4 50cm 19.69inch 示例 5 77f 输入错误。 代码: a=input() b=a[-1]if b in["m","c"]:if b=="c": y=eval(a[:-1])/2.54 print("{:.2f}inch".format(y))elif b=="m": y=eval(a[:-2])/2.54 print("{:.2f}inch".format(y))elif b in["h","i"]:if b=="i": y=eval(a[:-1])*2.54 print("{:.2f}cm".format(y))elif b=="h": y=eval(a[:-4])*2.54 print("{:.2f}cm".format(y))else: print("输入错误。") View Code 经验: (原版在我的上一篇博客 Python课 #03号作业中)作为英寸和厘米的交互升级版,主要区别是最后一位字符多了"m"(cm)和"h"(inch)的选项;以及在进行计算时,需要考虑把”inch“、"cm"、"i"、"c"等不同长度的字符串去掉的情况。不过我在想有没有一个这样的函数,可以直接去掉首位或者末尾字符串然后计算呢? 老师提供了一种解题思路: s=input('input a number start or end with u/U/r/R:')if s[0] in 'uU' or s[-1] in 'uU': money=eval(s.strip('uU'))print('输入的是美金{}元。'.format(money))print(type(money))elif s[0] in 'rR' or s[-1] in 'rR': money=eval(s.strip('rR'))print('输入的是人民币{}元。'.format(money))print(type(money))else:print('输入错误') View Code 作业三:人民币和美元转换 描述 用户输入人民币或美金数额,转换为对应的美金或人民币数额。 用户输入的数字前后带有字符"r"或"R"表示为人民币,前后带有字符"u"或"U"表示美金。 编写程序实现此功能(汇率按 1美元=6.51人民币),输入使用input(),不要增加额外的提示信息。 输出结果为转换后的数值,保留两位小数。 提示: 输出格式可以采用print函数中留槽的方式使用 "{:.2f}"实现。 输入 输出 示例1 15.7r 2.41 示例2 14.3R 2.20 示例3 r5 0.77 示例4 R9.7 1.49 示例5 7.3u 47.52 示例6 9.7U 63.15 示例7 u8.8 57.29 示例8 U27 175.77 代码: a=input() b=a[-1] c=a[0]if c in["u","U"]: y=eval(a[1:])*6.51 print("{:.2f}".format(y))elif c in["R","r"]: y=eval(a[1:])/6.51 print("{:.2f}".format(y))elif b in["u","U"]: y=eval(a[:-1])*6.51 print("{:.2f}".format(y))elif b in["R","r"]: y=eval(a[:-1])/6.51 print("{:.2f}".format(y)) View Code 经验: 这道题一开始想用while循环语句,后来发现不用也可以达到目的。a[1:]的意思是除第一位以外的字符串。 作业四:输出3个数中的最大值 描述 使用3个input()函数,接收3个整数,将其最大值输出。 输入格式 输入使用input(),不要增加额外的提示信息。 输出格式 输出内容为3个整数中的最大值,具体参阅输入输出示例。 输入输出示例 输入 输出 示例 1 3 9 8 9 示例 2 18 3 25 25 代码: a=eval(input()) b=eval(input()) c=eval(input())if a>b:if a>c:print(a)else:print(c)else:if b View Code 升级:后来老师说有max函数,所以可以写为: print("{}".format(max(eval(input()),eval(input()),eval(input()))) 作业五:输入3个数字,由小到大输出 描述 用户依次输入3个数字(每个输入占一行),如下面输入所示,程序将这三个数字由小到大依次输出,如下面输出示例: 注意:输入使用 input() 形式,不要增加任何其他附加信息。 输入输出示例 输入 输出 示例 1 23 38 12 12 23 38 示例 2 65 53 17 17 53 65 代码: a=eval(input()) b=eval(input()) c=eval(input())if a>b:if a>c:if b>c:print("{}\n{}\n{}\n".format(c,b,a))else:print("{}\n{}\n{}\n".format(b,c,a))else:print("{}\n{}\n{}\n".format(b,a,c))else:if b>c:if a View Code 经验: 也许这道题还有更简单的代码,我的代码还是太过繁琐,中间还丢过两种情况,幸好后来发现了。 升级: 嗯,确实有更简单的: a=eval(input("")) b=eval(input("")) c=eval(input(""))if a>b: a,b=b,aif b>c: b,c=c,bif a>c: a,c=c,aprint(a)print(b)print(c) View Code 作业六:拍7游戏 描述 “拍7游戏”规则是:一堆人围成一圈,开始时,任意指定一人说出数字“1”后,一圈人按顺时针方向,每人按整数由小到大的顺序一人一个地报出后续数字“2”、“3”......,当遇到为“7”的整数倍数字或含“7”的数字时,该念这个数字的人需要拍手一下并喊“跳过”(不能念出这个数字)。应该拍手并喊“跳过”的人,念出了数字,或者该念数字而拍手或喊“跳过”的人为输,接受惩罚后,游戏重新开始。 书写一个程序,接收用户的一个整数输入,输出从1到这个整数(包含这个整数)间所有应该拍手喊“跳过”的数字。每个数字输出占一行。 输入使用 input() ,不要附加任何参数和提示信息。 输入格式 输入一个整数,使用 input() 函数实现。不要为 input() 函数增加任何参数和提示信息。 输出格式 按行输出结果。具体参阅下方输入输出示例。 输入输出示例 输入 输出 示例 1 21 7 14 17 21 示例 2 30 7 14 17 21 27 28 代码: n=eval(input())for i in range(1,n+1): y=str(i)if i%7==0:print(i)elif "7" iny:print(i) 升级版: n=eval(input())for i in range(1,n+1): y=str(i)if i%7==0 or"7" iny:print(i) 继续升级: for i in range(1,eval(input())+1):if i%7==0 or"7" instr(i):print(i) 经验:审题是关键啊!条件有2个:一是7的公倍数,另一个是含7的字符串。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |