今天这篇文章也是我在用python语言做洛谷题的时候遇到的一个问题。解决了希望可以记录一下。
以下是在做洛谷的原题(非常简单的一题,只是为了记录一下,用原题比较好解释一些)
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个 30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。
现在已知 10 个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。
输入格式
输入包括两行数据。第一行包含 10个 100 到 200 之间(包括 100 和 200)的整数(以厘米为单位)分别表示 10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个 100到 120 之间(包含 100和 120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。
输出格式
输出包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目
看到这道题首先第一步肯定是要建立一个列表或数组的东西,但我当时不会,经过学习之后发现有好几种方式。先来看建立列表:
my_list = [1, 2, 3, 4, 5]
print(my_list)
这是第一种建立列表的方式,是用户直接定义了一个,就直接命名,然后用[ ]去赋值即可。
user_input = input("请输入一行列表(元素之间用空格分隔):")
或者user_input=input()
my_list = user_input.split()
print(my_list)
如果用户要输入,可以按照这种方法。如果输入之前先有提示语句,那就用第一行语句,先引用字符串写入要提示的语句,在往后面输入即可。如果不需要有提示语句,则就直接按照第二行输入即可。
第三行的split()
方法会按照空格将字符串分割成一个列表,并赋值给my_list
变量,但要注意这仍是一个字符串,我在写这道题的时候就遇到了这样的问题。解决方法如下:
my_list = [int(x) for x in user_input.split(',')]
这种方式就是主要就是在它把列表里字符串的数据都转化成了int型的。如:
列表[10,20,30,40]在没有这行语句,就是四个字符串,但有了这行语句它就是整型数。
因此这道题也就解出来了。
至于创建数组,我认为用Numpy这个库非常管事,大家可以参考以下这篇博客:python创建数组_python生成数组-CSDN博客
以下是解这道题的代码:
AppleHigh=input()
AppleHigh_List=AppleHigh.split()
peopleHigh=int(input())
realHigh=peopleHigh+30
j=0
AppleHigh_List = [int(x) for x in AppleHigh_List]
for i in range(len(AppleHigh_List)):
if(realHigh>=AppleHigh_List[i]):
j=j+1
print(j)