1.プログラミングとは何ですか?なぜプログラミング?
A:このプログラムは、動詞であるコードをプログラミング記述に相当し、その後、コードを書く何のためにあるのですか?プログラムは、コンピュータは私たちが物事を行う手助けすることを可能にするため、コンピュータが言語を理解できるコードに確かである理由です。
2.プログラミング言語の進化の歴史とは何ですか?
:機械語------>アセンブリ言語------>ハイレベル言語
機械語:のみコンピュータ内部のバイナリコードを受け入れるので、そのため、2進数の0と1のコマンドと呼ばれるマシン命令は、機械語命令のすべてのコンピュータのコレクションの機械語で記述さ、機械語は、低レベルの言語に属します。
アセンブリ:その本質と機械言語が同じである、ハードウェア上で直接動作しているが、英語の略語識別子の指揮を執ったが認識し、覚えやすいです。
高レベルの言語:ほとんどのプログラマの選択があり、およびアセンブリ言語に比べて、彼は、単一の命令機械語命令の合成に多くの関連し、特定の操作に関連した削除されますが、作業の完全な詳細とは何の関係もない、主に比較的高レベルの言語だけでなく、アセンブリ言語の面では、特定の言語の特定の種類に固有のものではなく、プログラミング言語の数を含んでいます。このようなC / C ++、JAVA、PHP、Pythonなどの高水準言語に属します。
機械語:最低速度の利点、欠点は、低効率の開発複雑です
アセンブリ:比較的低速の利点、欠点は複雑、低効率の開発であります
貧弱なコンパイル言語の実行速度ではなく、ロケールに依存する操作、クロスプラットフォーム:ハイレベル言語
クロスプラットフォーム良く解釈し、コード、どこでも、欠点は、遅いの効率で実行するインタプリタを頼ります
大幅に開発効率を向上させること、機械およびアセンブリ言語、開発者に、より親しみやすい高級言語と比較すると。
図3は、コンパイルされ、解釈された言語の違いを概説し、あなたがコンパイル属するものを知っている言語のリストを表示、属するものと解釈しました
プログラムは、コンピュータでコンパイルすることができない高レベルの言語は、変換方法に従って行うことへの変換について話している、知らない1カテゴリをコンパイルすることです、2つのカテゴリに分けることができ、一つのカテゴリーが説明されています
クラスをコンパイル:アプリケーションソースコードプログラムが実行される前にターゲットプログラムがそのロケールから独立して実行することができるように、つまり、それは、ソースコード、オブジェクトコード(機械語)への「翻訳」であろう。、使いやすい高効率ですが、アプリケーションを変更する必要があると、あなたがして(* .objファイル、OBJファイルである)、ソースコードの変更なしのみ対象のファイルを実行するための新しいターゲットを生成するために再コンパイルし、ソースコードを変更する必要があります非常に便利。
特長:ラインで直接結果をコンパイルし、コンパイル後に実行を再翻訳プログラム、する必要はありません。コンパイラに依存してプログラムの実行の高効率化、クロスプラットフォームなど、C、C ++、Delphiのような、かなり貧弱
長所:プログラムを実行する際に、ソースファイルがマシンによって実行されているので1、、、ソースコード、言語に依存しない環境を必要としません。
図2に示すように、実行速度、プログラムコードがコンピュータによって理解される機械言語に翻訳されているからです。
短所:1、ソースコードの各変更は、マシンコードファイルを生成するために再コンパイルする必要があります
2、クロスプラットフォームは、優れた、異なるオペレーティングシステム、基本的な機械語命令に異なる呼び出し、異なるプラットフォームごとに異なるファイルを生成するのに必要なマシンコードではありません。
その解釈:実行は、翻訳しながら、効率が比較的低い一方、アプリケーションのソースコードは、オブジェクトコード(機械語)に対応する言語インタプリタによって「翻訳」しながら、私たちは、「同時通訳」に住んでいる方法を実行するのに似ています。
機能:低効率は、別の実行可能ファイルを生成することができないアプリケーションは、インタプリタから逸脱することはできないが、このアプローチは、より柔軟な、動的にアプリケーションを変更、調整することができます。このようなPythonやJavaの、PHP、Rubyや他の言語のように。
利点:1、ユーザーはインタプリタの実装とソースファイルを呼び出し、いつでも変更することができ、すぐに結果、実行する完全なソースコードの変更は、直接の結果を参照してください
2、CPUが実行する間、インタプリタがインタプリタがすでに別のプラットフォームのインタラクティブな処理を行っているため、ユーザーが記述したソースコードが違いプラットフォームを考慮する必要はありません、クロスプラットフォーム生まれ、マシン命令へのソースファイルを説明する一方で。
短所:1、平文コード
図2に示すように、低動作効率は、全てのコードインタプリタは、コンパイルされたよりもはるかに遅い側縁の実行を説明するために必要とされます。
4. Pythonスクリプトにそれを実行するには、2つの方法は何ですか?
1、相互作用が実行され、一時的にコンソール上で入力したコードを実行します
2、ファイル操作は、PYファイル保存の良いを行います
違いがある:1は、メモリ操作で、ハードディスクの操作、
速く読むスピードが、停電は、データを失う:メモリ機能があります
遅い、しかし、あなたは、データを保存することができます:ハードディスクの機能があります
5.変数を宣言するための注意点は何ですか?
変数定義されたルール:
1、変数名は、文字、数字またはアンダースコアの任意の組み合わせを使用できます
2、最初の文字の変数名は、デジタルすることはできません
3、人生は変数名のキーワードを求めることはできません
注意事項:
1、変数名が長すぎることはできません
2、変数は、用語の意味までではありません
3、中国語、ピンインという名前の変数
6.定数は何ですか?
定数は、変化量を意味し、またはの量で、プログラムの実行中に変更されません
Pythonの構文の定数のない特別代表、すべて大文字で代表定数変数名を持つプログラマ大会
7、Pythonのシングルラインおよびマルチラインのコメントは何ですか?
#1行コメント複数行コメント「」 "
コードは原則コメント:
1、すべてのコメントを追加するか、またはちょうどそれが難しい自分自身にコメントを追加するには、重要な部分を理解するために見つける必要がありません
2、メモは中国語や英語、決してピンインを使用することができます
8、ブールは何値?
非常に単純なブール、二つの値、1は(真)Trueで、aは(偽)Falseで、メインロジックが決定します
9、どのようにメモリ内の変数のアドレスを表示するには?
ここでは、ID
プリント(ID .__ doc__内の例題) オブジェクトのIDを返します。 これは同時に、既存のオブジェクトの中で一意であることが保証されます。 (CPythonとは、オブジェクトのメモリアドレスを使用しています。)
10、コードを書きます
ユーザー名はジェームズで、ときにユーザー名を入力するようにユーザーを達成するために10-1、およびパスワードは、成功した着陸を示し、123456であるそうでない場合、ログインに失敗しました。
= _username " ジェームズ" _password = " 123456 " ユーザ名 = INPUT(" >>>名前を入力してください" ) パスワード = INPUT(「あなたのパスワードを入力してください>>> 」) IF名== _名とパスワード== _password: 印刷(「成功した着陸」) 他: 印刷(「ログインに失敗しました」)
ユーザー名はジェームズで、ときにユーザー名を入力するようにユーザーを達成するために10-2、および 3回パスワードを繰り返し、そうでない場合は着陸に失敗し、成功した着陸を示し、123456で、失敗の数が許可され
_username
=
"james"
_password
=
"123456"
count
=
0
while
count<
3
:
username
=
input
(
"请输入名字>>>"
)
password
=
input
(
"请输入密码>>>"
)
if
username
=
=
_username
and
password
=
=
_password:
print
(
"登陆成功"
)
break
else
:
print
(
"登陆失败"
)
count
+
=
1
ユーザー名はジェームズで、ときにユーザー名を入力するようにユーザーを達成するために10-3、またはそれ以外の着陸に失敗、成功した着陸を示し、パスワードは123456です、三重に許可される失敗の数
_username = "ジェームズ" _password = "123456" カウント= 0 数<3中: ユーザ名=入力(「>>>名前を入力してください」) パスワード=入力(「あなたのパスワードを入力してください>>>」) もしユーザ名== _ユーザ名またはパスワード== _パスワード: 印刷(「ログイン成功」) ブレーク 他: 印刷(「ログインに失敗しました」) 数+ = 1
11、コードを書きます
A、ループは2-3 + 4-5 + 100および+ 6を使用して実現しつつ....
カウント= 2 = 0 数<= 100しばらく: もしカウント%2 == 0: NUM = NUM +数 他: NUM = NUMカウント 数+ = 1 プリント(か)
出力を達成するために、whileループを使用して、B、1,2,3,4,5,7,8,9,11,12
カウント= 1 数<= 12中: もしカウント== 6またはカウント== 10: パス 他: 印刷(カウント) 数+ = 1
C、ループ出力100-50、下降、そのような...、50に再出力時間周期0から50まで100,99,98など、および終了する一方
カウント= 100 数> 50しばらく: 印刷(カウント) カウント - = 1 カウント== 50の場合: カウント= 1 数<= 50中: 印刷(カウント) 数+ = 1 ブレーク
D、ループはすべての奇数1-100の出力を用いて実現しながら
カウント= 0 数<= 100しばらく: 数%2の場合= 0!: 印刷(カウント) 数+ = 1
E、whileループは、すべての偶数1-100の出力を使用して実装しました
カウント= 0 数<= 100しばらく: もしカウント%2 == 0: 印刷(カウント) 数+ = 1
12は、プログラミングの問題:入力年、それがうるう年と出力か否かが判断されます
(注閏年条件:1、百で割り切れる均等に4で割り切れなく、2、400で割り切れることができます)
!4 == 0と数%100 = 0または数%400 == 0の数%の場合: 印刷(「%sは飛躍である」%番号) 他: 印刷(「%がうるう年ではないよ」%番号)
13、プログラミングの問題:倍増する関心と百万年の定期預金を通過する方法を何年も計算し、3.24パーセントの定期的な1年間の金利を想定?
お金= 10000 率= 0.0324 年= 0 お金<20000中: 年+ = 1 お金=マネー*(1 +率) 印刷(STR(年))
14.オペレータは何ですか?
コンピュータの様々な実行可能な操作があり、操作の種類に応じて、単純な加算、減算以上であることができるが、演算、比較演算、論理演算子、代入演算子、に分けることができ、操作、動作状態、ビット操作などのメンバー
簡単な算術演算、比較演算、論理演算、代入演算子は、以下
15.ループ終了文は何ですか?
サイクルの過程で、何らかの理由で、あなたはサイクルを継続したくない場合は、どのようにそれをそれを終了するには?これは、ブレークを使用するか、ステートメントを続けます
break用于完全结束一个循环,跳出循环体执行循环后面的语句
continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环
16. python中断多重循环的方法exit_flag
常见的方法: exit_flag = flase for 循环: for 循环: if 条件 exit_flag = true break #跳出里面的循环 if exit_flag: break #跳出外面的循环
17. 基本数据类型和扩展数据类型的分类?
基本数据类型:
可变数据类型:列表,字典,集合
不可变数据类型:字符串,元祖,数字
扩展性数据类型:
1,namedtuole():生成可以使用名字来访问元素内容的tuple子类
2,deque:双端队列,可以快速的从另一侧追加和推出对象
3,counter:计数器,主要用来计数
4,orderdict:有序字典
5,defaultdict:带有默认值的字典
18. 元组的特点和功能
特点:
不可变,所以又称只读列表
本身不可变,但是如果元祖中还包含了其他可变元素,这些可变元素可以改变
功能:
索引
count
切片
19. 简单讲一下hash
hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入,通过散列算法,变化成固定长度的输出,该输出就是散列值,这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能散列成相同的输出,所以不可能从散列值来唯一的确定输入值,简单的说就是有一种将任意长度的消息压缩到某一固定长度的函数。
特性:hash值的计算过程是依据这个值的一些特性计算的,这就要求被hash的值必须固定,因此被hash的值是不可变的。
20,为什么使用16进制
1,计算机硬件是0101二进制,16进制刚好是2的倍数,更容易表达一个命令或者数据,十六进制更简短,因为换算的时候一位16进制数可以顶4位二进制数,也就是一个字节(8位进制可以用两个16进制表示)
2,最早规定ASCII字符采取的就是8bit(后期扩展了,但是基础单位还是8bit),8bit用两个16进制直接就能表达出来,不管阅读还是存储逗逼其他进制更方便。
3,计算机中CPU计算也是遵循ASCII字符串,以16,32,64这样的方法在发展,因此数据交换的时候16进制也显得更好
4,为了统一规范,CPU,内存,硬盘我们看到的都是采取的16进制计算
21,字符编码转换总结
python2.x
内存中字符默认编码是ASCII,默认文件编码也是ASCII
当声明了文件头的编码后,字符串的编码就按照文件编码来,总之,文件编码是什么,那么python2.x的str就是什么
python2.x的unicode是一个单独的类型,按u"编码"来表示
python2.x str==bytes,bytes直接是按照字符编码存成2进制格式在内存里
python3.x
字符串都是unicode
文件编码都默认是utf-8,读到内存会被python解释器自动转成unicode
bytes和str做了明确的区分
所有的unicode字符编码后都会编程bytes格式
22,请用代码实现,查找列表中元素,移除每个元素的空格,并查找以a或者A开头并且以c结尾的所有元素
li =['alex','eric','rain'] tu =('alex','aric','Tony','rain') dic = {'k1':'alex','aroc':'dada','k4':'dadadad'} for i in li: i_new = i.strip().capitalize() if i_new.startswith('A') and i_new.endswith('c'): print(i_new) for i in tu: i_new0 = i.strip().capitalize() if i_new0.startswith('A') and i_new.endswith('c'): print(i_new0) for i in dic: i_new1 = i.strip().capitalize() if i_new1.startswith('A') and i_new.endswith('c'): print(i_new1)
23,利用for循环和range输出9*9乘法表
for i in range(1,10): for j in range(1,i+1): print(str(i)+"*"+str(j) +"="+str(i*j),end=' ') print( )
24,利用for循环和range循环输出:
1,for循环从大到小输出1-100
2,for循环从小到大输出100-1
3,while循环从大到小输出1-100
4,while循环从小到大输出100-1
a =info.setdefault('age') print(a) print(info) b =info.setdefault('sex') print(b) print(info) for i in range(1,101): print(i) value =list(range(1,101)) print(value) for i in range(100,0,-1): print(i) value =list(range(100,1,-1)) i =1 while i<101: print(i) i+=1 i =100 while i>0: print(i) i-=1
25,有两个列表,l1和l2 l1 =[11,22,33] l2 = [22,33,44]
1,获取内容相同的元素列表
2,获取l1中有,l2中没有的元素
3,获取l2中有,l1中没有的元素
4,获取l1中没有,l2中没有的元素
l1 = [11,22,33] l2 = [22,33,44] a =[] for i1 in l1: for i2 in l2: if i1==i2: a.append(i1) print(a) a =[] for i1 in l1: if i1 not in l2: a.append(i1) print(a) a =[] for i1 in l2: if i1 not in l1: a.append(i1) print(a) a1 =set(l1)&set(l2) print(a1) a2 =set(l1)^set(l2) print(a2)
26,列举布尔值为False的所有值
所有标准对象均可用于布尔测试,同类型的对象之间可以比较大小,每个对象天生具有布尔值,空对象,值为0的任何数字或者Null对象None的布尔值都是False
下面对象的布尔值为False: 所有值为0的数 0(整数) 0(浮点数) 0L(长整形) 0.0+0.0j(复数) “”(空字符串) [](空列表) ()(空元组) {}(空字典)
值不是上面列出来的都是True.
27,输入商品列表,用户输入序号,显示用户选中的商品,商品=【‘手机’,‘电脑’,‘电视’,‘冰箱’】允许用户添加内容,用户输入序号显示内容
print("输出商品列表,用户输入序号,显示用户选中的商品") li = ["手机", "电脑", '鼠标垫', '游艇'] for i,j in enumerate(li,1): #自定义列表索引下标,从1开始,将列表索引下标赋值给i,将列表值赋值给j print(i,j)#打印出列表的索引下标,和列表的值 a = input("请输入商品序号") #要求用户输入商品序号 if a.isdigit():#判断用户输入的是否是纯数字 pass else: exit("你输入的不是有效的商品序号")#如果不是纯数字打印提示信息,并且退出程序,不在往下执行 a = int(a) #将用户输入的序号转换成数字类型 b = len(li)#统计li列表的元素个数 if a > 0 and a <= b: #判断 c = li[a-1] print(c) else: print("商品不存在")
28,元素分类,有如下集合 [11,22,33,44,55,66,77,88,99],将所有大于66的值保存到第一个key的值中,将所有小于66的值保存到第二个key的值中,{'k1':大于66的值,‘k2’:‘小于66的值}
list1 = [11,22,33,44,55,66,77,88,99] b =[] c=[] for i in list1: if i>66: b.append(i) else: c.append(i) print(b) print(c) dict1 = {'k1':b,'k2':c}
29,元素分类,有如下集合 [11,22,33,44,55,66,77,88,99],将所有大于66的值保存到一个列表,小于66的保存到另一个列表
list1 = [11,22,33,44,55,66,77,88,99] dict1 = {'k1':{},'k2':{}} b =[] c=[] for i in list1: if i>66: b.append(i) else: c.append(i) print(b) print(c)
30,查找列表,元组,字典,中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
print("查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。") li = ["aleb", " aric", "Alex", "Tony", "rain"] for i in li: b = i.strip() #移除循环到数据的两边空格 #判断b变量里以a或者A开头,并且以c结尾的元素 #注意:如果一个条件语句里,or(或者),and(并且),都在条件判断里,将前面or部分用括号包起来,当做一个整体, #不然判断到前面or部分符合了条件,就不会判断and后面的了,括起来后不管前面符不符合条件,后面的and都要判断的 if (b.startswith("a") or b.startswith("A")) and b.endswith("c"): print(b) #打印出判断到的元素 tu = ("aleb", " aric", "Alex", "Tony", "rain") for i in tu: b = i.strip() if (b.startswith('a') or b.startswith("A")) and b.endswith("c"): print(b) dic = {'k1': "alex", 'k2': ' aric',"k3": "Alex","k4": "Tony"} for i in dic: b =dic[i].strip() if( b.startswith('a') or b.startswith("A") )and b.endswith("c"): print(b)
31,写代码:有如下列表,请按照功能要求实现每一功能
li=['hello','seveb',['mon',['h','key'],'all',123,446]
1,请根据索引输出'kelly’
2,请使用索引找到”all“元素,并将其修改为”ALL“,如”li[0][1][9]...
li =['hello','seven',['mon',['h','kelly'],'all'],123,446] print(li[2][1][1]) print(li[2][2]) li[2][2] = "ALL" print(li[2][2]) a = li[2][2].upper() print(a)<br>li[2][index] ="ALL"<br>print(li)
32,写代码,要求实现下面每一个功能
li=['alex','eric','rain']
1,计算列表长度并输出
2,列表中追加元素“servn",并输出添加后的列表
3,请在列表的第一个位置插入元素‘tony’,并输出添加后的列表
4,请修改列表位置元素‘kelly’,并输出修改后的列表
5,请在列表删除元素‘eric’,并输出删除后的列表
6,请删除列表中的第2个元素,并输出删除后的元素的值和删除元素后的列表
7,请删除列表中的第三个元素,并输出删除后的列表
8,请删除列表的第2到4个元素,并输出删除元素后的列表
9,请用for len range输出列表的索引
10,请使用enumrate输出列表元素和序号
11,请使用for循环输出列表中的所有元素
li = ['alex','eric','rain'] # 1,计算列表长度并输出 # print(len(li)) # 列表中追加元素“seven”,并输出添加后的列表 # li.append('seven') # print(li) # 请在列表的第1个位置插入元素“Tony”,并输出添加后的列表 # li.insert(1,'tony') # print(li) #请修改列表第2个位置的元素为“Kelly”,并输出修改后的列表 # li[1] ='kelly' # print(li) # 请删除列表中的元素“eric”,并输出修改后的列表 # a =li.pop(2) # print(li) # li.remove('eric') # print(li) # 请删除列表中的第2个元素,并输出删除元素后的列表 # b =li.pop(1) # print(b) # print(li) # 请删除列表中的第2至4个元素,并输出删除元素后的列表 # c = li[2:4] # d = set(li)-set(c) # # print(list(d)) # del li[1:4] # print(li) # 请将列表所有的元素反转,并输出反转后的列表 # e = li.reverse() # print(li) # 请使用for、len、range输出列表的索引 # for i in range(len(li)): # print(i) # 请使用enumrate输出列表元素和序号(序号从100开始) # for index in enumerate(li): # print(index) # for index,i in enumerate(li,100): # print(index,i) # for i in li: # print(i)
33,写代码,有如下元组,请按照功能要求实现每一个功能
tu = ('alex','eric,'rain')
1,计算元组的长度并输出
2,获取元祖的第二个元素,并输出
3,获取元祖的第1-2个元素,并输出
4,请用for输出元祖的元素
5,请使用for,len,range输出元组的索引
6,请使用enumerate输出元组元素和序号,(从10开始)
tu = ('alex','eric','rain') # 1,计算元组的长度并输出 print(len(tu)) # 2,获取元祖的第二个元素,并输出 print(tu[1]) # 3,获取元祖的第1-2个元素,并输出 print(tu[0:2]) # 4,请用for输出元祖的元素 for i in tu: print(i) # 5,请使用for,len,range输出元组的索引 for i in range(len(tu)): print(i) # 6,请使用enumerate输出元组元素和序号,(从10开始) for index,i in enumerate(tu,10): print(index,i)
三十四,有如下变量,请实现要求的功能
tu=("alex",[11,22,{"k1":'v1',"k2":["age","name"],"k3":(11,22,33)},44])
a.讲述元祖的特性
答:元组具有列表的全部特性,不同的是,元组的元素不能修改
b.请问tu变量中的第一个元素“alex”是否可被修改?
答:不能
c.请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
答:列表 ,可以
tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11, 22, 33)}, 44]) tu[1][2]["k2"].append("Seven") print(tu)
d.请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
答: 元组,不能
三十五,练习字典
dic={'k1':"v1","k2":"v2","k3":[11,22,33]}
a.请循环输出所有的key
b.请循环输出所有的value
c.请循环输出所有的key和value
d.请在字典中添加一个键值对,"k4":"v4",输出添加后的字典
e.请在修改字典中“k1”对应的值为“alex”,输出修改后的字典
f.请在k3对应的值中追加一个元素44,输出修改后的字典
g.请在k3对应的值的第1个位置插入个元素18,输出修改后的字典
dic={'k1':"v1","k2":"v2","k3":[11,22,33]} # a.请循环输出所有的key for i in dic : print(i) for i in dic.keys(): print(i) # b.请循环输出所有的value for i in dic.values(): print(i) # c.请循环输出所有的key和value for i,j in dic.items(): print(i,j) # d.请在字典中添加一个键值对,"k4":"v4",输出添加后的字典 dic2 = {'k4':'v4'} dic.update(dic2) print(dic) dic['k4'] = 'v4' print(dic) # e.请在修改字典中“k1”对应的值为“alex”,输出修改后的字典 dic['k1'] ='alex' print(dic) # f.请在k3对应的值中追加一个元素44,输出修改后的字典 dic['k3'].append(44) print(dic) # g.请在k3对应的值的第1个位置插入个元素18,输出修改后的字典 dic['k3'].insert(0,18) print(dic)
原文:https://www.cnblogs.com/wj-1314/p/8403977.html