一 编程与编程语言
python是一门编程语言,搞明白三点:
1、编程目的?
计算机的发展就是为解放人力,机器是死的,所以人必须找到一种能够被机器识别的表达式从而把自己的思想按照
这个表达方式传递机器,完成机器可以自发的工作。
2、什么编程语言?
上面所说的表达方式指的就编程语言
英语 Python
单词 关键字(if while for and or)
语法 语法
作文 编程
3、什么编程?
按照某种编程语言的语法风格写程序,程序在未执前就是一对普通文件。
二 编程语言的分类:
程序员(奴隶主) 计算机(奴隶)
1、机器语言:站在奴隶角度说计算机能听懂的话,直接用二进制编程,直接操作硬件
优点:执行效率快
缺点:学习难度大,开发效率低
2、汇编语言:站在奴隶角度说计算机能听懂的话,用一些英文标签来代替一串特定的意义的二进制,还是直接操作硬件
优点:执行效率快,不如机器语言快
缺点:学习难度大,开发效率低,比机器语言降一个难度
3、高级语言:站在人的角度说人话,机器无法理解,所以需要翻译
编译型(C):相当于百度翻译,翻译一次,拿着该翻译的结果去执行。
优点:执行效率高
缺点:开发效率低
解释型(Python):相当于同声传译,一边解释一边执行。
优点:开发效率高
缺点:执行效率低
执行效率:从高到低
开发效率:从低到高
学习难度:从难到易
执行效率不是影响,开发效率才是王道
三 写程序的两种方式:
交互式环境:
即时调试
文件的方式
python3 C:\test.py
四 变量:
什么是变量?
变指的是“变化”,量指的反映某种状态
如何定义变量?
name=‘egon‘
password=‘egon123‘
password=‘[email protected]‘
level=1
level=2
print=‘123‘
print(‘asdfasdf‘)
变量名的命名规则?
#1. 变量名只能是 字母、数字或下划线的任意组合
#2. 变量名的第一个字符不能是数字
#3. 关键字不能声明为变量名[
定义的方式:
驼峰式
AgeOfOldboy=53
下划线
age_of_oldboy=53
age_of_oldboy=54
五:常量
AGE_OF_OLDBOY=54
六: 执行过程(重点!!!)
python3 C:\test.py
1、先启动python3.exe
2、把C:\test.py从硬盘读入内存
3、解释执行文件内容(识别python语法)
七:引用计数+垃圾回收机制(了解)
x=‘aaa‘ #‘aaa‘这个值的引用计数为1
y=x #‘aaa‘这个值的引用计数为2
x=1
y=2
z=3
del z
八:产生一个变量的三要素(重点)
name=‘egon‘
变量值:用来表示状态
用变量名取变量值
print(name)
变量值的类型:表示不同的状态应该用不同类型的值去表示(数字:年龄,字符串:名字)
print(type(name))
变量值的id号:
print(id(name))
>>> name1=‘egon‘
>>> name1,type(name1),id(name1)
(‘egon‘, <class ‘str‘>, 35494968)
>>>
>>>
>>>
>>> name2=‘egon‘
>>> name2,type(name2),id(name2)
(‘egon‘, <class ‘str‘>, 35494968)
>>> info1=‘info egon:18‘
>>> info2=‘info egon:18‘
>>> info1,type(info1),id(info1)
(‘info egon:18‘, <class ‘str‘>, 35513136)
>>> info2,type(info2),id(info2)
(‘info egon:18‘, <class ‘str‘>, 35513200)
>>> x=1
>>> y=1
>>>
>>> id(x)
1626261168
>>> id(y)
1626261168
>>>
>>> x=1234567890123
>>> y=1234567890123
>>> id(x)
30057584
>>> id(y)
34827152
判断值是否相等:==
判断id是否相等:is
>>> x=1234567890123
>>> y=1234567890123
>>> id(x)
30057584
>>> id(y)
34827152
>>>
>>>
>>> x is y
False
>>> x == y
True
九:程序与用户交互
user=input(‘先生您好,请输入账号:‘) #把用户输入的内容都存成字符串类型
"""
xxxxx
yhyyyy
zzz
"""
-----------------------------------------------------------------------------------
数据类型
整型:int
状态:等级,身份证号,年龄
# level=10 #level=int(10)
# print(level,type(level),id(level))
浮点型:float
状态:薪资,身高,体重
# salary=3000.3 #salary=float(3000.3)
# print(salary,type(salary),id(salary))
字符串:在引号(单引号,双引号,三引号)里定义的一堆字符
状态:描述性的内容,比如名字,性别,国籍
# gender=‘male‘ #gender=str(‘male‘)
# print(type(gender))
# info="my name is egon i‘m a teacher"
#
# msg=‘‘‘
# xxxx
# yyy
# zzz
# ‘‘‘
# print(msg)
# x=1
# y=2.3
# res=x+y
# print(res)
#字符只能跟字符串之间进行+或者*
# info1=‘hello‘
# info2=‘world‘
# res=info1+info2
# print(res)
# print(‘egon‘*10)
# print(‘‘*10)
# print(‘=‘*10)
# print(‘hello world‘)
# print(‘=‘*10)
列表:在[]内,用逗号分隔开,存放多个任意类型的元素
状态:有序存放多个值
# info=‘‘‘
# name:xxx
# age:18
# sex:male
# ‘‘‘
# print(info)
# info=[‘egon‘,18,‘male‘,[‘欧德博爱‘,‘education‘,70]] #info=list([...])=
# print(info[0])
# print(info[3])
# print(info[3][0])
字典类型:定义花括号内,用逗号分割key:value,value可以是任意类型,但是key必须不可变类型
状态:存放多个值
# name age sex company
# info=[‘egon‘,18,‘male‘,[‘欧德博爱‘,‘education‘,70]]
# info[2]
# name age sex company
info={
‘name‘:‘egon‘,
‘age‘:18,
‘sex‘:‘male‘,
‘company‘:[‘欧德博爱‘,‘education‘,70]
} #info=dict({....})
# print(info,type(info),id(info))
# print(info[‘sex‘])
# print(info[‘company‘][2])
#
#
#
# info={
# ‘name‘:‘egon‘,
# ‘age‘:18,
# ‘sex‘:‘male‘,
# ‘company‘:{‘name‘:‘欧德博爱‘,‘type‘:‘education‘,‘emp_count‘:70}
# }
#
# print(info[‘company‘][‘type‘])
#
# dic={0:‘egon‘,1:‘xxx‘,2:‘yyy‘}
#
# print(dic[0])
# stduents=[‘egon‘,‘alex‘,‘wxx‘,‘yxx‘]
布尔:True,False
状态:成立,不成立,用来做逻辑运算---》判断
print(type(True))
age=38
print(age > 18)
-----------------------------------------------------------------------------------
可变类型与不可变类型
#1.可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表,字典
#2. 不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间)
#int,float,str
# dic={1:‘a‘}
# dic={1.1:‘a‘}
# dic={‘b‘:‘a‘}
# dic={[1,2,3]:‘a‘}
# dic={{‘a‘:1}:‘a‘}
# dic={True:‘a‘}
# print(dic[True])
-----------------------------------------------------------------------------------
格式化输出
# name=input(‘name>>: ‘)
# age=input(‘age>>: ‘)
#
# print(‘my name is [%s] my age is <%s>‘ %(name,age))
# print(‘my name is %s‘ %‘egon‘)
# print(‘my name is %s‘ %11111111111111)
# print(‘my age is %d‘ %10)
# print(‘my age is %d‘ %‘xxxx‘) #%d只能接收数字,而%s既可以接收数字又可以接收字符串
name=input(‘name>>: ‘)
age=input(‘age>>: ‘)
sex=input(‘sex>>: ‘)
job=input(‘job>>: ‘)
msg=‘‘‘
------------ info of %s -----------
Name : %s
Age : %s
Sex : %s
Job : %s
------------- end -----------------
‘‘‘ %(name,name,age,sex,job)
print(msg)
-----------------------------------------------------------------------------------
基本运算符
#算术
# print(10%3)
# print(2**3)
# print(10/3)
# print(10//3)
#比较
# print(10 > 3)
# print(10 < 3)
# print(10 == 3)
# print(10 != 3)
#赋值
# a=2
# b=a
#链式赋值
# a=b=c=2
# print(id(a),id(b),id(c))
#交叉赋值
# m=1
# n=2
# temp=m
# m=n
# n=temp
# print(m,n)
# m,n=n,m
# print(m,n)
#解压
l=[1,2,3,4]
# a,b,c,d=l
# print(a)
# print(b)
# print(c)
# print(d)
# a=l[0]
# _=l[1]
# _=l[2]
# d=l[3]
# a,_,_,d=l
# print(a,d)
# a,*_,d=l
# print(a)
# print(d)
#赋值运算符
# level=1
# level+=1 #level=level+1
# level-=1 #level=level-1
# print(level)
#逻辑and or not
# age=18
# is_pretty=True
# height=170
# weight=80
# print(age >= 18 and is_pretty == True and height > 160 and weight > 30 and weight < 90)
# print(1 > 2 or 1 > 3 or 3 > 1 or 4 < 3)
# print(not 4 > 2)
age=18
is_pretty=True
height=170
weight=80
print((height > 160 and weight > 60 and weight < 90) or is_pretty == True or age == 18
)
#身份
#is比较的是id
#而==比较的是值
-----------------------------------------------------------------------------------
流程控制之if判断 和 while循环
# age=28
# if age > 18:
# print(‘表白‘)
# age=28
# if age > 18 and age < 22:
# print(‘表白‘)
# else:
# print(‘阿姨好‘)
# age=19
# is_pretty=True
# success=True
# if age > 18 and age < 22 and is_pretty:
# if success:
# print(‘表白成功,在一起‘)
# else:
# print(‘去他妈的爱情‘)
# else:
# print(‘阿姨好‘)
score=input(‘>>: ‘)
#>=90:优秀
#>=80 <90 :良好
#>=60 <80 :合格
#<60:滚犊子
score=int(score)
if score >= 90:
print(‘优秀‘)
elif score >= 80:
print(‘良好‘)
elif score >= 60:
print(‘合格‘)
else:
print(‘滚犊子‘)
#条件循环
‘‘‘
while 条件:
代码1
代码2
代码3
‘‘‘
# age_of_oldboy=54
#
# guess=input(‘>>: ‘)
# guess=int(guess)
#
# if guess > age_of_oldboy:
# print(‘too big‘)
# elif guess < age_of_oldboy:
# print(‘too small‘)
# else:
# print(‘you got it‘)
#
# guess=input(‘>>: ‘)
# guess=int(guess)
#
# if guess > age_of_oldboy:
# print(‘too big‘)
# elif guess < age_of_oldboy:
# print(‘too small‘)
# else:
# print(‘you got it‘)
#
# guess=input(‘>>: ‘)
# guess=int(guess)
#
# if guess > age_of_oldboy:
# print(‘too big‘)
# elif guess < age_of_oldboy:
# print(‘too small‘)
# else:
# print(‘you got it‘)
# count=0
# while count <= 10:
# print(count)
# count+=1
#while+break
# count=0
# while True:
# if count == 5:
# break #跳出本层
# print(count)
# count+=1
#while+continue
#1,2,3,4,5,7
# count=1
# while count <= 7:
# if count == 6:
# count += 1
# continue #跳出本次循环
# print(count)
# count+=1
#嵌套循环
# count=1
# while True:
# if count > 3:
# print(‘too many tries‘)
# break
#
# name=input(‘name>>: ‘)
# password=input(‘password>>: ‘)
# if name == ‘egon‘ and password == ‘123‘:
# print(‘login successfull‘)
# break
# else:
# print(‘user or password err‘)
# count+=1
# count = 1
# while True:
# if count > 3:
# print(‘too many tries‘)
# break
#
# name = input(‘name>>: ‘)
# password = input(‘password>>: ‘)
# if name == ‘egon‘ and password == ‘123‘:
# print(‘login successfull‘)
# while True:
# cmd=input(‘cmd>>: ‘) #q
# if cmd == ‘q‘:
# break
# print(‘run %s‘ %cmd)
# break
# else:
# print(‘user or password err‘)
# count += 1
# count = 1
# tag=True
# while tag:
# if count > 3:
# print(‘too many tries‘)
# break
#
# name = input(‘name>>: ‘)
# password = input(‘password>>: ‘)
# if name == ‘egon‘ and password == ‘123‘:
# print(‘login successfull‘)
# while tag:
# cmd=input(‘cmd>>: ‘) #q
# if cmd == ‘q‘:
# tag=False
# continue
# print(‘run %s‘ %cmd)
#
# else:
# print(‘user or password err‘)
# count += 1
#while+else
count=0
while count <= 5:
if count == 3:
break
print(count)
count+=1
else:
print(‘当while循环在运行过程中没有被break打断,则执行我‘)