Python day1 ---python基础1
本节内容
- 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 }
C++
1 #include <stdio.h>
2 int main(void)
3 {
4 printf("\nhello world!");
5 return 0;
6 }
C
1 public class HelloWorld{
2 // 程序的入口
3 public static void main(String args[]){
4 // 向控制台输出信息
5 System.out.println("Hello World!");
6 }
7 }
Java
1 <?php
2 echo "hello world!";
3 ?>
php
1 puts "Hello world."
RUBY
1 package main
2
3 import "fmt"
4
5 func main(){
6
7 fmt.Printf("Hello World!\n God Bless You!");
8
9 }
Go
四、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)
方法1:加号
info = '''
-------- info of %s ---
Name:%s
Age:%d
Job:%s
Salary:%s
'''% (name,name,age,job,salary)
print(info)
方法2:%s
info2 = '''
-------- info of {_name} ---
Name:{_name}
Age:{_age}
Job:{_job}
Salary:{_salary}
'''.format(_name=name,
_age=age,
_job=job,
_salary=salary
)
print(info2)
方法3: .format
info2 = '''
-------- info of {0} ---
Name:{0}
Age:{1}
Job:{2}
Salary:{3}
'''.format(name,age,job,salary)
print(info2)
方法3-2: .format
八、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")
场景二、猜年龄游戏
age_of_oldboy = 56
age = int( input("guess age :"))
if age_of_oldboy == age:
print("you get it")
elif age_of_oldboy > age:
print("think bigger...")
else:
print("think smaller...")
九、while
count = 0
while True:
print("count: ",count)
count = count +1 # count += 1
if count == 1000:
break #跳出循环,执行下一步
guess while.py
while True:
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...")
3次猜不到退出
age_of_oldboy =
count =
while True:
if count == :
break
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 +=
优化:
age_of_oldboy =
count =
while count < :
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 +=
优化后:
count =
while count < :
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 +=
if count == :
print("you have trying enough... fuck off")
终极优化:
age_of_oldboy =
count =
while count < :
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 +=
else:
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语句
for i in range():
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...")
else:
print("you have trying enough... fuck off")
guess任性玩
age_of_oldboy =
count =
while count < :
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 +=
if count == :
countine_confirm= input("dou you want to go on ...")
if countine_confirm != "n":
count =
十、 continue
for i in range(,):
if i < :
print("loop...",i)
else:
continue #跳出本次循环,进入下一次循环
print("this is continue")
print("hehehe")
debug调试
插入断点--
十一、嵌套
for i in range():
print("------",i)
for j in range():
print(j)
for i in range():
print("------",i)
for j in range():
print(j)
if j > :
break
十二、作业
Python day1 ---python基础1的更多相关文章
- python,Day1,基础1
主要内容 1.python介绍 2.发展史 3.安装 4.hello world程序 5.变量 6.用户输入 7.模块 8.数据类型 9.数据运算 10.if...else语句 11.while循环 ...
- python day1 python介绍,安装及运算符
目录 python day1 1. 不同编程语言的对比 2. 为什么学python? 3. python的种类 4. python的安装(windows系统) 5. 导入模块或包 6. pyc文件 7 ...
- Python day1 ---python基础1.1
1.模块初识2..pyc是个什么鬼?3.数据类型初识 4.数据运算5.入门知识拾遗 1.模块初识 sys模块 import sys print(sys.path) #打印环境变量 'D:\\Pycha ...
- Day1 - Python基础1 介绍、基本语法、流程控制
Python之路,Day1 - Python基础1 本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼 ...
- Python之路,Day1 - Python基础1
本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...
- Day1 Python 介绍及基础
******************本文目录******************一.Pyhon基本介绍 1.Why Python? 2. Python 是一门什么样的语言? 3.Python的优缺点: ...
- Python之路,Day1 - Python基础1(转载Alex)
本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...
- Python之路,Day1 - Python基础1 --转自金角大王
本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...
- Python之路,Day1 - Python基础1 介绍、基本语法、流程控制
本节内容 1.python介绍 2.发展史 3.python 2.x or python 3.x ? 4.python 安装 5.第一个程序 Hello World 程序 6.变量 7.用户输入 8. ...
随机推荐
- 滑动cell的时候执行动画效果
滑动cell的时候执行动画效果 效果图: 源码: // // ViewController.m // AniTab // // Created by XianMingYou on 15/2/26. / ...
- [翻译] USING GIT IN XCODE [2] 在XCODE中使用GIT[2]
USING GIT IN XCODE http://www.cimgf.com/2013/12/10/using-git-in-xcode/ USING AN EXISTING REMOTE PROJ ...
- QT里使用Gsoap调用WebService
错误了很多天,今天终于搞定,并得到了服务器的结果.这里把错误的原因记录下来. 首先是这里,之前一直没有加载进来,所以一直报错 SOURCES += main.cpp\ gsoap/soapClient ...
- HTML5 canvas画图
HTML5 canvas画图 HTML5 <canvas> 标签用于绘制图像(通过脚本,通常是 JavaScript).不过,<canvas> 元素本身并没有绘制能力(它仅仅是 ...
- Array.prototype.reduce 的理解与实现
Array.prototype.reduce 是 JavaScript 中比较实用的一个函数,但是很多人都没有使用过它,因为 reduce 能做的事情其实 forEach 或者 map 函数也能做,而 ...
- loj6119 「2017 山东二轮集训 Day7」国王
题目描述 在某个神奇的大陆上,有一个国家,这片大陆的所有城市间的道路网可以看做是一棵树,每个城市要么是工业城市,要么是农业城市,这个国家的人认为一条路径是 exciting 的,当且仅当这条路径上的工 ...
- python第二十五课——闭包
满足闭包的三个条件: 1).有外部函数和内部函数这样的结构 2).外部函数中定义的变量被内部函数所使用 3).内部函数对象作为返回值被外部函数返回 演示闭包的定义和使用: def outer(): a ...
- ARC与Toll-Free Bridging
arc模块与mrc模块的沟通. 相当于程序的混编处理. Toll-Free Briding保证了在程序中,可以方便和谐的使用Core Foundation类型的对象和Objective-C类型的对象. ...
- Objective-C 与命名空间
http://blog.csdn.net/michelle__/article/details/52528172 Objective-C 在Objective-C应用中的所有类名都必须是全局唯一的.命 ...
- leetcode第一刷_N-Queens
八皇后问题应该是回溯法的教学典范.在本科的时候,有一门课叫面向对象.最后的附录有这个问题的源码.当时根本不懂编程,照抄下来,执行一下出了结果都非常开心,哎. 皇后们的限制条件是不能同行同列,也不能同对 ...