What's new

Python Zodiac Sign Generator by Year[HELP]

cr4zyfr0g

Eternal Poster
Established
Joined
Jul 27, 2018
Posts
768
Reaction
1,526
Points
447
Hello PHC Fam, Ano po kaya idadagdag ko dito na code? Ito po yung isa sa pinapagawa samin.
1.Year must be from included 1980-2014. Should the user inputs outside the range, the program will throw a ValueError.
Python:
Year = int(input("Year: "))
if (Year - 2000) % 12 == 0:
   chinesezodiac_sign = 'Dragon'
elif (Year - 2000) % 12 == 1:
    chinesezodiac_sign = 'Snake'
elif (Year - 2000) % 12 == 2:
    chinesezodiac_sign = 'Horse'
elif (Year - 2000) % 12 == 3:
    chinesezodiac_sign = 'sheep'
elif (Year - 2000) % 12 == 4:
    chinesezodiac_sign = 'Monkey'
elif (Year - 2000) % 12 == 5:
    chinesezodiac_sign = 'Rooster'
elif (Year - 2000) % 12 == 6:
    chinesezodiac_sign = 'Dog'
elif (Year - 2000) % 12 == 7:
    chinesezodiac_sign = 'Pig'
elif (Year - 2000) % 12 == 8:
    chinesezodiac_sign = 'Rat'
elif (Year - 2000) % 12 == 9:
    chinesezodiac_sign = 'Ox'
elif (Year - 2000) % 12 == 10:
    chinesezodiac_sign = 'Tiger'
else:
    chinesezodiac_sign = 'Hare'
print("Your Chinese Zodiac is", chinesezodiac_sign)
Screenshot_2022_0403_134936.jpg
 

Attachments

Ahm pwede mo siguro iadd yung pag check kung valid ba yung year
and pwede mo rin adopt yung ginawa ko instead of if else statement, dictionary nalang :)

Python:
while True:
    year = int(input('Input Year: '))
    if year in range(1980, 2014):
        break
    print('Year must be 1980-2014 only')

zodiacs = {
    0: 'Dragon',
    1: 'Snake',
    2: 'Horse',
    3: 'Sheep',
    4: 'Monkey',
    5: 'Rooster',
    6: 'Dog',
    7: 'Pig',
    8: 'Rat',
    9: 'Ox',
    10: 'Tiger'
}
zodiac_sign = (year - 2000) % 12
default_zodiac_sign = 'Hare'
chinese_zodiac_sign = zodiacs.get(zodiac_sign, default_zodiac_sign)

print('Zodiac Sign:', zodiac_sign)
print('Your Chinese Zodiac is:', chinese_zodiac_sign)

Output:

Code:
Input Year: 123
Year must be 1980-2014 only
Input Year: 1970
Year must be 1980-2014 only
Input Year: 1980
Zodiac Sign: 4
Your Chinese Zodiac is: Monkey

But since you want to throw an error, ganito gawin mo instead of While True


Python:
year = int(input('Input Year: '))
if year not in range(1980, 2014):
    raise ValueError(f'Invalid year: {year}. Year must be 1980-2014 only')

Code:
Input Year: 123
Traceback (most recent call last):
  File "C:\Users\ADMIN\Desktop\python\zodiac.py", line 4, in <module>
    raise ValueError(f'Invalid year: {year}. Year must be 1980-2014 only')
ValueError: Invalid year: 123. Year must be 1980-2014 only
 
Last edited:
Ahm pwede mo siguro iadd yung pag check kung valid ba yung year
and pwede mo rin adopt yung ginawa ko instead of if else statement, dictionary nalang :)

Python:
while True:
    year = int(input('Input Year: '))
    if year in range(1980, 2014):
        break
    print('Year must be 1980-2014 only')

zodiacs = {
    0: 'Dragon',
    1: 'Snake',
    2: 'Horse',
    3: 'Sheep',
    4: 'Monkey',
    5: 'Rooster',
    6: 'Dog',
    7: 'Pig',
    8: 'Rat',
    9: 'Ox',
    10: 'Tiger'
}
zodiac_sign = (year - 2000) % 12
default_zodiac_sign = 'Hare'
chinese_zodiac_sign = zodiacs.get(zodiac_sign, default_zodiac_sign)

print('Zodiac Sign:', zodiac_sign)
print('Your Chinese Zodiac is:', chinese_zodiac_sign)

Output:

Code:
Input Year: 123
Year must be 1980-2014 only
Input Year: 1970
Year must be 1980-2014 only
Input Year: 1980
Zodiac Sign: 4
Your Chinese Zodiac is: Monkey

But since you want to throw an error, ganito gawin mo instead of While True


Python:
year = int(input('Input Year: '))
if year not in range(1980, 2014):
    raise ValueError(f'Invalid year: {year}. Year must be 1980-2014 only')

Code:
Input Year: 123
Traceback (most recent call last):
  File "C:\Users\ADMIN\Desktop\python\zodiac.py", line 4, in <module>
    raise ValueError(f'Invalid year: {year}. Year must be 1980-2014 only')
ValueError: Invalid year: 123. Year must be 1980-2014 only
Maraming salamat lods
 
Back
Top