Heim >Backend-Entwicklung >Python-Tutorial >30 Python-Übungsfragen, die es wert sind, gesammelt zu werden (mit ausführlichen Erklärungen)

30 Python-Übungsfragen, die es wert sind, gesammelt zu werden (mit ausführlichen Erklärungen)

王林
王林nach vorne
2023-04-14 18:01:061788Durchsuche

30 Python-Übungsfragen, die es wert sind, gesammelt zu werden (mit ausführlichen Erklärungen)

1. Wie erhalte ich eine Warteschlange [„hello“, „world“, „yoyo“], wenn eine Zeichenfolge „hello_world_yoyo“ lautet?

Verwenden Sie die Split-Funktion, um die Zeichenfolge zu teilen und die Daten in einen Listentyp umzuwandeln:

test = 'hello_world_yoyo'
print(test.split("_"))
12

Ergebnis:

['hello', 'world', 'yoyo']

2. Es gibt eine Liste ["Hallo", "Welt", "Jojo"], wie man konvertiert Die Zeichenfolgen verketten, um die Zeichenfolge „hello_world_yoyo“ zu erhalten?

Verwenden Sie die Join-Funktion, um die Daten in einen String umzuwandeln:

test = ["hello", "world", "yoyo"]
print("_".join(test))

Ergebnis:

hello_world_yoyo

Wenn Sie sich nicht auf die von Python bereitgestellte Join-Methode verlassen, können Sie auch eine for-Schleife verwenden und dann die Strings verbinden, aber verwenden „+“, um die Zeichenfolgen zu verbinden. Bei Verwendung von „Join“ wird durch das Ergebnis ein neues Objekt generiert. Bei Verwendung von „Join“ werden als Ergebnis lediglich die Elemente in der ursprünglichen Liste verkettet, sodass „Join“ effizienter ist.

Die for-Schleife wird wie folgt zusammengefügt:

test = ["hello", "world", "yoyo"]
# 定义一个空字符串
j = ''
# 通过 for 循环打印出列表中的数据
for i in test:
 j = j + "_" + i
# 因为通过上面的字符串拼接,得到的数据是“_hello_world_yoyo”,前面会多一个下划线_,所以把这个下划线去掉
print(j.lstrip("_"))

3. Ersetzen Sie jedes Leerzeichen in der Zeichenfolge s durch „%20“, Eingabe: s = „Wir sind glücklich.“, Ausgabe: „Wir %20 sind %20 glücklich. ".

Verwenden Sie die Ersetzungsfunktion und ersetzen Sie die Zeichen:

s = 'We are happy.'
print(s.replace(' ', '%20'))
12

Ergebnis:

We%20are%20happy.

4 Wie drucke ich die 99er-Einmaltabelle in Python?

for-Schleifendruck:

for i in range(1, 10):
 for j in range(1, i+1):
 print('{}x{}={}t'.format(j, i, i*j), end='')
 print()

while-Schleifenimplementierung:

i = 1
while i <= 9:
 j = 1
 while j <= i:
 print("%d*%d=%-2d"%(i,j,i*j),end = ' ')# %d: 整数的占位符,'-2'代表靠左对齐,两个占位符
 j += 1
 print()
 i += 1

Ergebnis:

1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81

5. Beginnen Sie mit der Indizierung ab Index 0 und suchen Sie das Wort „Willkommen“, das in der Zeichenfolge „Hallo, willkommen in meiner Welt“ erscheint Der Standort wurde nicht gefunden, es wird -1 zurückgegeben.

def test():
 message = 'Hello, welcome to my world.'
 world = 'welcome'
 if world in message:
 return message.find(world)
 else:
 return -1
print(test())

Ergebnis:

7

6. Zählen Sie, wie oft der Buchstabe w in der Zeichenfolge „Hallo, willkommen in meiner Welt“ vorkommt.

def test():
 message = 'Hello, welcome to my world.'
 # 计数
 num = 0
 # for 循环 message
 for i in message:
 # 判断如果 ‘w’ 字符串在 message 中,则 num +1
 if 'w' in i:
 num += 1
 return num
