编译型
优势:编译器通常会有预编译的过程对代码进行优化。由于编译只作一次,运行时不须要编译,因此编译型语言的程序执行效率高。能够脱离语言环境独立运行。
缺点:编译以后若是须要修改就须要整个模块从新编译。编译的时候根据对应的运行环境生成机器码,不一样的操做系统之间移植就会有问题,须要根据运行的操做系统环境编译不一样的可执行文件。python
解释型
优势:有良好的平台兼容性,在任何环境中均可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就能够,能够快速部署,不用停机维护。程序员
缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。算法
Python的运行过程shell
在说这个问题以前,咱们先来讲两个概念,PyCodeObject和pyc文件。编程
咱们在硬盘上看到的pyc天然没必要多说,而其实PyCodeObject则是Python编译器真正编译成的结果。咱们先简单知道就能够了,继续向下看。flask
当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。网络
当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,若是找到,则直接载入,不然就重复上面的过程。多线程
因此咱们应该这样来定位PyCodeObject和pyc文件,咱们说pyc文件实际上是PyCodeObject的一种持久化保存方式。并发
主要优势:框架
主要缺点:
以己之长,较他之短。显然是毫无心义的。没有最好的,只有最适合的。
Old Name |
New Name |
_winreg |
winreg |
ConfigParser |
configparser |
copy_reg |
copyreg |
Queue |
queue |
SocketServer |
socketserver |
markupbase |
_markupbase |
repr |
reprlib |
test.test_support |
test.support |
安装注意事项:
经常使用操做:
经常使用操做:
基本运算符
假设a=10 , b=20
计算
比较
赋值
逻辑
优先级
条件判断语句: if为语句开始,elif为屡次不一样条件判断,else为不知足上面的条件则执行。可多层嵌套
if condition :
exec
elif condition :
exec
else :
exec
迭代式循环语句:for。每循环一次从数据中按顺序取出一个值,直到数据中全部值均被使用。可多层嵌套、
for i in range(0,9) :
exec
条件循环语句:while。 条件为真则循环,条件为假则中止循环。若条件定义为True则成死循环。可多层嵌套。
while condition :
exec
while的条件可使用布尔值变量判断循环是否成立。在多个while嵌套须要一次退出时,能够经过修改该变量的布尔值一次控制多个循环退出。
while ...else 语句,while 后面的else 做用是当while 循环正常执行完,中间没有被break 停止的话,就会执行else后面的语句
break与continue (仅适用于循环语句)
break 执行后会跳出此循环。外层循环不会受影响。
continue 执行后跳过此循环内后面的代码,直接开始下一次循环。
练手代码:
'1 使用while循环输出1 2 3 4 5 6 8 9 10'
number=1
while number <= 10:
if number == 7 :
number+=1
continue
print(number)
number+=1
while number <= 10 :
if number != 7 :
print(number)
number+=1
'2. 求1-100的全部数的和'
number2 = 0
total2 = 0
while number2 <= 100 :
total += number2
number2+=1
print(total)
装X方法:print(sum(range(101)))
'3. 输出 1-100 内的全部奇数'
number3 = 0
total3 = 0
while number3 <= 100 :
if number3 % 2 == 1:
total3 += number3
number3+=1
装X方法:print(sum(range(1,101,2)))
'4. 输出 1-100 内的全部偶数'
number4 = 0
total4 = 0
while number4 <= 100 :
if number4 % 2 == 0:
total4 += number4
number4+=1
print(total4)
装X方法:print(sum(range(0,101,2)))
'5. 求1-2+3-4+5 ... 99的全部数的和'
number5 = 0
odd = 0
even = 0
while number5 <= 99 :
if number5 % 2 == 1:
odd += number5
else :
even += number5
number5+=1
result = odd - even
print(result)
装X方法:print(sum(range(1,100,2))-sum(range(0,100,2)))
'6. 用户登录(三次机会重试)'
user = 'jinyudong'
password = '666666'
count = 0
while count < 3 :
username = input('user->:')
passwd = input('passwd->:')
if username == user and password == passwd :
print('login OK !')
break
count+=1
print('login count is %d' %count)
else:
print('login error!')
'7:猜数字游戏'
import random
secret = random.randint(1,99)
# print(secret)
guess = 0
count = 0
print("AHOY! i'm the Dread Pirate Roberts, and I have a secret!")
print("It is a number from 1 to 99. I'll give you 6 tries.")
while count < 6:
guess = int(input( "What's yer guess?"))
if guess < secret:
print("Too low,ye scurvy dog!")
elif guess > secret:
print("Too high,landlubber!")
else :
print("Avast! Ye got it! Found my secret,ye did!")
break
count += 1
else:
print("No more guesses! Better luck next time,matey!")
print("The secret number was",secret)
'8:猜年龄游戏升级'import randomsecret = random.randint(1,99)guess = 0count = 0print("AHOY! i'm the Dread Pirate Roberts, and I have a secret!")print("It is a number from 1 to 99. I'll give you 6 tries.")while count < 6: guess = int(input( "What's yer guess?")) if guess < secret: print("Too low,ye scurvy dog!") elif guess > secret: print("Too high,landlubber!") else : print("Avast! Ye got it! Found my secret,ye did!") break if count == 5 : print("Max error number,continue place 'y',exit place 'n'") YorN = input('-->:') if YorN == 'y': count=0 continue else: exit() count += 1else: print("No more guesses! Better luck next time,matey!") print("The secret number was",secret)