变量和简单数据类型(字符串)
字符串
大多数程序都定义并收集某种数据,然后使用它们来做些有意义的事情。鉴于此,对数据进行分类大有裨益。我们将介绍的第一种数据类型是字符串。字符串虽然看似简单,但能够以很多不同的方式使用它们。
name = "ada lovelace"
print(name.title())
在这个示例中,小写的字符串"ada lovelace" 存储到了变量name 中。在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() 很有用。很多时候,你无法依靠用户来提供正确的大小写,因此需要将字符串先转换为小写,再存储它们。以后需要显示这些信息时,再将其转换为
最合适的大小写方式。
注意
全部转换为小写:lower()方法:此方法会返回一个新的字符串,原字符串不会被改变。
s = 'ZXF'
s1 = s.lower()
print(s) # 输出 'ZXF'
print(s1) # 输出 'zxf'[1]()
全部转换为大写:upper()方法:同样返回新字符串,原字符串不变。
s = 'zxF'
print(s.upper()) # 输出 'ZXF'[1]()
首字母大写,其余字母小写:capitalize()方法:把字符串的第一个字母变为大写,其他字母变为小写。
s = "hello, I’m Zxf"
print(s.capitalize()) # 输出 'Helloi’mzxf'[1]()
每个单词的首字母大写,其余字母小写:title()方法:对于有多个单词的字符串,它会将每个单词的首字母转换为大写,其余字母转换为小写。
s = "zXflMl"
print(s.title()) # 输出 'ZxfLml'[1]()
大小写互换:swapcase()方法:该方法会将字符串中的大写字母转换为小写,小写字母转换为大写。
s = 'ZXf'
print(s.swapcase()) # 输出 'zxF'[1]()
合并(拼接)字符串
在很多情况下,都需要合并字符串。例如,你可能想将姓和名存储在不同的变量中,等要显示姓名时再将它们合而为一:Python使用加号(+ )来合并字符串。这种合并字符串的方法称为拼接
first_name = "ada"
last_name = "lovelace"
❶ full_name = first_name + " " + last_name
print(full_name)
first_name = "ada"
last_name = "lovelace"
full_name = first_name + " " + last_name
❶ print("Hello, " + full_name.title() + "!")
使用制表符或换行符来添加空白
在编程中,空白 泛指任何非打印字符,如空格、制表符和换行符。你可使用空白来组织输出,以使其更易读。要在字符串中添加制表符,可使用字符组合\t。
要在字符串中添加换行符,可使用字符组合\n :
还可在同一个字符串中同时包含制表符和换行符。字符串"\n\t" 让Python换到下一行,并在下一行开头添加一个制表符。
删除空白
在程序中,额外的空白可能令人迷惑。对程序员来说,‘python’ 和’python ’ 看起来几乎没什么两样,但对程序来说,它们却是两个不同的字符串。Python能够发
现’python ’ 中额外的空白,并认为它是有意义的——除非你告诉它不是这样的。
空白很重要,因为你经常需要比较两个字符串是否相同。例如,一个重要的示例是,在用户登录网站时检查其用户名。但在一些简单得多的情形下,额外的空格也可能令人迷惑。所幸在Python中,删除用户输入的数据中的多余的空白易如反掌。
Python能够找出字符串开头和末尾多余的空白。要确保字符串末尾没有空白,可使用方法rstrip() 。
要永久删除这个字符串中的空白,必须将删除操作的结果存回到变量中:
为删除这个字符串中的空白,你需要将其末尾的空白剔除,再将结果存回到原来的变量中。在编程中,经常需要修改变量的值,再将新值存回到原来的变量中。这就是变量的值可能随程序的运行或用户输入数据而发生变化的原因。
你还可以剔除字符串开头的空白,或同时剔除字符串两端的空白。为此,可分别使用方法lstrip() 和strip() :
使用字符串时避免语法错误
语法错误 是一种时不时会遇到的错误。程序中包含非法的Python代码时,就会导致语法错误。例如,在用单引号括起的字符串中,如果包含撇号,就将导致错误。这是因为这会
导致Python将第一个单引号和撇号之间的内容视为一个字符串,进而将余下的文本视为Python代码,从而引发错误。
注意 编写程序时,编辑器的语法突出功能可帮助你快速找出某些语法错误。看到Python代码以普通句子的颜色显示,或者普通句子以Python代码的颜色显示时,就可
能意味着文件中存在引号不匹配的情况。
Python 2中的print 语句
在Python 2中,无需将要打印的内容放在括号内。从技术上说,Python 3中的print 是一个函数,因此括号必不可少。有些Python 2 print 语句也包含括号,但其行为与Python 3中
稍有不同。简单地说,在Python 2代码中,有些print 语句包含括号,有些不包含。
**练习:**将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消息应非常简单,如“Hello Eric, would you like to learn some Python today?”。
# 获取用户姓名并存储到变量
name = input("请输入你的姓名: ")
# 显示包含用户姓名的消息
print(f"Hello {name}, would you like to learn some Python today?")
**练习:**将一个人名存储到一个变量中,再以小写、大写和首字母大写的方式显示这个人名。
name = "John"
print(name.lower())
print(name.upper())
print(name.capitalize())
**练习:**存储一个人名,并在其开头和末尾都包含一些空白字符。务必至少使用字符组合"\t" 和"\n" 各一次。
打印这个人名,以显示其开头和末尾的空白。然后,分别使用剔除函数lstrip() 、rstrip() 和strip() 对人名进行处理,并将结果打印出来。
name = "\tJohn Doe\n "
print("原始人名:", name)
new_name_lstrip = name.lstrip()
print("使用lstrip()处理后的人名:", new_name_lstrip)
new_name_rstrip = name.rstrip()
print("使用rstrip()处理后的人名:", new_name_rstrip)
new_name_strip = name.strip()
print("使用strip()处理后的人名:", new_name_strip)