print(test())
# 结果
2

7. Geben Sie eine Zeichenfolge str ein und geben Sie das m-te Zeichen aus, das nur n-mal vorkommt. Suchen Sie beispielsweise in der Zeichenfolge gbgkkdehh das zweite Zeichen, das nur einmal vorkommt, und geben Sie das Ergebnis aus: d

def test(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次出现的字符串
 return list[counts-1]
print(test('gbgkkdehh', 1, 2))
结果:
d

8 ob die Zeichenfolge a = „Willkommen in meiner Welt“ das Wort b = „Welt“ enthält, wenn dies der Fall ist, wird True zurückgegeben, wenn nicht, wird False zurückgegeben.

def test():
 message = 'welcome to my world'
 world = 'world'
 if world in message:
 return True
 return False
print(test())
结果:
True

9. Beginnen Sie mit dem Zählen bei 0 und geben Sie die angegebene Zeichenfolge aus.

def test():
 message = 'hi how are you hello world, hello yoyo!'
 world = 'hello'
 return message.find(world)
print(test())
结果:
15

10. Beginnen Sie mit dem Zählen bei 0 und geben Sie die angegebene Zeichenfolge A = „Hallo“ aus letzte Vorkommensposition in B, wenn B kein A enthält, wird -1 ausgegeben.

def test(string, str):
 # 定义 last_position 初始值为 -1
 last_position = -1
 while True:
 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'))
结果:
28

11. Bestimmen Sie bei einer gegebenen Zahl a, ob eine Zahl eine ungerade oder eine gerade Zahl ist.

while True:
 try:
 # 判断输入是否为整数
 num = int(input('输入一个整数:'))
 # 不是纯数字需要重新输入
except ValueError:
 print("输入的不是整数!")
 continue
 if num % 2 == 0:
 print('偶数')
 else:
 print('奇数')
 break
结果:
输入一个整数:100
偶数

12. Geben Sie einen Namen ein, um festzustellen, ob der Nachname Wang ist.

def test():
 user_input = input("请输入您的姓名:")
 if user_input[0] == '王':
 return "用户姓王"
 return "用户不姓王"
print(test())
结果:
请输入您的姓名:王总
用户姓王

13. Wie kann man feststellen, ob eine Zeichenfolge aus reinen Zahlen besteht?

Verwenden Sie die von Python bereitgestellte Typkonvertierung, um die vom Benutzer eingegebenen Daten in einen Gleitkommazahlentyp umzuwandeln. Wenn die Konvertierung eine Ausnahme auslöst, wird festgestellt, dass die Zahl nicht aus reinen Zahlen besteht.

def test(num):
 try:
 return float(num)
 except ValueError:
 return "请输入数字"
print(test('133w3'))

14. Konvertieren Sie die Zeichenfolge a = „Das ist ein Zeichenfolgenbeispiel….wow!“ in Großbuchstaben und die Zeichenfolge b = „Willkommen in meiner Welt“ in Kleinbuchstaben.

a = 'This is string example….wow!'
b = 'Welcome To My World'
print(a.upper())
print(b.lower())

15. Entfernen Sie die führenden und nachgestellten Leerzeichen aus der Zeichenfolge a = „Willkommen in meiner Welt“

Python bietet die Methode „strip()“ zum Entfernen der führenden und nachgestellten Leerzeichen, rstrip() entfernt die nachgestellten Leerzeichen, lstrip() Entfernt die führenden Leerzeichen, replace( " ", "") entfernt alle Leerzeichen.

a = 'welcome to my world '
print(a.strip())

kann auch rekursiv implementiert werden:

def trim(s):
 flag = 0
 if s[:1]==' ':
 s = s[1:]
 flag = 1
 if s[-1:] == ' ':
 s = s[:-1]
 flag = 1
 if flag==1:
 returntrim(s)
 else:
 return s
print(trim('Hello world!'))

implementiert durch eine while-Schleife:

def trim(s):
 while(True):
 flag = 0
 if s[:1]==' ':
 s = s[1:]
 flag = 1
 if s[-1:] == ' ':
 s = s[:-1]
 flag = 1
 if flag==0:
 break
 return s
print(trim('Hello world!'))

16. Konvertieren Sie die Zeichenfolge s = „ajldjlajfdljfddd“, entfernen Sie Duplikate und sortieren Sie von klein nach groß, um „adfjl“ auszugeben.

def test():
 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. Drucken Sie das folgende Muster aus (Raute):

30 Python-Übungsfragen, die es wert sind, gesammelt zu werden (mit ausführlichen Erklärungen)

def test():
 n = 8
 for i in range(-int(n/2), int(n/2) + 1):
 print(" "*abs(i), "*"*abs(n-abs(i)*2))
print(test())
结果:
 **
****
 ******
********
 ******
****
 **

18. Finden Sie heraus, wie viele Ziffern eine positive ganze Zahl mit nicht mehr als 5 Ziffern hat, und drucken Sie sie aus die Ziffern in umgekehrter Reihenfolge.

class Test:
 # 计算数字的位数
 def test_num(self, num):
 try:
 # 定义一个 length 的变量,来计算数字的长度
 length = 0
 while num != 0:
 # 判断当 num 不为 0 的时候,则每次都除以10取整
 length += 1
 num = int(num) // 10
 if length > 5:
 return "请输入正确的数字"
 return length
 except ValueError:
 return "请输入正确的数字"
 # 逆序打印出个位数
 def test_sorted(self, num):
 if self.test_num(num) != "请输入正确的数字":
 # 逆序打印出数字
 sorted_num = num[::-1]
 # 返回逆序的个位数
 return sorted_num[-1]
print(Test().test_sorted('12346'))
结果:
1

19. Wenn eine dreistellige Zahl der Summe ihrer Ziffernwürfel entspricht, wird sie Narzissenzahl genannt. Beispiel: 153 = 13 + 53 + 33, also ist 153 eine Narzissenzahl. So finden Sie die Anzahl der Narzissen innerhalb von 1000 (3 Ziffern).

def test():
 for num in range(100, 1000):
 i = num // 100
 j = num // 10 % 10
 k = num % 10
 if i ** 3 + j ** 3 + k ** 3 == num:
 print(str(num) + "是水仙花数")
test()

20. Finden Sie die Summe von 1+2+3…+100.

i = 1
for j in range(101):
 i = j + i
print(i)
结果:
5051

21. Berechnen Sie den Wert von 1-2+3-4+5-…-100.

def test(sum_to):
 # 定义一个初始值
 sum_all = 0
 # 循环想要计算的数据
 for i in range(1, sum_to + 1):
 sum_all += i * (-1) ** (1 + i)
 return sum_all
if __name__ == '__main__':
 result = test(sum_to=100)
 print(result)
-50

22. Die bestehende Berechnungsformel ist 13 + 23 + 33 + 43 + …….+ n3. So wird sie umgesetzt: Wenn die Eingabe n = 5 ist, beträgt die Ausgabe 225 (entsprechende Formel: 13 + 23 + 33 + 43). + 53 = 225).

