Python-Day1

一、Python介绍

Python是一种面向对象的解释型 计算机程序设计语言 ,由荷兰人吉多·范罗苏姆( Guido van Rossum )于1989年发明,第一个公开发行版发行于1991年。

目前Python主要应用领域:

  • 云计算 : 云计算最火的语言, 典型应用OpenStack
  • WEB开发 : 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
  • 科学运算、人工智能 : 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas
  • 系统运维 : 运维人员必备语言
  • 金融 :量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测
  • 图形GUI : PyQT, WxPython,TkInter

设计定位:

  1. Python的设计哲学是“优雅”、“明确”、“简单”。
  2. Python开发人员尽量避开不成熟或者不重要的优化。
  3. Python是完全面向对象的语言。
  4. Python本身被设计为可扩充的。

控制语句:

if语句,当条件成立时运行语句块。经常与else, elif(相当于else if) 配合使用。

for语句,遍历列表、字符串、字典、集合等 迭代器 ,依次处理迭代器中的每个元素。

while语句,当条件为真时,循环运行语句块。

try语句。与except,finally配合使用处理在程序运行中出现的异常情况。

class语句。用于定义 类型

def语句。用于定义函数和类型的方法。

pass语句。表示此行为空,不运行任何操作。

assert语句。用于程序调试阶段时测试运行条件是否满足。

with语句。Python2.6以后定义的语法,在一个场景中运行语句块。比如,运行语句块前加密,然后在语句块运行退出后解密。

yield语句。在迭代器函数内使用,用于返回一个元素。自从Python 2.5版本以后。这个语句变成一个运算符。

raise语句。制造一个错误。

import语句。导入一个模块或包。

from import语句。从包导入模块或从模块导入某个对象。

import as语句。将导入的对象赋值给一个变量。

in语句。判断一个对象是否在一个字符串/列表/元组里。

Python的优缺点:

先看优点

  1. Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
  2. 开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
  3. 高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
  4. 可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行
  5. 可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
  6. 可嵌入性————你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。

再看缺点:

  1. 速度慢,Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些,因此这也是很多所谓的大牛不屑于使用Python的主要原因,但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来,比如你用C运一个程序花了0.01s,用Python是0.1s,这样C语言直接比Python快了10倍,算是非常夸张了,但是你是无法直接通过肉眼感知的,因为一个正常人所能感知的时间最小单位是0.15-0.4s左右,哈哈。其实在大多数情况下Python已经完全可以满足你对程序速度的要求,除非你要写对速度要求极高的搜索引擎等,这种情况下,当然还是建议你用C去实现的。
  2. 代码不能加密,因为PYTHON是解释性语言,它的源码都是以名文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python来去实现。
  3. 线程不能利用多CPU问题,这是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是 计算机程序设计语言 解释器 用于 同步 线程 的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。关于这个问题的折衷解决方法,我们在以后线程和进程章节里再进行详细探讨。

二、代码练习

var

1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 #Author:YST
4 
5 name = "你好,世界"
6 print(name)

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 #Author:YST
 4 
 5 Name = input("name:")
 6 Age = int(input("age:")) #integer
 7 Job = input("job:")
 8 Salary =int(input("salary:"))
 9 
10 """info = '''
11 ------- info of {name} ----- 
12 Name:{name}
13 Age:{age}
14 Job:{job}
15 Salary:{salary}
16 '''.format(name=Name,
17            age=Age,
18            job=Job,
19            salary=Salary)
20 print(info)"""
21 """
22 info2 = '''
23 -------- info of %s--------
24 name:%s
25 age:%d
26 job:%s
27 salary:%d
28 '''%(Name,Name,Age,Job,Salary)
29 print(info2)"""
30 info3 = '''
31 -----info of {0}-----
32 name:{0}
33 age:{1}
34 job:{2}
35 salary:{3}
36 '''.format(Name,Age,Job,Salary)
37 print(info3)

interaction 3种方式

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 #Author:YST
 4 import getpass
 5 
 6 _username = 'YST'
 7 _password = 'asd123'
 8 username = input("username:")
 9 #password = getpass.getpass("password:") 暗码
10 password = input("password:")
11 
12 if _username == username and _password == password:
13     print("Welcom user {name} login...".format(name = username))
14 else:
15     print("Invalind username or password!")

