【问题标题】:working on specific characters in a string in python在python中处理字符串中的特定字符
【发布时间】:2018-05-04 14:41:13
【问题描述】:

我是 python 新手。我以前用过c。在那里,我们可以使用字符串中的索引逐个字符地工作。我试图将整个字符串转换为小写,反转它并用大写的第一个字符打印它

first_name = input("enter your first name\n")
last_name = input("enter your last name\n")
first_name = first_name.lower()
last_name = last_name.lower()
def rev(s):
 str = ""
 for i in s:
    str = i + str
    return str
first_name = rev(first_name)
last_name = rev(last_name)
first_name[0].upper()
last_name[0].upper()
print(first_name + " " + last_name)

输出是

输入你的名字

马纳什

输入您的姓氏

夏尔玛

米秒

【问题讨论】:

标签: python string python-3.x


【解决方案1】:
  • 您可以使用[::-1] 来反转您的字符串
  • str.capitalizestr.title 获取首字母大写

演示:

first_name = input("enter your first name\n")
last_name = input("enter your last name\n")
first_name = first_name[::-1].capitalize()
last_name = last_name[::-1].capitalize()

【讨论】:

  • 不需要 .lower() 调用 .capitalize() 句柄
  • @Chris_Rands。谢谢。
  • 但是我们被要求不要使用任何库函数。如果没有库函数,我们如何实现这一点。
  • @ManashSharma 此处仅使用默认方法
【解决方案2】:

您的错误在于在 for 循环中立即返回,并且没有分配大写:

first_name = input("enter your first name\n")
last_name = input("enter your last name\n")
first_name = first_name.lower()
last_name = last_name.lower()
def rev(s):
    str = ""
    for i in s:
       str = i + str
    return str
first_name = rev(first_name)
last_name = rev(last_name)
first_name = first_name[0].upper() + first_name[1:]
last_name = last_name[0].upper() + last_name[1:]
print(first_name + " " + last_name)

请注意,当然还有更好、更快、更简单的方法,如另一个答案所示。

【讨论】:

  • 文件“3.py”,第 12 行,在 first_name[0] = first_name[0].upper() TypeError: 'str' object does not support item assignment
  • 哎呀,你是对的。您不能更改字符串,它们是不可变的。固定答案。
猜你喜欢
  • 1970-01-01
  • 2013-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-19
  • 2017-05-03
  • 2019-09-04
  • 2019-07-12
相关资源
最近更新 更多