def test(n):
 sum = 0
 for i in range(1, n+1):
 sum += i*10+i
 return sum
print(test(5))
结果:
225

23. Es ist bekannt, dass der Wert von a „Hallo“ und der Wert von b „Welt“ ist. Wie man die Werte von a und b austauscht, um den Wert von a zu „Welt“ zu machen " und der Wert von b soll „Hallo“ sein?

a = 'hello'
b = 'world'
c = a
a = b
b = c
print(a, b)

24. Wie kann man feststellen, ob ein Array ein symmetrisches Array ist?

Zum Beispiel [1, 2, 0, 2, 1], [1, 2, 3, 3, 2, 1] sind solche Arrays alle symmetrische Arrays. Verwenden Sie Python, um zu beurteilen, ob es sich um ein symmetrisches Array handelt, und geben Sie „True“ und nicht „False“ aus.

def test():
 x = [1, 'a', 0, '2', 0, 'a', 1]
 # 通过下标的形式,将字符串逆序进行比对
 if x == x[::-1]:
 return True
 return False
print(test())
结果:
True

25. Wenn es eine Liste a = [1,3,5,7,11] gibt, wie kann man sie dann in [11,7,5,3,1] invertieren und die ungerade Anzahl von Ziffern erhalten? ,5,11]?

