Rumah > pembangunan bahagian belakang > Tutorial Python > Emas tiga, perak empat, 50 soalan temuduga Python penting (koleksi disyorkan)

Emas tiga, perak empat, 50 soalan temuduga Python penting (koleksi disyorkan)

Lepaskan: 2023-08-15 14:41:13
ke hadapan
1213 orang telah melayarinya


Pada 2020 yang lalu, Python memenangi Anugerah Bahasa Pengaturcaraan TIOBE tahunan dan menjadi bahasa pengaturcaraan paling popular pada tahun lalu. Ia digunakan secara meluas dalam bidang seperti sains data dan pembelajaran mesin.


Ia adalah musim pengambilan "Golden Three Silver Four" Xiao F telah menyusun 50 soalan temuduga Python untuk anda, serta jawapan yang sepadan, untuk membantu anda memahami dan dengan lebih baik. belajar Python.



▍1. Mengapa ia begitu popular?

Python ialah bahasa pengaturcaraan tujuan umum yang ditafsirkan, peringkat tinggi.


Konsep reka bentuk Python adalah untuk meningkatkan kebolehbacaan kod dengan menggunakan ruang yang diperlukan dan garisan kosong.


Ia popular kerana sintaksnya yang ringkas dan mudah digunakan.


▍2 Mengapa pelaksanaan Python lambat dan bagaimana kita boleh memperbaikinya?


Sebab mengapa kod Python dijalankan dengan perlahan adalah kerana ia adalah bahasa yang ditafsirkan. Kodnya ditafsirkan pada masa jalan dan bukannya dikompilasi ke dalam bahasa ibunda.


Untuk meningkatkan kelajuan kod Python, kita boleh menggunakan CPython, Numba, atau kita juga boleh membuat beberapa pengubahsuaian pada kod tersebut.


1.

2. Gunakan fungsi dan perpustakaan terbina dalam.

3. Alihkan pengiraan di luar gelung.

4. Pastikan asas kod anda kecil.

5. Elakkan kitaran yang tidak perlu



▍3 Apakah ciri-ciri Python?


1

5. Sokongan OOPS

6 Sebilangan besar perpustakaan standard dan modul pihak ketiga

7 (kita boleh menulis kod Python

) dalam C

.

8. Struktur data mesra pengguna



▍4. Apakah aplikasi Python?


1. Pembangunan Web

2. Pembangunan GUI Desktop

3

5 Pembangunan Aplikasi

6. Aplikasi berasaskan konsol

7. Pengujian perisian

8 Automasi web

9.1.


▍5.


Keterbatasan Python?

1

2. Pembangunan mudah alih

3. Penggunaan memori (sangat tinggi berbanding bahasa lain)

4 ralat hanya muncul semasa runtime)

6 Kesederhanaan



▍6.

Pertama, jurubahasa membaca kod Python dan menyemak sama ada terdapat sebarang ralat sintaks atau pemformatan.


Jika ralat ditemui, pelaksanaan digantung. Jika tiada ralat ditemui, jurubahasa menukar kod Python ke dalam bentuk yang setara, atau kod bait.


Kod bait kemudian dihantar ke Mesin Maya Python (PVM), di mana kod Python akan dilaksanakan dan jika terdapat sebarang ralat, pelaksanaan akan dijeda, jika tidak, hasilnya akan dipaparkan dalam tetingkap keluaran.


Emas tiga, perak empat, 50 soalan temuduga Python penting (koleksi disyorkan)



dalam ingatan


Memori Python diuruskan oleh ruang kepala peribadi Python.


Semua objek Python dan struktur data terletak dalam timbunan peribadi. Peruntukan timbunan peribadi adalah tanggungjawab pengurus memori Python.


Python juga mempunyai pengumpul sampah terbina dalam yang boleh menuntut semula memori yang tidak digunakan dan melepaskan memori supaya ia boleh digunakan untuk ruang kepala.



▍ 8. Terangkan struktur data terbina dalam Python?

Terdapat empat jenis utama struktur data dalam Python.


Senarai: Senarai ialah koleksi item data heterogen daripada integer hingga rentetan atau senarai lain. Senarai boleh berubah. Senarai melakukan tugas kebanyakan struktur data pengumpulan dalam bahasa lain. Senarai ditakrifkan dalam kurungan segi empat sama [ ].

