Python每日一练
问题:
编写一个程序来判断一个句子是否为标题文本。
定义函数is_title(),参数为一个句子。
在函数内,如果句子中的每个单词都以大写字母开头,则返回True,否则返回False。
题目来源:PythonTip
https://edu.py2fun.com/
代码实现
代码如下(示例):
def is_title(sentence):
# 在此处编写代码
sentence_list = sentence.split() # 将句子的单词分割出来,返回一个列表
for i in sentence_list: # for循环把每个单词从列表拿出来
if i[0].isupper(): # 对每个单词的首字母进行判断,如果是大写字母则循环跳过
continue
else:
return False
return True
# 从用户处获取输入
input_sentence = input()
# 调用函数
print(is_title(input_sentence))
示例输入:
The Quick Brown Fox
示例输出:
True
总结
纵观上述代码,思想明了,逻辑简单,无需赘述。
代码中又一次使用了字符串的split()函数,之前的博文里已经解释过它的用法,感兴趣的小伙伴可以点击前往。
这里我们尝试对Python判断字母大小写的3种常用方法做一个小结。
方法一:使用isupper()和islower()方法
Python中的字符串对象有两个方法可以用来判断字母的大小写:isupper()和islower()。isupper()方法返回True,如果字符串中的所有字母都是大写的;islower()方法返回True,如果字符串中的所有字母都是小写的。
代码如下(示例):
# 判断字母是否为大写
letter = 'A'
if letter.isupper():
print("字母是大写的")
else:
print("字母是小写的")
# 判断字母是否为小写
letter = 'a'
if letter.islower():
print("字母是小写的")
else:
print("字母是大写的")
示例输出:
字母是大写的
字母是小写的
方法二:使用ASCII码值
每个字母在计算机中都有一个对应的ASCII码值。我们可以通过比较字母的ASCII码值来判断其大小写。大写字母的ASCII码值范围是65到90,小写字母的ASCII码值范围是97到122。
代码如下(示例):
# 判断字母是否为大写
letter = 'A'
if ord(letter) >= 65 and ord(letter) <= 90:
print("字母是大写的")
else:
print("字母是小写的")
# 判断字母是否为小写
letter = 'a'
if ord(letter) >= 97 and ord(letter) <= 122:
print("字母是小写的")
else:
print("字母是大写的")
示例输出:
字母是大写的
字母是小写的
方法三:穷举法
将26个字母分别按大小写存入一个列表,将需要判断的字符拿出来进行比对
代码如下(示例):
# 生成字母表
upper_list = []
lower_list = []
for i in range(26):
upper_list.append(chr(ord('A')+i))
lower_list.append(chr(ord('a')+i))
# 判断字母是否大写
letter = 'A'
if letter in upper_list:
print("字母是大写的")
else:
print("字母是小写的")
# 判断字母是否为小写
letter = 'a'
if letter in lower_list:
print("字母是小写的")
else:
print("字母是大写的")
示例输出:
字母是大写的
字母是小写的