test = ["hello", "world", "yoyo"]
# 定义一个空字符串
j = ''# 通过 for 循环打印出列表中的数据for i in test:
j = j + "_" + i
# 因为通过上面的字符串拼接,得到的数据是"_hello_world_yoyo",前面会多一个下划线_,所以把这个下划线去掉print(j.lstrip("_"))
3. 把字符串 s 中的每个空格替换成'%20',输入:s = 'We are happy.',输出:'We%20are%20happy.'。
使用 replace 函数,替换字符换即可:
s = 'We are happy.'print(s.replace(' ', '%20'))
结果:
We%20are.
%20happy
4. Python 如何打印 99 乘法表?
for 循环打印:
for i inrange(1, 10):
for j inrange(1, i+1):
print('{}x{}={} '.format(j, i, i*j), end='')
print()
while 循环实现:
i = 1while i <= 9:
j = 1while j <= i:
print("%d*%d=%-2d"%(i,j,i*j),end = ' ') # %d:整数的占位符,'-2'代表靠左对齐,两个占位符
j += 1print()
i += 1
5. 从下标 0 开始索引,找出单词 'welcome' 在字符串'Hello, welcome to my world.' 中出现的位置,找不到返回 -1。
deftest():
message = 'Hello, welcome to my world.'
world = 'welcome'if world in message:
return message.find(world)
else:
return -1print(test())
结果:
7
6. 统计字符串'Hello, welcome to my world.' 中字母 w 出现的次数。
deftest():
message = 'Hello, welcome to my world.'# 计数
num = 0# for 循环 messagefor i in message:
# 判断如果'w'字符串在 message 中,则 num +1if'w'in i:
num += 1return num
print(test())
# 结果2
7. 输入一个字符串 str,输出第 m 个只出现过 n 次的字符,如在字符串 gbgkkdehh 中,找出第 2 个只出现 1 次的字符,输出结果:d
deftest(str_test, num, counts):
"""
:param str_test: 字符串
:param num: 字符串出现的次数
:param count: 字符串第几次出现的次数
:return:
"""# 定义一个空数组,存放逻辑处理后的数据list = []
# for 循环字符串的数据for i in str_test:
# 使用 count 函数,统计出所有字符串出现的次数
count = str_test.count(i, 0, len(str_test))
# 判断字符串出现的次数与设置的 counts 的次数相同,则将数据存放在 list 数组中if count == num:
list.append(i)
# 返回第 n 次出现的字符串returnlist[counts-1]
print(test('gbgkkdehh', 1, 2))
结果:
d
8. 判断字符串 a = 'welcome to my world' 是否包含单词 b = 'world',包含返回 True,不包含返回 False。
deftest():
message = 'welcome to my world'
world = 'world'if world in message:
returnTruereturnFalseprint(test())
结果:
True
9. 从 0 开始计数,输出指定字符串 A = 'hello' 在字符串 B = 'hi how are you hello world, hello yoyo!'中第一次出现的位置,如果 B 中不包含 A,则输出 -1。
deftest():
message = 'hi how are you hello world, hello yoyo!'
world = 'hello'return message.find(world)
print(test())
结果:
15
10. 从 0 开始计数,输出指定字符串 A = 'hello'在字符串 B = 'hi how are you hello world, hello yoyo!'中最后出现的位置,如果 B 中不包含 A,则输出 -1。
deftest(string, str):
# 定义 last_position 初始值为 -1
last_position = -1whileTrue:
position = string.find(str, last_position+1)
if position == -1:
return last_position
last_position = position
print(test('hi how are you hello world, hello yoyo!', 'hello'))
deftrim(s):
flag = 0if s[:1]==' ':
s = s[1:]
flag = 1if s[-1:] == ' ':
s = s[:-1]
flag = 1if flag==1:
return trim(s)
else:
return s
print(trim(' Hello world! '))
通过 while 循环实现:
deftrim(s):
while(True):
flag = 0if s[:1]==' ':
s = s[1:]
flag = 1if s[-1:] == ' ':
s = s[:-1]
flag = 1if flag==0:
breakreturn s
print(trim(' Hello world! '))
16. 将字符串 s = 'ajldjlajfdljfddd',去重并从小到大排序输出'adfjl'。
deftest():
s = 'ajldjlajfdljfddd'# 定义一个数组存放数据
str_list = []
# for 循环 s 字符串中的数据,然后将数据加入数组中for i in s:
# 判断如果数组中已经存在这个字符串,则将字符串移除,加入新的字符串if i in str_list:
str_list.remove(i)
str_list.append(i)
# 使用 sorted 方法,对字母进行排序
a = sorted(str_list)
# sorted 方法返回的是一个列表,这边将列表数据转换成字符串return"".join(a)
print(test())
结果:
adfjl
17. 打印出如下图案(菱形):
deftest():
n = 8for i inrange(-int(n/2), int(n/2) + 1):
print(" "*abs(i), "*"*abs(n-abs(i)*2))
print(test())
deftest():
for num inrange(100, 1000):
i = num // 100
j = num // 10 % 10
k = num % 10if i ** 3 + j ** 3 + k ** 3 == num:
print(str(num) + "是水仙花数")
test()
20. 求 1+2+3…+100 相加的和。
i = 1for j inrange(101):
i = j + i
print(i)
结果:
5051
21. 计算 1-2+3-4+5-…-100 的值。
deftest(sum_to):
# 定义一个初始值
sum_all = 0# 循环想要计算的数据for i inrange(1, sum_to + 1):
sum_all += i * (-1) ** (1 + i)
return sum_all
if __name__ == '__main__':
result = test(sum_to=100)
print(result)