字符串就是一系列字符,在Python中,用引号括起的都是字符串,其中的引号可以是单引号,也可以是双引号,如下所示:
"This is a string."
'This is also a string.'
这种灵活性让你能够在字符串中包含引号和撇号:
'I told my friend, "Python is my favorite language!"'
"The language 'Python' is named after Monty Python, not the snake."
"One of Python's strengths is its diverse and supportive community."
name = "ada lovelace"
print(name.title())
执行结果如下图:
在这个示例中,变量name指向小写的字符串"ada lovelace"。在函数调用print()中,方法title()出现在这个变量的后面。方法是Python可对数据执行的操作。在name.title()中,name后面的句点(.)让Python对变量name执行方法title()指定的操作。每个方法后面都跟着一对圆括号,这是因为方法通常需要额外的信息来完成其工作。这种信息是在圆括号内提供的。函数title()不需要额外的信息,因此它后面的圆括号是空的。方法title()以首字母大写的方式显示每个单词,即将每个单词的首字母都改为大写。这很有用,因为你经常需要将名字视为信息。例如,你可能希望程序将值Ada、ADA和ada视为同一个名字,并将它们都显示为Ada。
例如:
name = "Ada Lovelace"
print(name.upper())
print(name.lower())
存储数据时,方法lower()很有用。很多时候,你无法依靠用户来提供正确的大小写,因此需要将字符串先转换为小写,再存储它们。以后需要显示这些信息时,再将其转换为最合适的大小写方式。
在有些情况下,你可能想在字符串中使用变量的值。例如,你可能想使用两个变量分别表示名和姓,然后合并这两个值以显示姓名:
first_name = "ada"
last_name = "lovelace"
full_name = f"{first_name} {last_name}"
print(full_name)
要在字符串中插入变量的值,可在前引号前加上字母f,再将要插入的变量放在花括号内。这样,当Python显示字符串时,将把每个变量都替换为其值。这种字符串名为f字符串。f是format(设置格式)的简写,因为Python通过把花括号内的变量替换为其值来设置字符串的格式。上述代码的输出如下:
ada lovelace
使用f字符串可完成很多任务,如利用与变量关联的信息来创建完整的消息,如下所示:
first_name = "ada"
last_name = "lovelace"
full_name = f"{first_name} {last_name}"
print(f"Hello, {full_name.title()}!")
在这里,一个问候用户的句子中使用了完整的姓名,并使用方法title()来将姓名设置为合适的格式。这些代码显示一条格式良好的简单问候语:Hello, Ada Lovelace!
上述代码也显示消息Hello, Ada Lovelace!,但将这条消息赋给了一个变量,这让最后的函数调用print()变得简单得多。
注意 f字符串是Python 3.6引入的。如果你使用的是Python 3.5或更早的版本,需要使用format()方法,而非这种f语法。要使用方法format(),可在圆括号内列出要在字符串中使用的变量。对于每个变量,都通过一对花括号来引用。这样将按顺序将这些花括号替换为圆括号内列出的变量的值,如下所示:
full_name = "{} {}".format(first_name, last_name)
在编程中,空白泛指任何非打印字符,如空格、制表符和换行符。你可以使用空白来组织输出,让用户阅读起来更容易。
要在字符串中添加制表符,可使用字符组合\t。
要在字符串中添加换行符,可使用字符组合\n。
字符串"\n\t"让Python换到下一行,并在下一行开头添加一个制表符.
在程序中,额外的空白可能令人迷惑。对程序员来说,'python’和’python '看起来几乎没什么两样,但对程序来说,它们却是两个不同的字符串。Python能够发现’python '中额外的空白,并认为它意义重大——除非你告诉它不是这样的。
空白很重要,因为你经常需要比较两个字符串是否相同。一个重要的示例是,在用户登录网站时检查其用户名。不过在非常简单的情形下,额外的空格也可能令人迷惑。所幸,在Python中删除用户输入数据中的多余空白易如反掌。
方法rstrip(),可以删除字符串末尾的空白。
方法strip(),可以删除字符串开头的空白。
方法lstrip(),可以删除字符串两边的空白。
但需要注意的是,这种删除是临时性的,但变量引用了该方法后,并不会改变变量的实际值,需要重新对变量进行赋值。
完成下面的每个练习时,都编写一个独立的程序,并将其保存为名称类似于name_cases.py的文件。
练习1:个性化消息 用变量表示一个人的名字,并向其显示一条消息。
显示的消息应非常简单,下面是一个例子。
Hello Eric, would you like to learn some Python today?
练习2:调整名字的大小写
用变量表示一个人的名字,再以小写、大写和首字母大写的方式显示这个人名。
练习3:名言
找一句你钦佩的名人说的名言,将其姓名和名言打印出来。输出应类似于下面这样(包括引号)。Albert Einstein once said, “A person who never made a mistake never tried anything new.”
练习4:剔除人名中的空白
用变量表示一个人的名字,并在其开头和末尾都包含一些空白字符。务必至少使用字符组合"\t"和"\n"各一次。打印这个人名,显示其开头和末尾的空白。分别使用剔除函数lstrip()、rstrip()和strip()对人名进行处理,并将结果打印出来。
下一篇:python基本数据类型(二)-数