#022 Python 实验课

拍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
 1 x=eval(input())
 2 for i in range(1,x+1):
 3     y=str(i)
 4     if(i%7==0 or i%10==7):
 5         print(i)
 6 
 7     elif(y[0]=='7'):
 8         print(y)
 9     else:
10         z=i
11         while(z>10):
12             z=z/10
13             if(z%10==7):
14                 print(i)

关于数字中存在7的问题写的有点乱需要改进

英寸和厘米的交互(升级版)

描述

虽然我国已经很好的普及了国际单位制,而在现实生活中,仍然有很多地方采用了英制单位来描述,例如,我们买一台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
输入错误。

 

 1 x=input()
 2 if (x[-1]=='i'):
 3     x=eval(x[:-1])
 4     print("{:.2f}cm".format(x*2.54))
 5    
 6 elif (x[-1]=='c'):
 7     x=eval(x[:-1])
 8     print("{:.2f}inch".format(x/2.54))
 9     
10 
11 elif(len(x)>2):
12     if (x[-2]=='c'and x[-1]=='m'):
13         x=eval(x[:-2])
14         print("{:.2f}inch".format(x/2.54))
15         
16     elif (len(x)>4):
17         if (x[-4]=='i'):
18             x=eval(x[:-4])
19             print("{:.2f}cm".format(x*2.54))
20                     
21         else :
22             print('输入错误。')
23     else :
24             print('输入错误。')
25 else :
26     print('输入错误。')

 

检测是否需要切片的时候出现了x[-4]可能出现越界问题

所以使用了len(x)来修改这个问题

同时陷入了另一个问题,检测长度大于2之后不能跳到else输出输入错误

只能编写 多个print输入错误

这里应该有更好的办法只是我个人没有发现需要继续改进


 

其他题目中规中矩

求最大值偷懒了用了三个值排序的那个改了改

输出3个数中的最大值

描述

使用3个input()函数,接收3个整数,将其最大值输出。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬

输入格式

输入使用input(),不要增加额外的提示信息。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬

输出格式

输出内容为3个整数中的最大值,具体参阅输入输出示例。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬

输入输出示例

 ‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬

  输入 输出
示例 1
3
9
8
9
示例 2
18
3
25
25

 

x=eval(input())
y=eval(input())
z=eval(input())
if(x>y):
    x=x+y
    y=x-y
    x=x-y
if(x>z):
    x=x+z
    z=x-z
    x=x-z
if(y>z):
    y=y+z
    z=y-z
    y=y-z
#print(x)
#print(y)
print(z)

700371554380988789

输入3个数字,由小到大输出

 ‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬

描述

用户依次输入3个数字(每个输入占一行),如下面输入所示,程序将这三个数字由小到大依次输出,如下面输出示例:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬

注意:输入使用 input() 形式,不要增加任何其他附加信息。 ‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬


输入输出示例

  输入 输出
示例 1
23
38
12
12
23
38
示例 2
65
53
17
17
53
65

 

 

 

 

 

 ‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬

 

 1 x=eval(input())
 2 y=eval(input())
 3 z=eval(input())
 4 if(x>y):
 5     x=x+y
 6     y=x-y
 7     x=x-y
 8 if(x>z):
 9     x=x+z
10     z=x-z
11     x=x-z
12 if(y>z):
13     y=y+z
14     z=y-z
15     y=y-z
16 print(x)
17 print(y)
18 print(z)

371554381006466

奇偶不同,结果不同(升级版)

描述

使用两个 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

 

 1 x=int(input())
 2 y=input()
 3 if (x%2==1):
 4     for i in range(x):
 5         if(i==x-1):
 6             print("{}".format(y),end='')
 7             break;
 8         print("{}".format(y),end=',')
 9 
10 else :
11      for i in range(x):
12         if(i==x-1):
13             print("{}".format(y[::-1]),end='')
14             break;
15         print("{}".format(y[::-1]),end=',')

人民币和美元转换

描述

用户输入人民币或美金数额,转换为对应的美金或人民币数额。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬

用户输入的数字前后带有字符"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

 

 1 x=input()
 2 if (x[-1]=='R'or x[-1]=='r'):
 3     x=eval(x[:-1])
 4     print('{:.2f}'.format(x/6.51))
 5 elif (x[0]=='R'or x[0]=='r'):
 6     x=eval(x[1:])
 7     print('{:.2f}'.format(x/6.51))
 8 elif(x[-1]=='u'or x[-1]=='U'):
 9     x=eval(x[:-1])
10     print('{:.2f}'.format(x*6.51))
11 elif (x[0]=='u'or x[0]=='U'):
12     x=eval(x[1:])
13     print('{:.2f}'.format(x*6.51))

 

posted @ 2019-04-04 20:26  韩旭051  阅读(1640)  评论(0编辑  收藏  举报