Shreya Reddy
Shreya Reddy

Reputation: 99

How to perform three different operations and import the module to another python script?

My aim: To create a python Modules with 3 functions:

Sample input1: bob
output:
Yes it is a palindrome
No. of vowels:1
Frequency of letters:b-2,o-1
=int(input("Enter number:"))
temp=n
rev=0
while(n>0):
    dig=n%10
    rev=rev*10+dig
    n=n//10
if(temp==rev):
    print("The number is a palindrome!")
else:
    print("The number isn't a palindrome!")
ch = input("Enter a character: ")

if(ch=='A' or ch=='a' or ch=='E' or ch =='e' or ch=='I'
 or ch=='i' or ch=='O' or ch=='o' or ch=='U' or ch=='u'):
    print(ch, "is a Vowel")
else:
    print(ch, "is a Consonant")

In a new file I am giving :

import test
def main():
    while True:
         word = input("enter a word")
         test.isPalindrome(word))
         test.count_the_vowels(word))


if __name__ == "__main__":
    main()   

If I call my module in another file, it automatically does all the functions. But I want to give input(name) in this new module and check the output for it.But this is asking input again since name is present before def function in the other file. How to overcome this?

I am new to coding.Please be as elaborate as possible.Thanks in advance.

Upvotes: 0

Views: 441

Answers (2)

Chris Doyle
Chris Doyle

Reputation: 12027

After trying several times to explain in the comments here is a brief example. so make a file with your functions. then in your other file import your funcs file then ask user for name and pass it to the funcs. This is just an example of how to define functions in one file and then call them from another. you probably want to look at your funcs as they should probably return values rather then just print stuff otherwise your calling file wont be able to validate the function since it will receive nothing back.

MyFuncs.py

def hello(name):
    print(f"hello {name}")

def goodbye(name):
    print(f"goodbye {name}")

stackoverflow.py

import MyFuncs

name = input("Name: ")
MyFuncs.hello(name)
MyFuncs.goodbye(name)

**OUTPUT: **when running the stackoverflow.py script

Name: Chris
hello Chris
goodbye Chris

Upvotes: 1

bruno desthuilliers
bruno desthuilliers

Reputation: 77912

If you're question is "how to ask for the name only once and pass it to both function", the answer is simple: in your main.py script (or test.py or however you named it), add this:

import yourmodule # where you defined your functions

def main():
    while True:
         word = input("enter a word (ctrl+C to quit) > ")
         yourmodule.isPalindrome(word)
         yourmodule.count_the_vowels(word)
         # etc

if __name__ == "__main__":
    main()

Now note that your assignment doesn't say you have to do this - it says:

Import the module in another python script and test the functions by passing appropriate inputs.

Here, "passing appropriate inputs" can also be understood as having a harcoded list of words and calling your functions with those names... IOW, a unit test.

Upvotes: 1

Related Questions