def test():
 a = [1, 3, 5, 7, 11]
 # 逆序打印数组中的数据
 print(a[::-1])
 # 定义一个计数的变量
 count = 0
 for i in a:
 # 判断每循环列表中的一个数据,则计数器中会 +1
 count += 1
 # 如果计数器为奇数,则打印出来
 if count % 2 != 0:
 print(i)
test()
结果:
[11, 7, 5, 3, 1]
1
5
11

26. Sortieren Sie die Zahlen in der Liste a = [1, 6, 8, 11, 9, 1, 8, 6, 8, 7, 8] von klein nach groß.

a = [1, 6, 8, 11, 9, 1, 8, 6, 8, 7, 8]
print(sorted(a))
结果:
[1, 1, 6, 6, 7, 8, 8, 8, 8, 9, 11]

27. Finden Sie den Maximal- und Minimalwert in der Liste L1 = [1, 2, 3, 11, 2, 5, 3, 2, 5, 33, 88].

L1 = [1, 2, 3, 11, 2, 5, 3, 2, 5, 33, 88]
print(max(L1))
print(min(L1))
结果:
88
1

Das Obige wird durch die mit Python gelieferten Funktionen implementiert. Sie können wie folgt selbst ein Berechnungsprogramm schreiben:

class Test(object):
 def __init__(self):
 # 测试的列表数据
 self.L1 = [1, 2, 3, 11, 2, 5, 3, 2, 5, 33, 88]
 # 从列表中取第一个值,对于数据大小比对
 self.num = self.L1[0]
 def test_small_num(self, count):
 """
 :param count: count为 1,则表示计算最大值,为 2 时,表示最小值
 :return:
 """
 # for 循环查询列表中的数据
 for i in self.L1:
 if count == 1:
 # 循环判断当数组中的数据比初始值小,则将初始值替换
 if i > self.num:
 self.num = i
 elif count == 2:
 if i < self.num:
 self.num = i
 elif count != 1 or count != 2:
 return "请输入正确的数据"
 return self.num
print(Test().test_small_num(1))
print(Test().test_small_num(2))
结果:
88
1

28. 找出列表 a = [“hello”, “world”, “yoyo”, “congratulations”] 中单词最长的一个。

def test():
 a = ["hello", "world", "yoyo", "congratulations"]

 # 统计数组中第一个值的长度
 length = len(a[0])
 for i in a:
 # 循环数组中的数据,当数组中的数据比初始值length中的值长,则替换掉length的默认值
 if len(i) > length:
 length = i
 return length
print(test())
结果:
congratulations

29. 取出列表 L1 = [1, 2, 3, 11, 2, 5, 3, 2, 5, 33, 88] 中最大的三个值。

def test():
 L1 = [1, 2, 3, 11, 2, 5, 3, 2, 5, 33, 88]
 return sorted(L1)[:3]
print(test())
结果:
[1, 2, 2]

30. 把列表 a = [1, -6, 2, -5, 9, 4, 20, -3] 中的数字绝对值。

def test():
 a = [1, -6, 2, -5, 9, 4, 20, -3]
 # 定义一个数组,存放处理后的绝对值数据
 lists = []
 for i in a:
# 使用 abs() 方法处理绝对值
 lists.append(abs(i))
 return lists
print(test())
结果:
[1, 6, 2, 5, 9, 4, 20, 3]

Das obige ist der detaillierte Inhalt von30 Python-Übungsfragen, die es wert sind, gesammelt zu werden (mit ausführlichen Erklärungen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen