python第一节课
python历史
python应用
- 云计算
- 科学运算,人工智能
- 系统运维
- 金融量化
- 图形GUI
- web开发
python语言类型
**python是一门动态解释性的强类型定义语言**
编译性和解释性
编译性
使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式。
特点
在编译型语言写的程序执行之前,需要一个专门的编译过程,把源代码编译成机器语言的文件,如exe格式的文件,以后要再运行时,直接使用编译结果即可,如直接运行exe文件。因为只需编译一次,以后运行时不需要编译,所以编译型语言执行效率高。
总结
-
一次性的编译成平台相关的机器语言文件,运行时脱离开发环境,运行效率高;
-
与特定平台相关,一般无法移植到其他平台;
-
现有的C、C++、Objective等都属于编译型语言。
解释性
使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行。
特点
解释型语言不需要事先编译,其直接将源代码解释成机器码并立即执行,所以只要某一平台提供了相应的解释器即可运行该程序
总结
- 解释型语言每次运行都需要将源代码解释称机器码并执行,效率较低;
2.只要平台提供相应的解释器,就可以运行源代码,所以可以方便源程序移植;
3. Python等属于解释型语言。 shell也是,其实就是脚本语言
编译性:
在运行前都要进行一次编译,编译完成后形成一个可执行性的文件(是一个机器码可以和底层CPU打交道)等于你想看一个外文书,你让别人把整本书翻译了然后自己再去看
注: C,C++这类除了编译后,还要链接link外部的资源库
解释性
等于你有一本外文书,你看一句,别人给你解释一句,更容易移植,跨平台更容易,比如在Windows上写的代码在linux上直接可以用,但是C不行,必须再次编译
动态语言和静态语言
静态语言
静态语言是在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型。
动态语言
动态语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。
强类型定义语言和弱类型定义语言
强类型定义语言
强类型语言是一种强制类型定义的语言,一旦某一个变量被定义类型,如果不经过强制转换,则它永远就是该数据类型了
弱类型定义语言
弱类型语言是一种弱类型定义的语言,某一个变量被定义类型,该变量可以根据环境变化自动进行转换,不需要经过显性强制转换。
python优缺点
python的优点
- 易学
- 移植性高(可以直接跨平台使用)
- 有丰富的库
- 可读性高
python的缺点
- 速度慢
. 线程不能利用多cup
python变量
变量的本质
- 变量本质可以理解为在内存中开辟一个空间,由变量名指向内存空间
变量的命名
- 标识符可以由字母、下划线和数字组成。
- 标识符不能以数字开头。
- 标识符不能与关键字重名。
- 定义变量时,建议在=的左右两边各保留一个空格。
- 变量名由两个或多个单词组成时,每个单词都应使用小写字母,并且单词与单词之间用下划线连接。如:first_name。
import keyword
print(keyword.kwlist)
变量的类型
-
在Python中,定义变量是不需要指定数据类型的。但Python本身是有数据类型的,它的数据类型可分为数字型和非数字型。
-
数字型
整型int
浮点型float
布尔bool,布尔类型中用True和False表示真和假(非零即真)。
复数型complex。主要用于科学计算
非数字型
字符串
列表
元组
字典
输入输出
Hello,World(输出)
print('Hello,World')
print("Hello,my name is xxl")
- 定义一个变量
name = ‘centos’
print(“Hello,my name is %s” %name) - 定义多个变量
username = ‘ubuntu’
passwd = ‘66888’
print(‘账号:%s,密码:%s’ %(username, passwd))
print(username, passwd)
print(‘账号:{name},密码:{password}’.format(name=username, password=passwd))
input()输入
- usr = input(“name:”)
passwd = input(“psswd:”)
python判断
-
第一种
if 判断条件:
执行语句…
else:
执行语句… -
例子:
name = input("name:")
if name == "No1":
print("会员已过期")
else:
print('welcom')
-
第二种
if 判断条件1:
执行语句…
elif 判断条件2:
执行语句…
elif 判断条件3:
执行语句…
else:
执行语句… -
例子
抽奖案例
import random
#抽奖内容
money = '100金币'
mood = '50根木头'
flower = '10朵花'
# 仓库
L_money = 1000
L_mood = 200
L_flower = 50
local = [money, mood, flower]
luck_draw = random.choice(local)
# print(local)
print('恭喜你抽到%s' %luck_draw)
if luck_draw == money:
L_money += 100
print('您还有%s金币' %L_money)
elif luck_draw == mood:
L_mood += 50
print('您还有%s木头' %L_mood)
else:
L_flower += 10
print('您还有%s朵花' %L_flower)
python(while,for)
- while 判断条件:
执行语句……
注意:如果没有计数器就会死循环
十连抽
import random
#抽奖内容
money = '100金币'
mood = '50根木头'
flower = '10朵花'
# 仓库
L_money = 1000
L_mood = 200
L_flower = 50
local = [money, mood, flower]
#抽奖
# while True:
i = 0
while i < 10:
luck_draw = random.choice(local)
# print(local)
print('恭喜你抽到%s' %luck_draw)
if luck_draw == money:
L_money += 100
print('您还有%s金币' %L_money)
elif luck_draw == mood:
L_mood += 50
print('您还有%s木头' %L_mood)
else:
L_flower += 10
print('您还有%s朵花' %L_flower)
i += 1
for
- 最简单的for循环
for i in range(10):
print(i)
下面展示一些 用for替代while的十连抽。
for i in range(10):
luck_draw = random.choice(local)
# print(local)
print('恭喜你抽到%s' %luck_draw)
if luck_draw == money:
L_money += 100
print('您还有%s金币' %L_money)
elif luck_draw == mood:
L_mood += 50
print('您还有%s木头' %L_mood)
else:
L_flower += 10
print('您还有%s朵花' %L_flower)
continue
continue,条件满足,跳过这次循环
逢7不抽
i = 0
while i < 10:
i += 1
if i%7 == 0:
continue
print(i)
break
满足条件,终止循环
抽到金币停止
import random
#抽奖内容
money = '100金币'
mood = '50根木头'
flower = '10朵花'
# 仓库
L_money = 1000
L_mood = 200
L_flower = 50
local = [money, mood, flower]
#抽奖
while True:
luck_draw = random.choice(local)
count = 0
print('恭喜你抽到%s' % luck_draw)
if luck_draw == money:
L_money += 100
count += 1
if count == 1:
break
print('您还有%s金币' % L_money)
elif luck_draw == mood:
L_mood += 50
print('您还有%s木头' % L_mood)
else:
L_flower += 10
print('您还有%s朵花' % L_flower)
print(count)