Python入门
python是一门编程语言,作为学习python的开始,需要事先搞明白:编程的目的是什么?什么是编程语言?什么是编程?
编程的目的:就是为了用机器取代/解放人力,而编程的目的则是将人类的思维逻辑按照某种能够被计算机识别的表达方式传递给计算机,从而达到让计算机能够像人脑一样自动的执行指令。
什么是编程语言:一种事物与另外一种事物沟通的介质,所以说编程语言是程序员与计算机沟通的介质。
什么是编程:就是程序员用计算机所能理解的表达方式(编程语言)把自己的思维逻辑写下来,编程的结果就是一堆文件。
附一句:我不知道成功有没有捷径,但我确定学Python没有,你只有一直的敲代码、敲、敲、敲,你才可能成为一名优秀的程序员。
机器语言:用二进制指令编程,本质是直接操作硬件
优点:执行效率高
缺点:开发效率低,学习难度高
汇编语言:用英文标签代替二进制指令,本质也是直接操作硬件
优点:执行效率高
缺点:开发效率低,学习难度高
高级语言:用人类的字符去编写程序,人类的字符计算机无法理解,必须经过翻译,翻译成机器语言计算机才能执行
编译型:C
类似与谷歌翻译-->gcc
特点:编译一次,拿到结果可以重复执行,无需重新编译
翻译:程序---->gcc----->机器语言
执行:机器语言---->CPU
优点:执行效率高
缺点:调试程序麻烦,跨平台性差
解释型:Python
类似于同声传译(解释器)
特点:解释一行,执行一行,即边翻译边执行
程序---->解释器----->机器语言----->CPU
优点:开发效率高,跨平台性高,调试程序方便
缺点:执行效率低
学习难度:从高到低
执行效率:从高到低
开发效率:从低到高
什么是变量:
变:变化
量:表示的是状态
变量是一种可以反映出状态变化的一种机制
为什么要有变量:
程序的执行本质就是一系列状态的变化
如何定义变量:
语法:变量名=值
变量名是对值的引用
示范:
level=0
level=1
age=18
age=19
变量的命名规范:
1. 变量名只能是 字母、数字或下划线的任意组合 2. 变量名的第一个字符不能是数字 3. 关键字不能声明为变量名
定义方式:驼峰体:AgeOfOldboy=58
下划线:age_of_oldboy=58
变量的三个特征(重点)
id,type,value。
示范:
name='egon'
>>> print(id(name))
1964167301752
>>> id(name)
1964167301752
>>> type(name)
<class 'str'>
等号比较的是value,is比较的是id
示范:
#==:比较的是值
s1='name:alex,age:73'
s2='name:alex,age:73'
id(s1)
1964167290288
id(s2)
1964167290504
s1 is s2
False
s1 == s2
True
#is:身份运算,比较的是id
x=1
y=x
id(x)
1894346208
id(y)
1894346208
x == y
True
x is y
True
常量:不变的量
AGE_OF_OLDBOY=58
会为客户提供一台ATM机(就是一台计算机),让ATM机跟用户交互,从而取代人力。然而机器是死的,我们必须为其编写程序来运行,这就要求我们的编程语言中能够有一种能与用户交互,接收用户输入数据的机制
input:用户输入任何值,都存成字符串类型。
1、注释:代码注释分单行和多行注释, 单行注释用#
,多行注释可以用三对双引号""" """
2、代码注释原则:
1. 不用全部加注释,只需要在自己觉得重要或不好理解的部分加注释即可 2. 注释可以用中文或英文,但不要用拼音
3、文件头:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
1、数据即变量的值,如age=18,18则是我们保存的数据
2、数字
#int整型 定义:age=10 #age=int(10) 用于标识:年龄,等级,身份证号,qq号,个数 #float浮点型 定义:salary=3.1 #salary=float(3.1) 用于标识:工资,身高,体重,
3、字符串
在python中,加了引号的字符就是字符串类型,用于标识:描述性的内容,如姓名,性别,国籍,种族。
定义:name=‘gao’
那单引号、双引号、多引号有什么区别呢? 让我大声告诉你,单双引号木有任何区别,只有下面这种情况 你需要考虑单双的配合 msg = "My name is Egon , I'm 18 years old!" #多引号什么作用呢?作用就是多行字符串必须用多引号 msg = ''' 今天我想写首小诗, 歌颂我的同桌, 你看他那乌黑的短发, 好像一只炸毛鸡。 ''' print(msg)
4、列表
#在[]内用逗号分隔,可以存放n个任意类型的值 定义:students=['egon','alex','wupeiqi',] #students=list(['egon','alex','wupeiqi',]) 用于标识:存储多个值的情况,比如一个人有多个爱好
5、字典:
#为何还要用字典? 存放一个人的信息:姓名,性别,年龄,很明显是多个值,既然是存多个值,我们完全可以基于刚刚学习的列表去存放,如下 >>> info=['egon','male',18] 定义列表的目的不单单是为了存,还要考虑取值,如果我想取出这个人的年龄,可以用 >>> info[2] 18 但这是基于我们已经知道在第3个位置存放的是年龄的前提下,我们才知道索引2对应的是年龄 即: #name, sex, age info=['egon','male',18] 而这完全只是一种假设,并没有真正意义上规定第三个位置存放的是年龄,于是我们需要寻求一种,即可以存放多个任意类型的值,又可以硬性规定值的映射关系的类型,比如key=value,这就用到了字典
。
#在{}内用逗号分隔,可以存放多个key:value的值,value可以是任意类型 定义:info={'name':'egon','age':18,'sex':18} #info=dict({'name':'egon','age':18,'sex':18}) 用于标识:存储多个值的情况,每个值都有唯一一个对应的key,可以更为方便高效地取值
6.布尔
#布尔值,一个True一个False #计算机俗称电脑,即我们编写程序让计算机运行时,应该是让计算机无限接近人脑,或者说人脑能干什么,计算机就应该能干什么,人脑的主要作用是数据运行与逻辑运算,此处的布尔类型就模拟人的逻辑运行,即判断一个条件成立时,用True标识,不成立则用False标识 >>> a=3 >>> b=5 >>> >>> a > b #不成立就是False,即假 False >>> >>> a < b #成立就是True, 即真 True
#所有数据类型都自带布尔值 1、None,0,空(空字符串,空列表,空字典等)三种情况下布尔值为False 2、其余均为真
重点:
#1.可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表,字典 #2. 不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间)
程序中经常会有这样场景:要求用户输入信息,然后打印成固定的格式
比如要求用户输入用户名和年龄,然后打印如下格式:
My name is xxx,my age is xxx.
很明显,用逗号进行字符串拼接,只能把用户输入的名字和年龄放到末尾,无法放到指定的xxx位置,而且数字也必须经过str(数字)的转换才能与字符串进行拼接。
这就用到了占位符,如:%s、%d
#%s字符串占位符:可以接收字符串,也可接收数字 print('My name is %s,my age is %s' %('egon',18)) #%d数字占位符:只能接收数字 print('My name is %s,my age is %d' %('egon',18)) print('My name is %s,my age is %d' %('egon','18')) #报错
#注意: #print('My name is %s,my age is %d' %(name,age)) #age为字符串类型,无法传给%d,所以会报错
计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,今天我们暂只学习算数运算、比较运算、逻辑运算、赋值运算
1、 算数运算
以下假设变量:a=10,b=20
2、比较运算
以下假设变量:a=10,b=20
3、赋值运算
以下假设变量:a=10,b=20
4、逻辑运算
示范:
>>> True or Flase and False True >>> (True or Flase) and False False
1 如果:女人的年龄>30岁,那么:叫阿姨
age_of_girl=31 if age_of_girl > 30: print('阿姨好')
2 如果:女人的年龄>30岁,那么:叫阿姨,否则:叫小姐
age_of_girl=18 if age_of_girl > 30: print('阿姨好') else: print('小姐好')
3 如果:女人的年龄>=18并且<22岁并且身高>170并且体重<100并且是漂亮的,那么:表白,否则:叫阿姨
age_of_girl=18 height=171 weight=99 is_pretty=True if age_of_girl >= 18 and age_of_girl < 22 and height > 170 and weight < 100 and is_pretty == True: print('表白...')else: print('阿姨好')
4 如果:成绩>=90,那么:优秀
如果成绩>=80且<90,那么:良好
如果成绩>=70且<80,那么:普通
其他情况:很差
score=input('>>: ') score=int(score) if score >= 90: print('优秀') elif score >= 80: print('良好') elif score >= 70: print('普通') else: print('很差')
练习:
name=input('请输入用户名字:') password=input('请输入密码:') if name == 'egon' and password == '123': print('egon login success') else: print('用户名或密码错误')
1、条件循环:while,语法如下
while 条件: # 循环体 # 如果条件为真,那么循环体则执行,执行完毕后再次循环,重新判断条件。。。 # 如果条件为假,那么循环体不执行,循环终止
打印0-10
count=0
while count<=10
print(count)
count+=1
2、死循环
import time num=0 while True: print('count',num) time.sleep(1) num+=1
3、循环嵌套与tag
4、break与continue
#break用于退出本层循环
#continue用于退出本次循环,继续下一次循环
5、while+else
#与其它语言else 一般只与if 搭配不同,在Python 中还有个while ...else 语句,while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话, 就会执行else后面的语句