本节内容
- Python介绍
- 编程语言分类
- Hello World程序
- 变量
- 字符编码
- 用户输入
- 数据类型初识
- 表达式if ...else语句
- 表达式while 循环
- 表达式for 循环
- break and continue
- 嵌套
- 作业需求
一、python介绍
python的创始人---吉多·范罗苏姆(Guido van Rossum)----1989年
目前Python主要应用领域:
- 云计算: 云计算最火的语言, 典型应用OpenStack
- WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
- 科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas
- 系统运维: 运维人员必备语言
- 金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测
- 图形GUI: PyQT, WxPython,TkInter
Python在一些公司的应用:
- 谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬虫、Google广告等项目都在大量使用Python开发
- CIA: 美国中情局网站就是用Python开发的
- NASA: 美国航天局(NASA)大量使用Python进行数据分析和运算
- YouTube:世界上最大的视频网站YouTube就是用Python开发的
- Dropbox:美国最大的在线云存储网站,全部用Python实现,每天网站处理10亿个文件的上传和下载
- Instagram:美国最大的图片分享社交网站,每天超过3千万张照片被分享,全部用python开发
- Facebook:大量的基础库均通过Python实现的
- Redhat: 世界上最流行的Linux发行版本中的yum包管理工具就是用python开发的
- 豆瓣: 公司几乎所有的业务均是通过Python开发的
- 知乎: 国内最大的问答社区,通过Python开发(国外Quora)
- 春雨医生:国内知名的在线医疗网站是用Python开发的
- 除上面之外,还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝 、土豆、新浪、果壳等公司都在使用Python完成各种各样的任务。
二、编程语言分类
编译型和解释型
动态语言和静态语言
强类型定义语言和弱类型定义语言
python是一门动态解释性的强类型定义语言。
python的优缺点
先看优点
- “优雅”、“明确”、“简单”
- 开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能
- 高级语言
- 可移植性
- 可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
- 可嵌入性————你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
再看缺点:
- 速度慢,Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些,你要写对速度要求极高的搜索引擎等,这种情况下,当然还是建议你用C去实现的。
- 代码不能加密,因为PYTHON是解释性语言,它的源码都是以名文形式存放的
- 线程不能利用多CPU问题,这是Python被人诟病最多的一个缺点。 Python的线程是操作系统的原生线程。
python解释器
- cpython: 官方版本
- PyPy: 是另一个Python解释器,它的目标是执行速度。
- Jpython
- Ironpython
三、Hello World程序
Linux中
#!/usr/bin/env python 自动寻找环境变量
#!/usr/bin/python 固定
print("hello world")
命令行界面执行hello.py
pycharm中运行程序
1 #include <iostream> 2 int main(void) 3 { 4 std::cout<<"Hello world"; 5 }
1 #include <stdio.h> 2 int main(void) 3 { 4 printf(" hello world!"); 5 return 0; 6 }
1 public class HelloWorld{ 2 // 程序的入口 3 public static void main(String args[]){ 4 // 向控制台输出信息 5 System.out.println("Hello World!"); 6 } 7 }
1 <?php 2 echo "hello world!"; 3 ?>
1 puts "Hello world."
1 package main 2 3 import "fmt" 4 5 func main(){ 6 7 fmt.Printf("Hello World! God Bless You!"); 8 9 }
四、pycharm设置
project路径设置,python版本设置
开头默认设置
五、变量
变量声明,赋值
name = "Alex Li" name2 = name print("My name is ",name,name2) name = "Paoche ge" print(name,name2)
变量定义的规则:
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
2name
name of alex
$name
name-
_name
_____name
a
b
c
a1
a2
变量要有含义 age job name
姓名="alex li"
xingming
#gfofoldboy
gf_of_oldboy = "Chen rong hua"
GFOfOldboy = "Chen rong hua" #驼峰
#const 常量
#PIE = (python常量大写)
六、字符编码
狼烟
python2.x 不能识别中文,开头加 #coding=utf-8
python3.x可以识别中文
注释
msg = '''注释多行,打印多行 2name name of alex $name name- _name _____name ''' print(msg )
七 、字符串格式化输出
username = input("username: ") passwd = input("passwd: ") print(username,passwd)
raw_input ( python 2.x) 等同 input (python3.x)
input (python 2.x ) ??
字符串拼接
#开辟好几块内存,效率低下 name = input("name: ") age = int(input("age:")) #integer print(type(age),type( str(age) )) job = input ("job:") salary = input("salary:") info = ''' --------- info of ''' + name + ''' ---- Name: ''' + name + ''' Age: ''' + age + ''' Job: '''+ job + ''' Salary:'''+ salary print(info)
info = ''' -------- info of %s --- Name:%s Age:%d Job:%s Salary:%s '''% (name,name,age,job,salary) print(info)
info2 = ''' -------- info of {_name} --- Name:{_name} Age:{_age} Job:{_job} Salary:{_salary} '''.format(_name=name, _age=age, _job=job, _salary=salary ) print(info2)
info2 = ''' -------- info of {0} --- Name:{0} Age:{1} Job:{2} Salary:{3} '''.format(name,age,job,salary) print(info2)
八、if ...else
场景一、用户登陆验证
import getpass username = input('请输入用户名:') passwd = getpass.getpass('请输入密码:')
print(username,passwd)
# 提示输入用户名和密码 # 验证用户名和密码 # 如果错误,则输出用户名或密码错误 # 如果成功,则输出 欢迎,XXX! username = "alex" passwd = "redhat" _username = input("username: ") _passwd = input("passwd: ") if username == _username and passwd == _passwd: print("welcome {name} login...".format(name=username)) else: print("Invalid username or passwd")
场景二、猜年龄游戏
1 age_of_oldboy = 56 2 age = int( input("guess age :")) 3 if age_of_oldboy == age: 4 print("you get it") 5 elif age_of_oldboy > age: 6 print("think bigger...") 7 else: 8 print("think smaller...")
九、while
1 count = 0 2 while True: 3 print("count: ",count) 4 count = count +1 # count += 1 5 if count == 1000: 6 break #跳出循环,执行下一步
guess while.py
1 while True: 2 age = int( input("guess age :")) 3 if age_of_oldboy == age: 4 print("you get it") 5 break 6 elif age_of_oldboy > age: 7 print("think bigger...") 8 else: 9 print("think smaller...")
3次猜不到退出
1 age_of_oldboy = 56 2 count = 0 3 while True: 4 if count == 3: 5 break 6 age = int( input("guess age :")) 7 if age_of_oldboy == age: 8 print("you get it") 9 break 10 elif age_of_oldboy > age: 11 print("think bigger...") 12 else: 13 print("think smaller...") 14 count += 1
优化:
1 age_of_oldboy = 56 2 count = 0 3 while count < 3: 4 age = int( input("guess age :")) 5 if age_of_oldboy == age: 6 print("you get it") 7 break 8 elif age_of_oldboy > age: 9 print("think bigger...") 10 else: 11 print("think smaller...") 12 count += 1
优化后:
count = 0 while count < 3: age = int( input("guess age :")) if age_of_oldboy == age: print("you get it") break elif age_of_oldboy > age: print("think bigger...") else: print("think smaller...") count += 1 if count == 3: print("you have trying enough... fuck off")
终极优化:
1 age_of_oldboy = 56 2 count = 0 3 while count < 3: 4 age = int( input("guess age :")) 5 if age_of_oldboy == age: 6 print("you get it") 7 break 8 elif age_of_oldboy > age: 9 print("think bigger...") 10 else: 11 print("think smaller...") 12 count += 1 13 else: 14 print("you have trying enough... fuck off")
九、for
for循环:
for i in range(10): print("loop...",i)
默认为1,步长为2
for i in range(0,10,2): print("loop..-",i)
3次猜年龄,for语句
1 for i in range(3): 2 age = int( input("guess age :")) 3 if age_of_oldboy == age: 4 print("you get it") 5 break 6 elif age_of_oldboy > age: 7 print("think bigger...") 8 else: 9 print("think smaller...") 10 else: 11 print("you have trying enough... fuck off")
guess任性玩
1 age_of_oldboy = 56 2 count = 0 3 while count < 3: 4 age = int( input("guess age :")) 5 if age_of_oldboy == age: 6 print("you get it") 7 break 8 elif age_of_oldboy > age: 9 print("think bigger...") 10 else: 11 print("think smaller...") 12 count += 1 13 if count == 3: 14 countine_confirm= input("dou you want to go on ...") 15 if countine_confirm != "n": 16 count = 0
十、 continue
1 for i in range(0,10): 2 if i < 3: 3 print("loop...",i) 4 else: 5 continue #跳出本次循环,进入下一次循环 6 print("this is continue") 7 print("hehehe")
debug调试
插入断点--
十一、嵌套
for i in range(10): print("------",i) for j in range(10): print(j)
for i in range(10): print("------",i) for j in range(10): print(j) if j > 5: break