UserInput: (“LANDSAT8,5,MODIS,3,SENTINAL2,6”). User entered three satellites name and instruct the program that how many images of that particular satellite should be downloaded. In this example, there are three pairs;
- LANDSAT8,5
- MODIS,3
- SENTINAL2,6
Preferred Output should be like:
Program Output: LANDSAT8 image 1 downloaded LANDSAT8 image 2 downloaded LANDSAT8 image 3 downloaded LANDSAT8 image 4 downloaded LANDSAT8 image 5 downloaded MODIS image 1 downloaded MODIS image 2 downloaded MODIS image 3 downloaded SENTINAL2 image 1 downloaded SENTINAL2 image 2 downloaded SENTINAL2 image 3 downloaded SENTINAL2 image 4 downloaded SENTINAL2 image 5 downloaded SENTINAL2 image 6 downloaded
CodePudding user response:
I think this may be what you're trying to do:
user_input = "LANDSAT8,5,MODIS,3,SENTINAL2,6"
tokens = user_input.split(',')
for s, d in zip(tokens[::2], map(int, tokens[1::2])):
for i in range(d):
print(f'{s} image {i 1} downloaded')
Output:
LANDSAT8 image 1 downloaded
LANDSAT8 image 2 downloaded
LANDSAT8 image 3 downloaded
LANDSAT8 image 4 downloaded
LANDSAT8 image 5 downloaded
MODIS image 1 downloaded
MODIS image 2 downloaded
MODIS image 3 downloaded
SENTINAL2 image 1 downloaded
SENTINAL2 image 2 downloaded
SENTINAL2 image 3 downloaded
SENTINAL2 image 4 downloaded
SENTINAL2 image 5 downloaded
SENTINAL2 image 6 downloaded
CodePudding user response:
Overview
you need to get input, split the input on a ,
comma, and then zip them into pairs, then generate your output text and then you can print or do whatever you want with the output array, each element in the output array is a string. using
{x} image {y} downloaded
as the format
Code
def pairwise(iterable):
"s -> (s0, s1), (s2, s3), (s4, s5), ..."
a = iter(iterable)
return zip(a, a)
user_input = input("enter satelites: ")
splitted = user_input.split(',')
output = []
for x, y in pairwise(splitted):
output.append(f"{x} image {y} downloaded");
for x in output: # Do your downloading stuff
print(x)
Output (usage)
CodePudding user response:
UserInput="LANDSAT8,5,MODIS,3,SENTINAL2,6"
numbers=[]
names=[]
for keyword in UserInput.split(","):
if keyword.isdigit():
numbers.append(keyword)
else:
names.append(keyword)
for i in range(len(names)):
temp=numbers[i]
for j in range(int(temp)):
print(names[i],"image " str(j) " downloaded",end=" ")
CodePudding user response:
inp = input()
words = inp.split(sep=",")
satellites = {}
i = 0
while i < len(words):
satellites[words[i]] = int(words[i 1])
i = 2
for key, value in satellites.items():
for i in range(1, value 1):
print(f"{key} image {i} downloaded")