python习题100例(4-6)
散人非IT专业,乃医疗人士,自学编程也是被逼无奈。网络资源丰富,奈何初学者总是各种艰难。很多练习题,因为python版本问题,各种函数格式改变等原因,无法跑出来。散人心痒笔痒,将亲测可以跑出来的总结再次。散人现在用的是3.9版本。当然,很久以后,可能这些代码也跑不出来了。临床工作繁忙,间歇性将学习笔记整理出来。
Question 4
Level 1
Question:
编写一个程序,从输入值中接收一系列逗号分隔的数字,并生成包含每个数字的列表和元组。
假设向程序提供了以下输入:
34,67,55,33,12,98
输出的数字将是:
['34', '67', '55', '33', '12', '98']
('34', '67', '55', '33', '12', '98')
Hints:
tuple()和split()
Solution:
values=input()
l=values.split(",")
t=tuple(l)
print(l)
print(t)
Question 5
Level 1
Question:
定义一个类:
getString: 从输入中获取一个字符串.
printString: 以大写打印字符串.
同时包含简单的测试函数来测试此方法
Hints:
使用____init___
Solution:
class InputOutString(object):
def __init__(self):
self.s = ""
def getString(self):
self.s = raw_input()
def printString(self):
print self.s.upper()
strObj = InputOutString()
strObj.getString()
strObj.printString()
Question 6
Level 2
Question:
编写一个程序,依据给出公式计算并且打印以下值:
Q = Square root of [(2 * C * D)/H]
C和H是固定值:
C = 50. H =30.
D是一个变量,它的值应该以逗号分隔的序列输入到程序中。
Example
让我们假设下面的逗号分隔的输入序列给定给程序:
100,150,180
程序的输出应该是:
18,22,24
Hints:
如果接收到的输出是十进制的,它应该四舍五入到它最近的值(例如,如果接收到的输出是26.0,它应该打印为26)
Solution:
#!/usr/bin/env python
import math
c=50
h=30
value = []
items=[x for x in raw_input().split(',')]
for d in items:
value.append(str(int(round(math.sqrt(2*c*float(d)/h)))))
print ','.join(value)