Python随笔29:Python基础编程练习题23~24

:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性。

Python基础练习题23:求三角形斜边上的高

输入直角三角形两直角边a、b的值,输出斜边上的高,最后结果使用round(x, 2) 函数四舍五入保留2位小数。

输入格式:

2行,每行一个整数,分别为a,b的值。

输出格式:

一个数,即斜边上的高,保留2位小数。

输入样例:

4
5

输出样例:

3.12

解答:利用复数求模的方式求出第三条边长c,再利用公式h = a * b / c来求出高h。

a = int(input())
b = int(input())
c = complex(a, b)  # 新建一个复数c,要用到复数求模。
print(round((a * b / abs(c)), 2))
Python基础练习题23:计算字符个数

接受一个由字母和数字组成的字符串,和一个字符,然后输出输入的字符串中含有该字符的个数。不区分大小写。

输入格式:

输入一个由字母和数字组成的字符串,和一个字符,以空格隔开。

输出格式:

输出输入的字符串中含有该字符的个数。

输入样例:

a1234bcdef a

输出样例:

1

解答:这题要用到两个方法:str.split和str.count方法,它们的具体语法分别如下:

str.split(sep=None, num=-1)——返回一个列表。

其中,sep是separater的前三个字母,表示分隔符。sep分隔符默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等,也可以为空(即不带任何东西,不带引号,如(str.split()),也可以为空格(如str.split(" ")),但不能为空字符串(str.split("")),否则会报错ValueError: empty separator;num表示分隔的次数,默认为-1,即全部分隔。

此方法可以将字符串转化成列表。如"A, B, C".split(",")结果为['A', 'B', 'C']。

str.count(sub)——返回子串sub在str中出现的次数。

因为输入的字符串s(以'a1234bcdef a'为例),由三个部分组成,'a1234bcdef'、空格和'a',其中s[-1] = 'a',s.split() = ['a1234bcdef', 'a'],所以s.split()[0] = 'a1234bcdef'。

现在问题就变为求字符串字符串s[-1]在s.split()[0] 中出现了几次。再看看str.count(sub)这个方法,是不是答案出来了?

代码如下:

s = str(input())
print(s.split()[0].count(s[-1]))

To be continued.

你可能感兴趣的:(Python随笔29:Python基础编程练习题23~24)