1.编写程序,统计输入的字符串中的单词的个数,单词之间用空格分隔。例如,输入字符串“Python is very interesting”,其中的单词总数有4个
n = "Python is very interesting"
s = n.split() //split()字符分割
print("单词个数:",len(s),s)
//运行结果
单词个数: 4 ['Python', 'is', 'very', 'interesting']
2.编写程序,输入字符串,为其每个字符的ASCII码形成列表并输出。例如,输入字符串“Python”,输出列表[80,121,116,104,111,110]。
text = input("输入一串字符串:")
txt = []
for t in text:
txt.append(ord(t))
print(txt)
//运行结果
输入一串字符串:Python
[80, 121, 116, 104, 111, 110]
3.编写程序,将一个人名字从“名 中间名.姓”的格式顺序转变为“姓,名 中间名”的格式,例如James F.Cooper',转换后的结果为"Cooper,JamnesF'。
def reverse_name( name ) -> str:
split_name = name.split('.')
return f'{split_name[1]},{split_name[0]}'
if __name__ == "__main__":
print( reverse_name('James F.Cooper') )
//运行结果
Cooper,James F
4.编写程序,判断一个字符串是不是回文字符串,所谓回文字符串是指正序和逆序相同的字符串,例如,字符串“hiih”即为回文字符串。
def judge_palindrome( t_str ) -> bool:
copy_str = ''.join( reversed( t_str ) )
return True if copy_str == t_str else False
if __name__ == "__main__":
print( judge_palindrome( 'hiih' ) )
//运行结果
True
5.编写程序,输入一串英文字符串(带空格和标点符号),将其中的空格和标点符号去除,再判断该字符串是不是回文串。
import re
def judge_palindrome(new_str):
pass
def upgrade_palindrome( t_str ) -> bool:
new_str = re.sub( r'\W', '', t_str )
return judge_palindrome( new_str )
if __name__ == "__main__":
print( upgrade_palindrome( 'f agsfg ,dsf.21' ) )
//运行结果
None
6.编写程序,输入一个字符串,统计其中大写字母、小写字母、数字及其它字符的个数。
import re
def count_something( t_str, rule ) -> int:
return len( list( filter( lambda x : rule(x), t_str ) ) )
if __name__ == "__main__":
print( count_something( 'fgh123FSR434F65 ,.,', lambda x : re.match( r'[0-9]', x ) ) )
//运行结果
8
7.编写程序,输入一个字符串,将字符串中下标为偶数位置上的字母转换为大写字母。
def change_upper( t_str ) -> str:
copy_str = list( t_str )
for i in range( 0, len(t_str), 2 ):
copy_str[i] = copy_str[i].upper()
return ''.join(copy_str)
if __name__ == "__main__":
print( change_upper( 'abcdef' ) )
//运行结果
AbCdEf
8.编写程序,输入一段文本,统计其中有多少个不同的单词?并按照单词出现的频率降序输出。
import re
def count_words( text ) -> tuple:
c_text = list( filter( lambda x : x != '', re.split( r'[,.\s]', text ) ) )
e_text = list( set(c_text) )
count = []
for item in e_text:
count.append( c_text.count(item) )
e_text_count = list( zip( e_text, count ) )
e_text_count.sort( reverse=True, key=lambda s : s[1] )
return len(e_text), tuple( [x[0] for x in e_text_count] )
if __name__ == "__main__":
print( count_words( 'i am a boy, i am eight years old. i like playing football.' ) )
//运行结果
(10, ('i', 'am', 'years', 'eight', 'playing', 'a', 'football', 'like', 'boy', 'old'))