python基础
python的历史
- python由吉多.范罗苏姆(简称:龟叔)在1989年圣诞节期间为打发假期时间创建的
- python崇尚优美、简单、清晰
- 国内python主要应用的公司:豆瓣、知乎
- python主要应用领域:云计算、web开发、科学计算、系统运维、金融
- 1991年第一个编译器诞生
- 2004年python2.4 Djiango的诞生具有跨时代的意义
python的优缺点
优点
- python的定位是优雅、明确、简单
- 开发效率非常高—有强大的第三方库
- 高级语言
- 可移植性—可移植性到其他平台上
- 可扩展性—可以把部分程序用C或C++编写,然后在python中使用他们
- 可嵌入性—可以把python嵌入C或C++程序中
缺点
- 速度慢
- 代码不能加密
- 线程不能利用多CPU
python的环境
编译型
编译型:一次性将所有程序编译成二进制文件,然后在进行运行
优点:运行速度快
缺点:开发效率低(出现bug需要从头进行编译)、不能跨平台
编译型语言典型例子:c c++等
解释性
解释型:当程序执行时,一行一行的解释
优点:开发效率高、可以跨平台
缺点:运行速度慢
解释型语言典型例子:python、php等等
python是一门动态解释型的强类型定义语言
python的种类
- CPython:是使用最广泛的解释器
- IPython:是基于CPython之上的一个交互式解释器
- PyPy:他的目标在于执行速度,但是开发效率慢
- JPython:运行在Java平台上的python解释器
- IronPython:在微软上运行的python解释器
- 这几种的图形解释
变量
- 变量就是将一些运算的中间结果暂存到内存中,方便后续代码的调用
例:name = 'taibai'
变量的定义规则
- 必须由数字、字母、下划线的任意组合,且不能以数字开头
- 不能是python中的关键字
- 不能是中文
- 变量具有可描述性
变量的定义与赋值(=)
name = 'jooker'
num = 1
python中变量赋值不需要类型声明
每个变量在使用前都必须先赋值,变量赋值以后该变量才会被创建
每个变量在内存中被创建,都包括变量的标识、名称和数据这些信息
等号(=)用来给变量进行赋值
常量
常量就是一直不变的量,在python中是没有常量的,但是通常在python的定义中大写就是常量
例:BIR_OF_CHINA = 19949
注释
- 单行注释:# 被注释的内容
- 多行注释:'''被注释的内容'''或者"""被注释的内容""""
用户交互input
- input出来的数据类型全部都是str
name = input('Pls 输入你的名字:')
age = input('Pls 输入你的年龄:')
print(name,age)
pycharm的安装
注意:安装pycharm时要选择专业版的而不是社区版的
初识编码
- 电脑的传输以及数据的存储都是比特流(二进制的码流 0101001)
- 最早的密码本是ascii码,涵盖了英文字母的大小写、特殊字符和数字
- 由于ascii码只能表示256种可能,太少,所以创建了万国码unicode
- unicode中4个字节表示一个中文
- utf-8是unicode的升级版,用3个字节表示一个中文
- gbk是国人自己发明的,用2个字节表示一个中文,仅在国内使用
- 8bit == 1byte
- 1024byte == 1kb
- 1024kb == 1MB
- 1024MB == 1GB
格式化输出
%
- %代表占位符
- %s 代表str
- %d 代表数字
- %% 代表单纯的%
例子:
name = input('Pls 输入你的名字:')
age = input('Pls 输入你的年龄:')
job = input('Pls 输入你工作:')
hobbie = input('Pls 输入你的爱好:')
msg = '''------info of %s------
Name: %s
Age: %d
Job: %s
Hobbie: %s
------end of------
'''%(name,name,int(age),job,hobbie)
print(msg)
运行结果为:
Pls 输入你的名字:jooker
Pls 输入你的年龄:18
Pls 输入你工作:Operation Engineer
Pls 输入你的爱好:girl
------info of jooker------
Name: jooker
Age: 18
Job: Operation Engineer
Hobbie: girl
------end of------
format
format的三种方法
#对应输入
s = '我叫{},今年{},爱好{},再说一遍,我叫{}'.format('jooker','18','girl','jooker')
print(s)
#输入相应的索引
s = '我叫{0},今年{1},爱好{2},再说一遍,我叫{0}'.format('jooker','18','girl')
print(s)
#以键值对输入,可以打乱顺序
s = '我叫{name},今年{age},爱好{hobbile},再说一遍,我叫{name}'.format(age = 18,name = 'jooker',hobbile = 'girl')
print(s)
运行结果为:
我叫jooker,今年18,爱好girl,再说一遍,我叫jooker
我叫jooker,今年18,爱好girl,再说一遍,我叫jooker
我叫jooker,今年18,爱好girl,再说一遍,我叫jooker
name = input('Pls 输入你的名字:')
age = input('Pls 输入你的年龄:')
hobbile = input('Pls 输入你的爱好:')
s = '我叫{0},今年{1},爱好{2},再说一遍,我叫{0}'.format( name,age,hobbile)
print(s)
s = '我叫{name},今年{age},爱好{hobbile},再说一遍,我叫{name}'.format(age = age,name = name,hobbile = hobbile)
print(s)
运行结果为:
Pls 输入你的名字:jooker
Pls 输入你的年龄:18
Pls 输入你的爱好:girl
我叫jooker,今年18,爱好girl,再说一遍,我叫jooker
我叫jooker,今年18,爱好girl,再说一遍,我叫jooker
运算符
逻辑运算符
- or、and、not
- 优先级:() > not > and > or
- x or y:若x非0返回的结果为x
例子:
print(2 > 1 and 1< 4 or 2 < 3 and 9 > 6 or 2 < 4 and 3 < 2)
分析:
2 > 1 and 1< 4 T
2 < 3 and 9 > 6 T
2 < 4 and 3 < 2 F
所以:
T or T or F
所以结果为:T
基本循环
条件语句:if
语法
第一种if:单选
if 4 > 5 :
print('我请你喝酒')
print('喝什么酒')
if 4 > 5 :
print('我请你喝酒')
else:
print('喝什么酒')
第二种if:多选
num = input('Pls 输入你猜的数字:')
if num == '1' :
print('抽烟')
elif num == '2' :
print('一起喝酒')
elif num == '3' :
pring('新开了一家,走看看去')
else:
print('你猜错了')
source = int(input("Pls 输入你的分数:"))
if source > 100 :
print('哎呀~卧槽 满分才100分')
elif source > 90 :
print('我擦,优秀 牛逼呀')
elif source > 70 :
print('中等 一般般')
elif source > 60 :
print('刚及格')
else:
print('你也太菜了吧,还不及格')
第三种if:嵌套
num = input('Pls 输入你猜的数字:')
age = input('Pls 输入你猜的年龄:')
if name == '小二' :
if age == '18' :
print(666)
else:
print('年龄不对')
else:
print('错了…… 不是本人')
循环语句:while
语法
while 条件:
循环体:
如果条件为真,则循环体执行
如果条件为假,则循环体不执行
无限循环
while True:
print('我们不一样')
print('在人间')
print('痒')
print('222')
执行结果是一直循环:
我们不一样
在人间
痒
flag = True
count = 1
while flag:
count += count
if count > 100:
flag = False
print('结束')
终止循环之break
终止整个循环
print('11')
while True:
print('22')
print('33')
break
print('44') # 强制终止循环
print('55')
运行结果为:
11
22
33
55
终止循环之continue
终止本次循环继续下次循环
count = 0
while count<=100:
count += 1
if count > 5 and count < 95:
continue
print('loop',count)
print('------out of while loop------')
运行结果为:
loop 1
loop 2
loop 3
loop 4
loop 5
loop 95
loop 96
loop 97
loop 98
loop 99
loop 100
loop 101
------out of while loop------
while else
当循环被break打断时,不会执行else
count = 0
while count<=5:
count += 1
if count == 3:
pass
print('loop',count)
else:
print('循环正常执行完了')
print('------out of while loop------')
运行结果为:
loop 1
loop 2
loop 3
loop 4
loop 5
loop 6
循环正常执行完了
------out of while loop------
count = 0
while count<=5:
count += 1
if count == 3:
break
print('loop',count)
else:
print('循环正常执行完了')
print('------out of while loop------')
运行结果为:
loop 1
loop 2
------out of while loop------
for循环(有限的循环)
s = 'jookerORroot'
for i in s:
print(i)
运行结果为:
j
o
o
k
e
r
O
R
r
o
o
t