根据给定的月份和日期计算星座。然后通过用户输入的年份、月份和日期调用这两个函数,最后打印出生肖和星座的结果。用户可以依次输入出生年份、月份和日期来获取相应的生肖和星座信息。
使用二分查找算法在列表中查找目标元素。
def binary_search(lst, target):
'''
使用二分查找算法在列表中查找目标元素。
:param lst: 排序后的列表。
:param target: 目标元素。
:return: 如果找到,则返回目标元素在列表中的下标;否则返回 -1。
'''
left, right = 0, len(lst) - 1
while left <= right:
mid = (left + right) // 2
if lst[mid] == target:
return mid
elif lst[mid] > target:
right = mid - 1
else:
left = mid + 1
return -1
def main():
print('欢迎使用数组元素查找工具!')
lst = []
while True:
option = input('请选择操作:
1. 添加元素
2. 排序并查找元素
3. 退出
')
if option == '1':
elem = int(input('请输入要添加的元素:'))
lst.append(elem)
elif option == '2':
if not lst:
print('列表为空,请先添加元素!')
continue
lst.sort()
print('排序后的列表:', lst)
target = int(input('请输入要查找的元素:'))
index = binary_search(lst, target)
if index == -1:
print('未找到目标元素!')
else:
print('目标元素的下标为:', index)
elif option == '3':
print('感谢使用数组元素查找工具,再见!')
break
else:
print('无效操作,请重新输入!')
main()
```python
def calculate_zodiac(year):
zodiacs = {
(1900, 1911): '鼠',
(1912, 1923): '牛',
(1924, 1935): '虎',
(1936, 1947): '兔',
(1948, 1959): '龙',
(1960, 1971): '蛇',
(1972, 1983): '马',
(1984, 1995): '羊',
(1996, 2007): '猴',
(2008, 2019): '鸡',
(2020, 2031): '狗',
(2032, 2043): '猪'
}
for key, value in zodiacs.items():
if key[0] <= year <= key[1]:
return value
return '无效年份'
def calculate_constellation(month, day):
constellations = {
'水瓶座': [(1, 20), (2, 18)],
'双鱼座': [(2, 19), (3, 20)],
'白羊座': [(3, 21), (4, 19)],
'金牛座': [(4, 20), (5, 20)],
'双子座': [(5, 21), (6, 21)],
'巨蟹座': [(6, 22), (7, 22)],
'狮子座': [(7, 23), (8, 22)],
'处女座': [(8, 23), (9, 22)],
'天秤座': [(9, 23), (10, 23)],
'天蝎座': [(10, 24), (11, 22)],
'射手座': [(11, 23), (12, 21)],
'摩羯座': [(12, 22), (12, 31)],
'摩羯座': [(1, 1), (1, 19)]
}
for key, value in constellations.items():
if value[0][0] == value[1][0]:
if value[0][0] == month and value[0][1] <= day <= value[1][1]:
return key
else:
if (value[0][0] == month and value[0][1] <= day) or (value[1][0] == month and day <= value[1][1]):
return key
return '无效日期'
def main():
print('欢迎使用生肖和星座计算器!')
year = int(input('请输入出生年份:'))
month = int(input('请输入出生月份:'))
day = int(input('请输入出生日期:'))
zodiac = calculate_zodiac(year)
constellation = calculate_constellation(month, day)
print('您的生肖是:' + zodiac)
print('您的星座是:' + constellation)
main()
```
这个版本的代码在 `main` 函数中加入了一些界面提示,使用 `print` 函数输出文本。用户可以按照提示输入出生年份、月份和日期,然后计算出对应的生肖和星座,并显示在界面上。
用户可以更方便地使用生肖和星座计算器,并更直观地获取计算结果。