如何缩短或清理此python代码?

2024-04-29 09:27:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个家庭作业,要写一个程序,把一个公路号作为输入,输出公路是主路还是辅路,走东/西、北/南,如果是辅路,它服务的是哪条主路。这是我的代码,它给了我满分,但我是一个初学者,必须有一个简短的方法来写它。有人介意把这个清理一下吗?你知道吗

highway_number = int(input())

if highway_number >= 1 and highway_number <= 99:
    prim = 'is primary,'
    if (highway_number % 2) == 0:
        print('The', highway_number, prim, 'going east/west.')
    else:
        print('The', highway_number, prim, 'going north/south.')
elif highway_number >= 100 and highway_number <= 999:
    aux = 'is auxiliary,'
    if (highway_number % 2) == 0:
        print('The', highway_number, aux, 'serving the %d, going east/west.' % (highway_number%100))
    else:
        print('The', highway_number, aux, 'serving the %d, going north/south.' % (highway_number%100))
else:
    print(highway_number, 'is not a valid interstate highway number.')

这里有290个输出:

The 290 is auxiliary, serving the 90, going east/west.

Tags: thenumberifiselseprintwestserving
1条回答
网友
1楼 · 发布于 2024-04-29 09:27:07

使用

1)连锁比较

2)f字串

3)使用布尔值0/1的内联if语句

使代码更短

highway_number = int(input())

if 1 <= highway_number <= 99:
    direction = 'east/west' if highway_number % 2 else 'north/south'
    print(f'The {highway_number} is primary, going {direction}')
elif 100 <= highway_number <= 999:
    direction = 'north/south' if highway_number % 2 else 'east/west'
    print(f'The {highway_number} is auxiliary, serving the {highway_number%100}, going {direction}')
else:
    print(highway_number, 'is not a valid interstate highway number.')

相关问题 更多 >