在一句话中按如下方式打印个人的所有信息"[姓名]是[职业]在[城市],[州]的[年数]年。">
示例输入:-
Sunil Shankar Salman
医生牙医木匠
15 10 10
勒克瑙德里孟买
Uttar_Pradesh New_Delhi Maharashtra
输出: -
Sunil在北方邦勒克瑙当了15年医生。
Shankar在新德里做了10年牙医。
Salman是马哈拉施特拉邦孟买10年的木匠。
**my code**
name=str(input())+" "
profession = str(input())+" "
no_of_years=(input())+" "
cities=str(input())+" "
states=str(input())+" "
print(f"{name},is a {profession} for {no_of_years} years in {cities}, {states}")
假设输入行之间没有空格,垂直存储细节,矩阵转置给出矩阵,每一行都有人的细节。zip()
函数有助于置换矩阵
details_vertical = []
for ctr in range(5):
details_vertical.append(input().split())
for name, profession, experience, city, state in zip(*details_vertical):
print(f"{name},is a {profession} for {experience} years in {city}, {state}")
我建议使用内置format
方法而不是f-string:更多功能的因为你可以做一个模板字符串之间共享数据的其他"人民。每个人的数据可以通过将传递给模板的字典理解来收集。注意到字典的键值扩张,**
。
# form per person
string_template = "{name}, is a {profession} for {no_of_years} years in {cities}, {states}"
keys = 'name', 'profession', 'no_of_years', 'cities', 'states'
data = {k: input(f'Insert {k}: ') for k in keys}
print(string_template.format(**data)) # key-value expansion
为了进一步减少keys
和string_format
之间的依赖关系,可以(再次)使用字符串-format
功能:
# per person
keys = 'name', 'profession', 'no_of_years', 'cities', 'states'
string_template = "{}, is a {} for {} years in {}, {}".format(*map('{{{}}}'.format, keys))
...
注意到在{{{}}}
两支架需要逃离的象征和最后替换format
。
这里有一个可能的交互程序:
keys = 'name', 'profession', 'no_of_years', 'cities', 'states'
string_format = "{}, is a {} for {} years in {}, {}".format(*map('{{{}}}'.format, keys))
data_people = []
while True:
main_menu_selection = input('[enter] Add a personn[q] Quit')
if main_menu_selection == 'q':
print('Quit.')
break
data_person = {k: input(f'Insert {k}: ') for k in keys}
data_person_str = string_format.format(**data_person)
data_people.append(data_person_str)
print(*data_people, sep='n')