Contohnya: a = [1,2,3,4]


Set: Set ialah koleksi unsur unik yang tidak tertib. Operasi set seperti kesatuan|, persilangan& dan perbezaan boleh digunakan pada set. Set tidak boleh diubah. () digunakan untuk mewakili set.

Contohnya: a = {1,2,3,4}


Tuples: Tuple Python berfungsi sama seperti senarai Python, kecuali ia tidak berubah. () digunakan untuk mentakrifkan tupel.

Contohnya: a = (1,2,3,4)


Kamus: Kamus ialah koleksi pasangan nilai kunci. Ia serupa dengan peta cincang dalam bahasa lain. Dalam kamus, kunci ialah objek unik dan tidak boleh diubah.

cory Contoh: a = {'nombor': [1,2,3,4]}



▍9, explanation //, % , * *pengendali?


//(Bahagian Lantai) - Ini ialah pengendali bahagian yang mengembalikan bahagian integer pembahagian.

Contoh: 5 // 2 = 2


% (modulus) - Mengembalikan baki pembahagian.

Contoh: 5 % 2 = 1


** (Kuasa) - Ia melakukan pengiraan eksponen pada operator. a ** b mewakili a dinaikkan kepada kuasa b.

Contohnya: 5 ** 2 = 25, 5 ** 3 = 125



▍10 Apakah perbezaan antara petikan tunggal dan petikan berganda dalam Python?


Tiada perbezaan dalam menggunakan petikan tunggal (' ') atau petikan berganda (" ") dalam Python, kedua-duanya boleh digunakan untuk mewakili rentetan.


Selain memudahkan pembangunan pengaturcara dan mengelakkan ralat, kedua-dua ungkapan umum ini juga mempunyai faedah untuk mengurangkan penggunaan aksara melarikan diri dan menjadikan program kelihatan lebih ringkas, lebih jelas.



▍11. Perbezaan antara tambah, masukkan dan lanjutkan dalam Python?


lampiran: Tambahkan elemen senarai baharu

sisipkan: Tambahkan elemen pada kedudukan tertentu dalam senarai.

lanjutkan: Panjangkan senarai dengan menambah senarai baharu.


numbers = [1,2,3,4,5]
numbers.append(6)
print(numbers)
>[1,2,3,4,5,6]

## insert(position,value)
numbers.insert(2,7)  
print(numbers)
>[1,2,7,4,5,6]

numbers.extend([7,8,9])
print(numbers)
>[1,2,7,4,5,6,7,8,9]

numbers.append([4,5])
>[1,2,7,4,5,6,7,8,9,[4,5]]
Salin selepas log masuk



▍12. Apa itu rehat, teruskan dan lulus?


break: Ia akan menyebabkan atur cara keluar dari gelung apabila syarat dipenuhi.

teruskan: Akan kembali ke permulaan gelung, yang menyebabkan atur cara melangkau semua penyataan yang tinggal dalam lelaran gelung semasa.

lulus: Menyebabkan program meluluskan semua kenyataan yang tinggal tanpa pelaksanaan.



▍13、区分Python中的remove,del和pop?


remove:将删除列表中的第一个匹配值,它以值作为参数。

del:使用索引删除元素,它不返回任何值。

pop:将删除列表中顶部的元素,并返回列表的顶部元素。


numbers = [1,2,3,4,5]
numbers.remove(5)
> [1,2,3,4]

del numbers[0]
>[2,3,4]

numbers.pop()
>4
Salin selepas log masuk



▍14、什么是switch语句。如何在Python中创建switch语句?


switch语句是实现多分支选择功能,根据列表值测试变量。

switch语句中的每个值都被称为一个case。

在Python中,没有内置switch函数,但是我们可以创建一个自定义的switch语句。

switcher = {
   1: "January",
   2: "February",
   3: "March",
   4: "April",
   5: "May",
   6: "June",
   7: "July",
   8: "August",
   9: "September",
   10: "October",
   11: "November",
   12: "December"
}
month = int(input())
print(switcher.get(month))

> 3
march
Salin selepas log masuk


▍15、举例说明Python中的range函数?


range:range函数返回从起点到终点的一系列序列。

range(start, end, step),第三个参数是用于定义范围内的步数。


# number
for i in range(5):
    print(i)
> 0,1,2,3,4

# (start, end)
for i in range(1, 5):
    print(i)
> 1,2,3,4

# (start, end, step)
for i in range(0, 5, 2):
    print(i)
>0,2,4
Salin selepas log masuk



▍16、==和is的区别是?


==比较两个对象或值的相等性

is运算符用于检查两个对象是否属于同一内存对象。


lst1 = [1,2,3]
lst2 = [1,2,3]

lst1 == lst2
>True

lst1 is lst2
>False
Salin selepas log masuk


▍17、如何更改列表的数据类型?


要将列表的数据类型进行更改,可以使用tuple()或者set()。


lst = [1,2,3,4,2]

# 更改为集合
set(lst)    ## {1,2,3,4}
# 更改为元组
tuple(lst)  ## (1,2,3,4,2)
Salin selepas log masuk



▍18、Python中注释代码的方法有哪些?


在Python中,我们可以通过下面两种方式进行注释。


1. 三引号''',用于多行注释。

2. 单井号#,用于单行注释。



▍19、!=和is not运算符的区别?


!=如果两个变量或对象的值不相等,则返回true。

is not是用来检查两个对象是否属于同一内存对象。


lst1 = [1,2,3,4]
lst2 = [1,2,3,4]

lst1 != lst2
>False

lst1 is not lst2
>True
Salin selepas log masuk



▍20, Adakah Python mempunyai fungsi utama?


Ya, memang betul. Sebaik sahaja kami menjalankan skrip Python, ia akan dilaksanakan secara automatik.



▍21 Apakah fungsi lambda?


Fungsi Lambda ialah fungsi satu baris tanpa nama yang boleh mempunyai n parameter tetapi hanya boleh mempunyai satu ungkapan. Juga dipanggil fungsi tanpa nama.


a = lambda x, y:x + y 
print(a(5, 6))

> 11
Salin selepas log masuk



▍22、iterables和iterators之间的区别?


iterable:可迭代是一个对象,可以对其进行迭代。在可迭代的情况下,整个数据一次存储在内存中。


iterators:迭代器是用来在对象上迭代的对象。它只在被调用时被初始化或存储在内存中。迭代器使用next从对象中取出元素。


# List is an iterable
lst = [1,2,3,4,5]
for i in lst:
    print(i)

# iterator
lst1 = iter(lst)
next(lst1)
>1
next(lst1)
>2
for i in lst1:
    print(i)
>3,4,5
Salin selepas log masuk



▍23、Python中的Map Function是什么?


map函数在对可迭代对象的每一项应用特定函数后,会返回map对象。



▍24、解释Python中的Filter


过滤器函数,根据某些条件从可迭代对象中筛选值。


# iterable
lst = [1,2,3,4,5,6,7,8,9,10]

def even(num):
    if num%2==0:
        return num

# filter all even numbers
list(filter(even,lst))
---------------------------------------------
[2, 4, 6, 8, 10]
Salin selepas log masuk



▍25、解释Python中reduce函数的用法?


reduce()函数接受一个函数和一个序列,并在计算后返回数值。


from functools import reduce

a = lambda x,y:x+y
print(reduce(a,[1,2,3,4]))

> 10
Salin selepas log masuk



▍26 Apakah penjerukan dan nyahjeruk?


jeruk ialah proses menukar objek Python (malah kod Python) kepada rentetan.

Nyahjeruk ialah proses terbalik untuk menukar rentetan kepada objek asal.



▍27, Terangkan *args dan **kwargs?


*args digunakan apabila kita tidak pasti tentang bilangan hujah yang akan dihantar ke fungsi tersebut.


def add(* num):
    sum = 0 
    for val in num:
        sum = val + sum 
    print(sum)


add(4,5)
add(7,4,6)
add(10,34,23)
--------------------- 
9 
17 
57
Salin selepas log masuk


**kwargs,是当我们想将字典作为参数传递给函数时使用的。


def intro(**data):
    print("\nData type of argument:",type(data))
    for key, value in data.items():
        print("{} is {}".format(key,value))


intro(name="alex",Age=22, Phone=1234567890)
intro(name="louis",Email="a@gmail.com",Country="Wakanda", Age=25)
--------------------------------------------------------------
Data type of argument: <class &#39;dict&#39;>
name is alex
Age is 22
Phone is 1234567890

Data type of argument: <class &#39;dict&#39;>
name is louis
Email is a@gmail.com
Country is Wakanda
Age is 25
Salin selepas log masuk



▍28、解释re模块的split()、sub()、subn()方法


split():只要模式匹配,此方法就会拆分字符串。

sub():此方法用于将字符串中的某些模式替换为其他字符串或序列。

subn():和sub()很相似,不同之处在于它返回一个元组,将总替换计数和新字符串作为输出。


import re
string = "There are two ball in the basket 101"


re.split("\W+",string)
---------------------------------------
[&#39;There&#39;, &#39;are&#39;, &#39;two&#39;, &#39;ball&#39;, &#39;in&#39;, &#39;the&#39;, &#39;basket&#39;, &#39;101&#39;]

re.sub("[^A-Za-z]"," ",string)
----------------------------------------
&#39;There are two ball in the basket&#39;

re.subn("[^A-Za-z]"," ",string)
-----------------------------------------
(&#39;There are two ball in the basket&#39;, 10)
Salin selepas log masuk



▍29、Python中的生成器是什么


生成器(generator)的定义与普通函数类似,生成器使用yield关键字生成值。


如果一个函数包含yield关键字,那么该函数将自动成为一个生成器。


# A program to demonstrate the use of generator object with next() A generator function 
def Fun(): 
   yield 1
   yield 2
   yield 3

# x is a generator object 
x = Fun()
print(next(x))
-----------------------------
1
print(next(x))
-----------------------------
2
Salin selepas log masuk



▍30、如何使用索引来反转Python中的字符串?


string = &#39;hello&#39;

string[::-1]
>&#39;olleh&#39;
Salin selepas log masuk



▍31、类和对象有什么区别?


类(Class)被视为对象的蓝图。类中的第一行字符串称为doc字符串,包含该类的简短描述。


在Python中,使用class关键字可以创建了一个类。一个类包含变量和成员组合,称为类成员。


对象(Object)是真实存在的实体。在Python中为类创建一个对象,我们可以使用obj = CLASS_NAME()

例如:obj = num()


使用类的对象,我们可以访问类的所有成员,并对其进行操作。


class Person:
    """ This is a Person Class"""
    # varable
    age = 10
    def greets(self):
        print(&#39;Hello&#39;)


# object
obj = Person()
print(obj.greet)
----------------------------------------
Hello
Salin selepas log masuk



▍32、你对Python类中的self有什么了解?


sendiri mewakili contoh kelas.


Dengan menggunakan kata kunci diri, kita boleh mengakses sifat dan kaedah kelas dalam Python.


Perhatikan bahawa diri mesti digunakan dalam fungsi kelas kerana tiada sintaks eksplisit untuk mengisytiharkan pembolehubah dalam kelas.



▍33 Apakah kegunaan _init_ dalam Python?


"__init__" ialah kaedah terpelihara dalam kelas Python.


Ia dipanggil pembina, ia dipanggil secara automatik apabila kod dilaksanakan, ia digunakan terutamanya untuk memulakan semua pembolehubah kelas.



▍34. Jelaskan warisan dalam Python?


Warisan membolehkan satu kelas memperoleh semua ahli dan harta kelas yang lain. WarisanWarisan menyediakan kebolehgunaan semula kod, menjadikannya lebih mudah untuk mencipta dan menyelenggara aplikasi.


Kelas yang diwarisi dipanggil super class dan kelas yang diwarisi dipanggil derived class/subclass.



▍35 Apakah itu OOPS dalam Python?


Pengaturcaraan berorientasikan objek, Abstraksi, Enkapsulasi, Warisan, Polimorfisme ▍ 36. Apakah abstraksi?



Abstraksi ialah proses menunjukkan intipati atau ciri-ciri yang diperlukan sesuatu objek kepada dunia luar dan menyembunyikan semua maklumat lain yang tidak berkaitan.



▍37.


Encapsulation bermaksud data pembungkusan dan fungsi ahli bersama-sama menjadi satu unit.


Ia juga melaksanakan konsep penyembunyian data.



▍38.


Polymorphism bermaksud "banyak bentuk".


Sesuatu subkelas boleh menentukan gelagat uniknya sendiri dan masih berkongsi fungsi atau gelagat yang sama dengan kelas induk/asasnya.



▍39 Apakah tampalan monyet dalam Python?


Tampalan monyet merujuk kepada mengubah suai kelas atau modul secara dinamik semasa masa jalan.


from SomeOtherProduct.SomeModule import SomeClass

def speak(self):
    return "Hello!"

SomeClass.speak = speak
Salin selepas log masuk



▍40、Python支持多重继承吗?


Python可以支持多重继承。多重继承意味着,一个类可以从多个父类派生。



▍41、Python中使用的zip函数是什么?


zip函数获取可迭代对象,将它们聚合到一个元组中,然后返回结果。


zip()函数的语法是zip(*iterables)


numbers = [1, 2, 3]
string = [&#39;one&#39;, &#39;two&#39;, &#39;three&#39;] 
result = zip(numbers,string)

print(set(result))
-------------------------------------
{(3, &#39;three&#39;), (2, &#39;two&#39;), (1, &#39;one&#39;)}
Salin selepas log masuk



▍42、解释Python中map()函数?


map()函数将给定函数应用于可迭代对象(列表、元组等),然后返回结果(map对象)。


我们还可以在map()函数中,同时传递多个可迭代对象。


numbers = (1, 2, 3, 4)
result = map(lambda x: x + x, numbers)

print(list(result))
Salin selepas log masuk



▍43、Python中的装饰器是什么?


装饰器(Decorator)是Python中一个有趣的功能。


它用于向现有代码添加功能。这也称为元编程,因为程序的一部分在编译时会尝试修改程序的另一部分。


def addition(func):
    def inner(a,b):
        print("numbers are",a,"and",b)
        return func(a,b)
    return inner

@addition
def add(a,b):
   print(a+b)

add(5,6)
---------------------------------
numbers are 5 and 6
sum: 11
Salin selepas log masuk



▍44、编写程序,查找文本文件中最长的单词


def longest_word(filename):
    with open(filename, &#39;r&#39;) as infile:
              words = infile.read().split()
    max_len = len(max(words, key=len))
    return [word for word in words if len(word) == max_len]

print(longest_word(&#39;test.txt&#39;))
----------------------------------------------------
[&#39;comprehensions&#39;]
Salin selepas log masuk



▍45、编写程序,检查序列是否为回文


a = input("Enter The sequence")
ispalindrome = a == a[::-1]

ispalindrome
>True
Salin selepas log masuk



▍46、编写程序,打印斐波那契数列的前十项


fibo = [0,1]
[fibo.append(fibo[-2]+fibo[-1]) for i in range(8)]

fibo
> [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
Salin selepas log masuk



▍47、编写程序,计算文件中单词的出现频率


from collections import Counter

def word_count(fname):
        with open(fname) as f:
                return Counter(f.read().split())

print(word_count("test.txt"))
Salin selepas log masuk



▍48、编写程序,输出给定序列中的所有质数


lower = int(input("Enter the lower range:"))
upper = int(input("Enter the upper range:"))
list(filter(lambda x:all(x % y != 0 for y in range(2, x)), range(lower, upper)))

-------------------------------------------------
Enter the lower range:10
Enter the upper range:50
[11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
Salin selepas log masuk


▍49、编写程序,检查数字是否为Armstrong


Emas tiga, perak empat, 50 soalan temuduga Python penting (koleksi disyorkan)


将每个数字依次分离,并累加其立方(位数)。


最后,如果发现总和等于原始数,则称为阿姆斯特朗数(Armstrong)。


num = int(input("Enter the number:\n"))
order = len(str(num))

sum = 0
temp = num

while temp > 0:
   digit = temp % 10
   sum += digit ** order
   temp //= 10

if num == sum:
   print(num,"is an Armstrong number")
else:
   print(num,"is not an Armstrong number")
Salin selepas log masuk



▍50、用一行Python代码,从给定列表中取出所有的偶数和奇数


a = [1,2,3,4,5,6,7,8,9,10]
odd, even = [el for el in a if el % 2==1], [el for el in a if el % 2==0]

print(odd,even)
> ([1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
Salin selepas log masuk


Atas ialah kandungan terperinci Emas tiga, perak empat, 50 soalan temuduga Python penting (koleksi disyorkan). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:Python当打之年
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan