python筆記試験問題と面接問題
1.なぜpythonを学ぶのか
2.pythonとjava、php、C、C++、C#などの言語の対比
3.コンパイル型言語と解釈型言語を簡単に述べる
4.python解釈器の種類と特徴
5.ビットとバイトの関係
6.b、B、KB、MB、GB関係
7.PE 8仕様を5つ挙げてください
8.コードによる次の変換
9.ipアドレスを整数に変換する関数実装を作成してください
10.python再帰の最大層数
11.結果を求める
12.ASCII、Unicode、GBK、UTF-8符号化の違いを簡単に述べる
13.バイトコードとマシンコードの違い
14.三元演算規則及び適用シーン
15.python 2とpython 3の違い
``
16.python 2とpython 3におけるintとlongの違い
17.1行のコードで数値交換を実現する
18.rangeとxrang関数の違い
python 3ではxrange関数が削除され、すべてrangeで置き換えられています.
19.ファイル操作時:xreadlinesとreadlinesの違い
20.ブール値がFalseの一般的な値を列挙する
21.文字列リストのタプルと辞書でよく使われる5つの方法を列挙する
22.lambda式のフォーマットと適用シーン
23.passの役割
24.*argsと*kwargsの役割
25.isと==の違い
26.可変タイプと非可変タイプ
27.少なくとも8つの共通モジュールを列挙する
28.一般的な組み込み関数を列挙する
29.アクセサリーの書き方及び適用シーン
30.サードパーティ製モジュールのインストール方法
31.サードパーティ製モジュールの使用方法
32.「1,2,3」と[1,2,3]の相互変換の実現方法
33.結果を求める
34.1行のコードで[1,4,9,16,25,36,49,64,81100]を生成する方法
35.1行のコードは削除リストの重複する値を実現する
36.比較[1,2,3]と[(1),(2),(3)]および[(1,),(2,),(3,)]の違い
37.数を定義するこの書き方def func(a,b=[])にはどんな特徴があるのか
38.計算結果
39.関数にグローバル変数を設定する方法
40.正則的な貪欲なマッチングとは何か
41.loggingモジュールの役割及び適用シーン
42.reのmatchとsearchの違い
43.コードで簡単にstackを実現してください
44.pythonのゴミ回収メカニズム
45.pythonの可変タイプと非可変タイプ
46.==とisの違い
47.filter、map、reduceの役割
48.osとsysモジュールの役割
49.乱数を生成する方法
50.pythonを使用してファイルを削除する方法
51.関数か方法かをどう判断するか
52.オブジェクトに下線を引く特殊な方法を挙げる
53. __new__と_init__の違い
53.functoolsの関数を使用したことがあるかどうか、その役割は
54.オブジェクト向けsuperの役割
55.スタティックメソッドとクラスメソッドの違い
56.isinstanceの役割および適用シーン
オブジェクトが指定したクラスまたはその親のインスタンスであるかどうかを判断します.
57.jsonシーケンス化を解決するには、デフォルトで中国語がunicodeに変換されます.
58.jsonシーケンス化時に処理できるデータ型はどれらがありますか.
59.jsonシーケンス化時のサポートdatetimeタイプのカスタマイズ方法
60.pythonの稼働効率を向上させる方法
61.yieldとyield fromの概要
62.コードを使用してディレクトリの下のすべてのファイルを列挙する
63.文字列、リスト、メタグループ、辞書でよく使われる5つの方法
63.常用文字列のフォーマットは何種類ですか
64.ジェネレータ、反復可能なオブジェクト、および適用シーンについて簡単に説明する
65.反射および反射の適用シーンとは
66.1,2,3,4,5は互いに異なる3桁の数を構成することができる
67.結果を求める
68.三元演算規則及び適用シーン
69.lambda式フォーマットおよび適用シーン
70.pythonオブジェクトへの継承の特徴と利点
71.相手への理解について話す
72.あなたの閉鎖に対する理解について話します.
73.オブジェクト向けの特殊メンバーおよび適用シーンを列挙する
, ;
, python , ;
,python , ;
,python c c++ ;
, python c/c++ , ;
:python , ;
:python , 。
: , , , web , 、 、 、 。
2.pythonとjava、php、C、C++、C#などの言語の対比
C , 。php , , linux windows 45%。 ,php5 , 。java 、 。 、 、 ( )、 、 。
3.コンパイル型言語と解釈型言語を簡単に述べる
: , 。 , 。 C C++ 。
: , 。 :Python、Java、C#、JavaScript 。
4.python解釈器の種類と特徴
CPython : C , CPython, python, CPython ,CPython python 。
Jython: java python , python java 。
IPython:IPython CPython , ,IPython , CPython 。
5.ビットとバイトの関係
, 0 1 。 ,8 , , 。
6.b、B、KB、MB、GB関係
8b = 1B
1024B = 1KB
1024KB = 1MB
1024MB = 1GB
7.PE 8仕様を5つ挙げてください
1. 4 , Tab, Tab 。
3.
4. , '#'
5. ,
6.
7.
8.
9.
10. ,
11. if、for、while ,
12. self, cls
8.コードによる次の変換
1. :v = "0b1111011"
In [1]: v = '0b1111011'
In [2]: ret = int(v,2)
In [3]: print(ret)
123
2. :v = "0o11"
In [5]: v = '0o11'
In [6]: ret = int(v,8)
In [7]: print(ret)
9
3. :v = "0x12"
In [9]: v = '0x12'
In [10]: ret = int(v,16)
In [11]: print(ret)
18
4. :v = 18
In [12]: v = 18
In [13]: val = bin(18)
In [14]: print(val)
0b10010
5. :v = 30
In [15]: v = 30
In [16]: val = oct(v)
In [17]: print(val)
0o36
6. :v = 87
In [18]: v = 87
In [19]: val = hex(v)
In [20]: print(val)
0x57
9.ipアドレスを整数に変換する関数実装を作成してください
, 。 vim
def ip_zh(ip):
ip_list = ip.split('.')
# print(ip_list)
sum = ''
for item in ip_list:
# print(type(int(item)))
# print(bin(int(item)))
# print(type(bin(int(item))))
ret = bin(int(item))[2:]
if len(ret) < 8:
ret = (8 - len(ret)) * '0' + ret
# print(ret)
sum += ret
return int(sum,2)
print(ip_zh('10.3.9.12'))
10.python再帰の最大層数
python 1000 , :
In [21]: import sys
In [22]: sys.getrecursionlimit
Out[22]: <function sys.getrecursionlimit>
In [23]: sys.getrecursionlimit()
Out[23]: 3000
11.結果を求める
1、v = 1 or 3 # 1 1, 3。 , 1
2、v = 1 and 3 # 1 , 1, 1 , 3。 , 3
3、v = 0 and 2 and 1 # , and, 0 , 0。 and,0 , 0
4、v = 0 and 2 or 1 # 0 , 0, 0 1 , 1
5、v = 0 and 2 or 1 or 4 # 0 , 0。 0 or 1,0 , 1 , 1。 1 or 4,1 1。
6、v = 0 or Flase and 1 # 0 , False。 False and 1 False , False
12.ASCII、Unicode、GBK、UTF-8符号化の違いを簡単に述べる
ASCII: , 、 , 256 , 8 。
Unicode: 32 ,Unicode 。
GBK: ,GBK 《 》。 , 2 。
UTF-8: Unicode, 8 , , 。UTF-8 3 ,UTF-8 。
13.バイトコードとマシンコードの違い
, 。 , 。 , 。 java 。 , ( ), 。
, 0 1 。
14.三元演算規則及び適用シーン
15.python 2とpython 3の違い
print。 python2 print , 。 python2 , 。 , python3 ,print 。 print 。【python3 print ,python2 , 。】
python2 range , python3 , 。
python2 ASCII ,python3 UTF-8 。
python2 Unicode ,str 。 python3 str ,byte 。【python2 unicode python3 str ,python2 str python3 bytes 。 ,python2 str ,python3 bytes 。】
python2 , coding ,python3 。
python2 raw_input() python3 input()
,python2 _ _ init _ _.py ;python3
map filter:python2 ,python3
``
16.python 2とpython 3におけるintとlongの違い
python2 int long , python3 long , int 。
17.1行のコードで数値交換を実現する
a , b = b , a
18.rangeとxrang関数の違い
range xrange ,
range list , xrange (xrange object)
xrange list, , ,
python 3ではxrange関数が削除され、すべてrangeで置き換えられています.
19.ファイル操作時:xreadlinesとreadlinesの違い
, ,xreadlines ,readlines list
20.ブール値がFalseの一般的な値を列挙する
0,None, ( 、 、 、 )
21.文字列リストのタプルと辞書でよく使われる5つの方法を列挙する
22.lambda式のフォーマットと適用シーン
23.passの役割
pass , ; , 。
# ,
if true:
pass
else:
pass
#
def foo():
pass
#
while True:
pass
24.*argsと*kwargsの役割
args , , ,
kwargs , 。
25.isと==の違い
== ,is 。
26.可変タイプと非可変タイプ
, , int、str、bool、tuple
, list、set、dict
27.少なくとも8つの共通モジュールを列挙する
django、flask、pip、pygame、pymysql、numpy、pandas、hashlib、json、datetime、time、os、sys、logging ……
28.一般的な組み込み関数を列挙する
29.アクセサリーの書き方及び適用シーン
:
def x(func):
def inner(*args,**kwargs):
data = func(*args,**kwargs)
return data
return inner
: flask django , 、
30.サードパーティ製モジュールのインストール方法
python , , setuptools 。python setuptools :easy_install pip, pip。
31.サードパーティ製モジュールの使用方法
jinjia2、requests、、、、
32.「1,2,3」と[1,2,3]の相互変換の実現方法
"1,2,3" [1,2,3], split(',') [1,2,3], list int 。
[1,2,3] "1,2,3" , join 。
33.結果を求める
1 or 2 # 1
1 and 2 # 2
1 < (2==2) # bool ,2==2 True,1< True True < True, False
1 < 2 = 2 # 1 < 2 True,True = 2 True = True, True
34.1行のコードで[1,4,9,16,25,36,49,64,81100]を生成する方法
[i**2 for i in range(1,11)], 。
35.1行のコードは削除リストの重複する値を実現する
list(set([1,2,1,2]))
36.比較[1,2,3]と[(1),(2),(3)]および[(1,),(2,),(3,)]の違い
[1,2,3] [(1),(2),(3)] , 。[(1,),(2,),(3,)] 。
37.数を定義するこの書き方def func(a,b=[])にはどんな特徴があるのか
, , 。 b , :if b:b=[]
38.計算結果
[ i % 2 for i in range(10) ] # :[0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
( i % 2 for i in range(10) ) # ,
39.関数にグローバル変数を設定する方法
, global , , 。
40.正則的な貪欲なマッチングとは何か
, 。
import re
code = 'thanlonkikuthanlon'
ret1 = re.findall('a.*lon', code) #
print(ret1) # ['anlonkikuthanlonlon']
ret2 = re.findall('a.*?lon', code) #
print(ret2) # ['anlon', 'anlon']
41.loggingモジュールの役割及び適用シーン
loggin : , , logging debug , 。
: , 。
42.reのmatchとsearchの違い
match (0 ) , None:
In [1]: import re
In [2]: re.match('thanlon','thanlonlovekiku')
Out[2]: <re.Match object; span=(0, 7), match='thanlon'>
search :
In [3]: re.search('thanlon','kikulovethanlon')
Out[3]: <re.Match object; span=(8, 15), match='thanlon'>
43.コードで簡単にstackを実現してください
'''
'''
class Stack(object):
def __init__(self):
self.data = []
def push(self, val):
self.data.append(val)
def pop(self):
return self.data.pop()
def top(self):
return self.data[-1]
stack = Stack()
stack.push('Thanlon')
stack.push('Kiku')
print(stack.data)
print(stack.pop())
print(stack.pop())
'''
['Thanlon', 'Kiku']
Kiku
Thanlon
'''
44.pythonのゴミ回収メカニズム
。 , 。 , 。
45.pythonの可変タイプと非可変タイプ
: list、dict, 。 。
: int、string tuple, 。 ( , )。
46.==とisの違い
==
is
47.filter、map、reduceの役割
filter , 。
map 。
reduce 。
48.osとsysモジュールの役割
os , ;sys pthon , python 。
49.乱数を生成する方法
random , :
:random.randint(a,b), x a<=x<=b
start stop step , :random.randrange(start,stop,step)
0 1 :random.random( )
:random.uniform(a,b)
50.pythonを使用してファイルを削除する方法
python shutil rmtree , os.remove(path) 。
51.関数か方法かをどう判断するか
, 。 , 。 , , 。 “ .xxx” , xxx 。 “ .xxx” xxx, xxx 。
52.オブジェクトに下線を引く特殊な方法を挙げる
__init__、__new__、__call__、__enter__、__exit__、__getitem__、__ setitem__、__ delitem__、 __ add __
53. __new__と_init__の違い
__new__ ,__init__ 。__new__ , __init__ 。 __new__ , __init__ 。 __new__, __init__。
53.functoolsの関数を使用したことがあるかどうか、その役割は
functools , 。 functools reduce , 。
functools 。
54.オブジェクト向けsuperの役割
super ( ), 。 :
# coding:utf-8
class Base(object):
def f1(self):
print('Base.f1()')
pass
class Foo1(object):
def f1(self):
super().f1()
class Foo2(object):
def f1(self):
print('Foo2.f1()')
class Info(Foo1, Foo2):
pass
obj = Info()
obj.f1()
'''
Info f1 , Info f1
, Foo1
Foo1 f1 ,Foo1 f1 super().f1()
super().f1() : Info ( : Foo1 object f1), f1
Foo2, Foo2 f1 , Foo2 f1
'''
55.スタティックメソッドとクラスメソッドの違い
: , 。 , @staticmethod, , self , self 。
: , 。 , @classmethod, cls。 , @classmethod, cls。
56.isinstanceの役割および適用シーン
オブジェクトが指定したクラスまたはその親のインスタンスであるかどうかを判断します.
57.jsonシーケンス化を解決するには、デフォルトで中国語がunicodeに変換されます.
json dumps ensure_ascii=False, ensure_ascii = True。json.dumps(v, ensure_ascii=False)
58.jsonシーケンス化時に処理できるデータ型はどれらがありますか.
int、bool、str、list、dict、tuple、None( )
59.jsonシーケンス化時のサポートdatetimeタイプのカスタマイズ方法
datetime strftime , 。
60.pythonの稼働効率を向上させる方法
1、 ,
2、 ,
3、 Cython、PyPy ,
4、 、 、
5、 if elif , , , 。
61.yieldとyield fromの概要
yield: yield 。
yield from: 。
62.コードを使用してディレクトリの下のすべてのファイルを列挙する
os ,
import os
res = os.walk(r'E:\pycharmProjects\practice')
for a, b, c in res:
'''
a:
b:
c:
'''
# print(a)
# print(b)
# print(c)
'''
E:\pycharmProjects\practice
['.idea', 'test']
['test.py']
E:\pycharmProjects\practice\.idea
[]
['misc.xml', 'modules.xml', 'practice.iml', 'workspace.xml']
E:\pycharmProjects\practice\test
[]
['index.html', 'log.txt']
'''
for item in c:
path = os.path.join(a, item)
print(path)
'''
E:\pycharmProjects\practice\test.py
E:\pycharmProjects\practice\.idea\misc.xml
E:\pycharmProjects\practice\.idea\modules.xml
E:\pycharmProjects\practice\.idea\practice.iml
E:\pycharmProjects\practice\.idea\workspace.xml
E:\pycharmProjects\practice\test\index.html
E:\pycharmProjects\practice\test\log.txt
'''
63.文字列、リスト、メタグループ、辞書でよく使われる5つの方法
:len、join、split、strip、upper、lower、replace、isdigit、startwith、endwith、format
:len、append、insert、pop、remove、clear、expend、reverse、sort
:len
:keys、values、items、get、pop、update
63.常用文字列のフォーマットは何種類ですか
:print('%s,%s'%('thanlon','kiku')), , 。
:print('{},{}'.format('thanlon','kiku'))、print('{first},{second}.format(first='thanlon',second='kiku')'), ,
:print('%(first)s,%(second)s'%{'first':'thanlon','second':'kiku'}), , , , 。
64.ジェネレータ、反復可能なオブジェクト、および適用シーンについて簡単に説明する
: , , 。 , 。 。__iter__ , __next__ 。
: yield , 。 , 。 , 。【 。 for , , yield 。】
: for __iter__ , ( )
65.反射および反射の適用シーンとは
: ( ) ( / / ) , 。【 、 ( )。python 、 , 。】
: , 。
66.1,2,3,4,5は互いに異なる3桁の数を構成することができる
num = 0
for i in range(1, 6):
for j in range(1, 6):
for k in range(1, 6):
if i != j and i != k and j != k:
num += 1
print(num) # 60
67.結果を求める
v = dict.fromkeys(['k1','k2'],[])
v['k1'].append(666)
print(v)
v['k1'] = 777
print(v)
v = dict.fromkeys(['k1', 'k2'], []) # {'k1': [], 'k2': []}
v['k1'].append(666)
print(v) # {'k1': [666], 'k2': [666]}
v['k1'] = 777
print(v) # {'k1': 777, 'k2': [666]}
68.三元演算規則及び適用シーン
: v = value1 if else value2, ,v = value1, v = value2。
: if else
69.lambda式フォーマットおよび適用シーン
lambda : = lambda :
lambda :lambda ,
70.pythonオブジェクトへの継承の特徴と利点
:1. , 。2. , 。
:1. (__init__) , ;2. , , self 。3. python , , 。
71.相手への理解について話す
、 、 、
, , , 。 。【 , 。 : ; : 。】
, , , 。 , , 。 , 。 , 、 。
: , 。 , , , , 。 , 。
72.あなたの閉鎖に対する理解について話します.
: , , , 。 , 。 。 :
def outer(): #
b = 10
def inner(): #
print(a+b) #
return inner #
, , , , , 。 , , , 。
73.オブジェクト向けの特殊メンバーおよび適用シーンを列挙する
__init__: (), __init__
__call__: (), __call__
__getitem__: [], __getitem__
__setitem__: ['xxx']=xx, __setitem__
__delitem__:del , __delitem__
__add__: + , __add__
__enter__ __exit__:with , __enter__ __exit__
__new__: (), __new__ , __init__