将信息打印成一句话



在一句话中按如下方式打印个人的所有信息"[姓名]是[职业]在[城市],[州]的[年数]年。">

示例输入:-

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

为了进一步减少keysstring_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')

最新更新