password

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 #Author:YST
 4 '''count = 0
 5 while True:
 6     print("count:",count)
 7     count = count + 1 #count + =1
 8     if count == 1000:
 9         break
10 '''
11 '''for i in range(10):
12     print("loop ",i)
13     '''
14 
15 '''
16 #打印0 2 4 6 8
17 for i in range(0,10,2):
18     print("loop ",i)
19 '''
20 
21 #打印0 3 6 9
22 for i in range(0,10,3):
23     print("loop",i)

while和for

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 #Author:YST
 4 
 5 age_of_oldboy = 56
 6 
 7 
 8 for i in range(3):
 9     guess_age = int(input("guess age:"))
10     if guess_age == age_of_oldboy :
11         print("Yes,you got it!")
12         break
13     elif guess_age > age_of_oldboy:
14         print("think smaller...")
15     else:
16         print("think bigger!")
17 
18 
19 else:
20     print("you have tried too many times...Fuck off")

guess小游戏for

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 #Author:YST
 4 
 5 age_of_oldboy = 56
 6 
 7 count = 0
 8 while count  age_of_oldboy:
14         print("think smaller...")
15     else:
16         print("think bigger!")
17 
18     count = count + 1
19     if count == 3:
20         countine_confirm = input("do you want to keep guessing..?(Y/N)")
21         if countine_confirm != 'N':
22             count = 0
23 else:
24     print("you have tried too many times...Fuck off")

guess游戏循环玩while

错误代码 guess游戏循环 for 无法继续进行 3次后 回车无法进行下一个循环


 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 #Author:YST
 4 age_of_YST = 23
 5 
 6 for i in range(0,3):
 7     guess_age = int(input("guess age: "))
 8     if guess_age == age_of_YST:
 9         print("Yes,you got it!")
10         break
11     elif guess_age > age_of_YST:
12         print("think samller...")
13     else:
14         print("think bigger...")
15         if i == 2:
16             i = 0
17             countine_confirm = input("Do you want to keep guessing?(y/n)")
18             if countine_confirm != 'n':
19                 continue
20                 i=1
21 else:
22     print("you have tried too many times...Fuck off!")

gudess游戏for-错误

您可能感兴趣的

python爬虫项目(新手教程)之知乎(requests方式)... -前言 之前一直用scrapy与urllib姿势爬取数据,最近使用requests感觉还不错,这次希望通过对知乎数据的爬取为 各位爬虫爱好者和初学者更好的了解爬虫制作的准备过程以及requests请求方式的操作和相关问题。当然这是一个简单的爬虫项目,我会用重点介绍爬虫从开始制作的准备过程,目的是...
python 实现int函数 拖了这么久,最终还是战胜了懒惰,打开电脑写了这篇博客,内容也很简单,python实现字符串转整型的int方法 python已经实现了int方法,我们为什么还要再写一遍,直接用不就好了?事实确实如此,但是int函数看似简单,实际上自己来实现还是有一些坑的 1.判断正负 这点很容易忘记 ...
Python 3 利用 Dlib 19.7 实现摄像头人脸识别... 0.引言 利用python开发,借助Dlib库捕获摄像头中的人脸,提取人脸特征,通过计算欧氏距离来和预存的人脸特征进行对比,达到人脸识别的目的; 可以自动从摄像头中抠取人脸图片存储到本地; 根据抠取的 / 已有的同一个人多张人脸图片提取128D特征值,然后计算该人的128D特征...
How do I create a Python socket server that listen... I am trying to make a Javascript (Nodejs) app communicate with a Python app. I got something working using a socket bound to my localh...
Introduction to Git and GitHub for Python Develope... Have you ever worked on a Python project that stopped working after you made a change here or a PEP-8 cleanup there, and you weren’t quite sure how to...
Python_博客园责编内容来自:Python_博客园 (源链) | 更多关于

阅读提示:酷辣虫无法对本内容的真实性提供任何保证,请自行验证并承担相关的风险与后果!
本站遵循[CC BY-NC-SA 4.0]。如您有版权、意见投诉等问题,请通过eMail联系我们处理。
酷辣虫 » Python-Day1



专业 x 专注 x 聚合 x 分享 CC BY-NC-SA 4.0

使用声明 | 英豪名录