Python
执行Python程序
1先启动Python解释器
2Python解释器像文本编辑器一样将文件内容从硬盘读入内存
3Python解释器解释执行文件代码
强调:只有第三个阶段才识别Python的语法
变量
什么是变量
变量即变化的量,核心是“变”与“量”二字,变即变化,量即衡量状态。
为什么要有变量
程序执行本质是一系列状态的变化,变是程序执行的直接的体现,所以我们需要一种机制能反应或保存程序执行时状态及状态变化
如何定义变量
变量名(相当于门牌,指向内存地址),引用变量值
等号,赋值
变量值:存放的数据
name='han'
sex='male'
变量的定义规范
#1. 变量名只能是 字母、数字或下划线的任意组合 #2. 变量名的第一个字符不能是数字 #3. 关键字不能声明为变量名['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']
定义方式:
#驼峰体
AgeOfOldboy = 56
NumberOfStudents = 80
#下划线(推荐使用)
age_of_oldboy = 56
number_of_students = 80
定义变量名不好的方式
#1. 变量名为中文、拼音 #2. 变量名过长 #3. 变量名词不达意
#1 等号比较的是value,
#2 is比较的是id
#强调:
#1. id相同,意味着type和value必定相同
#2. value相同type肯定相同,但id可能不同,如下
>>> x='Info Egon:18'
>>> y='Info Egon:18'
>>> id(x)
>>> id(y)
>>>
>>> x == y
True
>>> x is y
False
定义变量的三个特征:id type value
ID相等,值一定相等
值相等,id不一定相等
常量
常量即指不变的量,如pai 3.141592653..., 或在程序运行过程中不会改变的量 在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量
#ps:在c语言中有专门的常量定义语法,const int count = 60;一旦定义为常量,更改即会报错
Python内存管理
引用计数
引用计数为0,会被Python回收
用户交互
Python3
input()用户输入任何值都是字符串
注释
单行注释 #
多行注释 """ """ , ''' '''
文件头
#!/usr/bin/env python
#-*- coding: utf-8 -*-
基本数据类型
什么是数据?为何要有多种类型的数据?
#数据即变量的值,如age=18,18则是我们保存的数据。
#变量的是用来反映/保持状态以及状态变化的,毫无疑问针对不同的状态就应该用不同类型的数据去标识
数字
int整形
float浮点型
字符串
在Python中,加了引号的字符就是字符串型,Python没有字符型
name="han"
#数字可以进行加减乘除等运算,字符串呢?让我大声告诉你,也能?what ?是的,但只能进行"相加"和"相乘"运算。 >>> name='egon' >>> age='18' >>> name+age #相加其实就是简单拼接 'egon18' >>> name*5 'egonegonegonegonegon'
#注意1:字符串相加的效率不高 字符串1+字符串3,并不会在字符串1的基础上加字符串2,而是申请一个全新的内存空间存入字符串1和字符串3,相当字符串1与字符串3的空间被复制了一次, #注意2:只能字符串加字符串,不能字符串加其他类型
列表
在[]内用逗号隔开,可以存放任意类型的值
student=['li','wu','yan']
字典
{}内用逗号隔开,可以存放多个key:value的值,value可以事任意类型
info={'name'':'han','age':20,'gender':'male'}
布尔值
True False
布尔类型的重点知识!!!:
#所有数据类型都自带布尔值
1、None,0,空(空字符串,空列表,空字典等)三种情况下布尔值为False
2、其余均为真
重点:
#1.可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表,字典 #2. 不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间)
格式化输出
#%s字符串占位:可以接受字符串,也可接受数字
print('My name is %s,my age is %s'%('han',18))
#%d数字占位符:只能接受数字
print('My name is %s,my age is %d'%("han",18))
基本运算符
算数运算
以下假设变量:a=10,b=20
比较运算
以下假设变量:a=10,b=20
赋值运算
以下假设变量:a=10,b=20
逻辑运算
>>> True or Flase and False
True
>>> (True or Flase) and False
False
流程控制之if...else
if 条件1:
pass
elif 条件2:
pass
else:
pass
流程控制之while循环
条件循环:while,语法如下
while 条件: # 循环体 # 如果条件为真,那么循环体则执行,执行完毕后再次循环,重新判断条件。。。 # 如果条件为假,那么循环体不执行,循环终止
#练习,要求如下: 1 循环验证用户输入的用户名与密码 2 认证通过后,运行用户重复执行命令 3 当用户输入命令为quit时,则退出整个程序
#实现一:
name='egon'
password='123'
while True:
inp_name=input('用户名: ')
inp_pwd=input('密码: ')
if inp_name == name and inp_pwd == password:
while True:
cmd=input('>>: ')
if not cmd:continue
if cmd == 'quit':
break
print('run <%s>' %cmd)
else:
print('用户名或密码错误')
continue
break
#实现二:使用tag
name='egon'
password='123'
tag=True
while tag:
inp_name=input('用户名: ')
inp_pwd=input('密码: ')
if inp_name == name and inp_pwd == password:
while tag:
cmd=input('>>: ')
if not cmd:continue
if cmd == 'quit':
tag=False
continue
print('run <%s>' %cmd)
else:
print('用户名或密码错误')
break与continue
#break用于退出本层循环
while True:
print "123"
break
print "456"
#continue用于退出本次循环,继续下一次循环
while True:
print "123"
continue
print "456"
while+else
#与其它语言else 一般只与if 搭配不同,在Python 中还有个while ...else 语句,while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句
count = 0
while count <= 5 :
count += 1
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 ------
#如果执行过程中被break啦,就不会执行else的语句啦
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 ------
#8:猜年龄游戏升级版 要求: 允许用户最多尝试3次 每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序 如何猜对了,就直接退出
#题目八
age_of_oldboy=73
count=0
while True:
if count == 3:
choice=input('继续(Y/N?)>>: ')
if choice == 'Y' or choice == 'y':
count=0
else:
break
guess=int(input('>>: '))
if guess == age_of_oldboy:
print('you got it')
break
count+=1
流程控制之for循环
迭代式循环:for,语法如下
for i in range(10):
pass
循环嵌套
for+else
for i in range(10):
pass
else:
pass
Tips:
while循环(又称条件循环) 语法: while 条件: code1 code2 code3 day=1 while day < 11: 默写 听课 写作业 晚自习 day+=1 while+break:终止本层循环 while+continue:终止本次循环,直接进入下一次循环 while+else:else会在循环结束后进行一次判定,如果循环期间没有被break打断,就应该执行else的代码 while循环的嵌套: while 条件1: while 条件2: break break tag=True while tag: while tag: if 条件: tag=False