首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >把这些信息用一句话打印出来

把这些信息用一句话打印出来
EN

Stack Overflow用户
提问于 2022-06-29 17:18:11
回答 2查看 89关注 0票数 -2

将有关个人的所有信息用一句话打印如下:“姓名是一个州城市多年的职业。”

示例输入:-

苏尼尔·尚卡尔·萨勒曼

牙科医生木匠

15 10 10

孟买勒克瑙德里

Uttar_Pradesh New_Delhi Maharashtra

输出:-

苏尼尔在Uttar_Pradesh的勒克瑙做了15年的博士。

尚卡尔在德里( New_Delhi )做了10年的牙医。

萨勒曼是一个木匠在孟买,马哈拉施特拉邦10年。

代码语言:javascript
复制
**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}")
EN

回答 2

Stack Overflow用户

发布于 2022-06-29 17:31:09

假设输入行之间没有空格,则垂直存储详细信息,矩阵转置则给出每一行中人的详细信息。zip()函数有助于转移矩阵

代码语言:javascript
复制
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}")
票数 -1
EN

Stack Overflow用户

发布于 2022-06-29 18:15:14

我建议使用内置的format-approach,而不是f-字符串:它更通用,因为您可以创建一个模板字符串,在其他“人员”的数据之间共享。每个人的数据可以通过字典理解来收集,该字典将被传递给模板。注意字典**的键值扩展。

代码语言:javascript
复制
# 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之间的依赖,可以(再次)使用string-format功能:

代码语言:javascript
复制
# per person
keys = 'name', 'profession', 'no_of_years', 'cities', 'states'

string_template = "{}, is a {} for  {} years  in {}, {}".format(*map('{{{}}}'.format, keys))
...

注意,在{{{}}}中,转义符号需要两个括号,用format替换则需要最后一个括号。

这里有一个可能的互动方案:

代码语言:javascript
复制
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 person\n[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')
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72805462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档