一、Python简介
Python在1989诞生,由Guido(龟叔)开发。Python是一种面向对象、解释型的计算机语言,它的特点是语法简洁、优雅、明确,尽量写容易看明白的代码,尽量写少的代码。许多大型网站都是用Python开发的,例如YouTube、Instagram、豆瓣等;
二、编译型语言和解释型语言
编译型语言:把写好的程序翻译成计算机语言后执行,就是所谓的一次编译到处运行,比如c、c++就是编译型语言,这样的语言特点是运行速度快,但要事先把程序编译好才可以。
解释型语言:程序运行时候通过一个解释器,把代码一句一句的翻译成计算机语言后运行,即写好代码之后直接就能运行。如Python、shell、ruby、javal等等都是解释型语言,它的执行速度并没有编译型语言快。
三、Python基础
命名规范,避免低级错误:
1.命名最好是英文字符、下划线_、数字组成,不要有特殊字符
2.项目名称、文件包名、模块名称等都应是英文开头,不能纯数字
3.脚本的名称不要与系统的模块或第三发模块重复
4.函数、类、方法、参数的名称不能跟系统有的名称重复
5.类名必须以大写字母开头,除了类名其他地方都以小写开头
最好遵循驼峰命名法和下划线法,如:apiDemo,api_demo
1、变量
1.1变量的定义规则:
1)变量名必须是大小写英文、数字和_
的组合,且不能用数字开头
2)变量名要见名知意,不要用拼音会很low
3)Python中的关键字不能作为变量名
1.2变量赋值
在Python中,等号=是赋值语句。可把任意数据类型赋值给变量,同一个变量也可以反复赋值,而且可以是不同类型的变量
Python中变量赋值不需要指定数据类型,直接定义即可
1 #定义变量就是为了在后面还要用到它的值 2 #编程都是和内存打交道的。 3 #见名知意 4 5 age = 10 #int 类型 6 name ='小白' #字符串类型 string 7 socre = 89.98 #浮点型 float 8 9 print(type(age)) #type 看变量是什么类型的 10 print(type(name)) 11 print(type(socre))
理解变量在内存中的表示:Python变量里面存的是内存地址,即这个值存在内存里面的哪个地方。如上,Python解释器做了两件事:
1)在内存中创建了一个'小白'的字符串
2)在内存中创建了一个名为name的变量,并把它指向'小白'
也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据,如下:
1 a = '小白' 2 b = a 3 a = '小黑' 4 print('b =',b) 5 print('a =',a)
结果:
结果分析:
1)执行a = '小白'
,解释器创建了字符串'小白'
和变量a,并把a指向'小白'
:
2)执行b = a
,解释器创建了变量b,并把b指向a指向的字符串'小白'
:
3)执行a = '小黑'
,解释器创建了字符串'小黑',并把a的指向改为'小黑'
,但b并没有更改:
所以,最后结果为b = 小白,a = 小黑
2、python中的单引号、双引号和三引号
python中定义变量时字符串都用引号括起来,单引号和双引号没有区别。
若字符串里面有单引号的话,外面就用双引号;里面有双引号的话,外面就用单引号。
如果既有单又有双,那么用三引号,三引号也可以多行注释代码,单行注释,使用#,如下:
1 msg = "I'm Lucy" #有单引号,所以外面用双引号 2 info = 'Python comments ues "#".' ##有双引号,所以外面用单引号 3 new_msg = '''I'm Lucy, I love "Python".''' # 有双引号和双引号,所以外面用三引号 4 5 ''' 6 上面的代码是说明单引号、双引号和三引号的 7 这一段是注释,说明三引号也有多行注释的功能 8 '''
3、输入输出
print():输出,可以打印字符串、整数或计算结果;
1 print('hello!') # 打印字符串 2 print(300) # 打印整数 3 print(100+200) # 打印计算结果,300
input():获取用户的输入,接收的是一个字符串返回是string类型;
name = input("please input your name: ") print(name)
注:input接收输入时是可以看到输入的值的,若不想让别人看到输入的密码之类的值就需要用到标准库getpass。导入后直接使用getpass.getpass方法就可以在输入的时候不显示输入内容;(标准库:不需要再去安装,装完python就有的库)
import getpass # 导入模块 pwd = getpass.getpass('enter your password: ') print(pwd)
四、条件循环
Python中条件判断使用if else来判断,多分支的话使用if elif ... else;判读条件成立时,就执行该条件后面的语句
# input接收输入的值,全部都是string类型 age = int(input("请输入你的年龄:")) # 使用int()进行类型转化 if age<18: print('未成年人') else: print('成年人')
# 多条件判断 score = input('请输入你的成绩:') score = int(score) if score>=90: print('优秀') elif score>=75 and score<90 : print('良好') elif score>=60 and score<75: print('及格') else: print('不及格')
If语句的判断条件可用>、<、==(等于)、>=、<=(小于等于)、!=来表示其关系。若个条件一起进行判断,则需使用逻辑运算符and(且)、or(或者)、not(非、取反)
五、循环
循环即是在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。
Python中有两种循环:while和for。区别:
while循环之前先判断一次,如果满足条件的话,再循环;
for循环必须有一个可迭代的对象才能循环,比如说得有一个数组。Python中循环的是一个可迭代对象中的元素,你这个对象中有多少个元素就循环多少次,比如说一个数组list,list = ['a','b','c'],在Python里面就不需要直接循环就取的是这个list里面的值。
注:for和while都可以对应一个else,表示正常循环完后程序去做什么
1、while循环
1 # while 循环 2 count = 0 # count计数器,while循环必须有一个计数器 3 while count < 10: # 如果count小于10的话,就执行下面的代码,如果小于10就执行else之后的语句 4 if count == 5: 5 print('count值为5') 6 break # 如果count等于5的话,就结束循环 7 count += 1 # 每次循环完,count的值加一,如果count值没有变化就成了死循环 8 else: 9 print('程序结束!') 10 # 这个else可以不写,意思是如果条件不满足了去干嘛
练习:随机生成1-100的整数,输入数字进行猜测随机生成的数字,每次提示猜大了还是小了限制只能猜3次
1 import random 2 num = random.randint(1,101) # 随机生成1-100的整数 3 print(num) 4 count = 0 5 while count < 3: #限制只能输入3次 6 guess = int(input('请输入你要猜测的数字: ')) 7 if guess == num: 8 print('恭喜你猜对了,数字是:',num) 9 break #猜对时,立马结束游戏 10 elif guess < num: 11 print('猜小了') 12 else: 13 print('猜大了') 14 count += 1 15 else: 16 print('sorry,你的次数已经用完了!')
2、for循环
for循环可以用来遍历某个对象(遍历:就是把循环中的第一个元素到最后一个元素依次访问一次)
1 for i in range(101): 2 print(i) #依次输出1-100 3 #循环体
执行上面的代码,会依次打印出1-100:
1 names = ['Bob','Lucy','Lily'] 2 for i in names: 3 print(i)
执行这段代码会依次打印出names中的每一个元素:
Bob
Lucy
Lily
3、break和continue
循环中两个重要的关键字:continue和break
continue:跳出本次循环,继续进行下一次循环;
break:停止循环,在continue和break下面的代码都是不执行的;
1 # continue跳出本次循环 2 names = ['Bob','Lucy','Lily'] 3 for i in names: 4 if i == 'Bob': 5 continue 6 print(i)
执行结果:
Lucy
Lily
1 # break退出循环 2 names = ['Bob','Lucy','Lily'] 3 for i in names: 4 if i == 'Lucy': 5 break 6 print(i)
执行结果:只打印出Bob,然后就停止循环
Bob
六、格式化输出
我们经常会输出类似'xxx您好,欢迎登录!'
之类的字符串,而xxx的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式。
三种格式化输出方式:
1、用“+”连接
直接把输出的字符串和变量连接起来就可以了,不推荐使用第一种会在内存中开辟多个内存空间;
2、用占位符,常用的有三种:%s、%d和%f
%s是后面的值是一个字符串,%d是后面的值必须是一个整数,%f后面是小数默认保留6位,只能保留小数位数格式:%.小数位数f;
3、使用{}和fromat方法
官方推荐是使用format方法,后面两种是只开辟一块内存空间;
1 name = input('请输入的你姓名:') 2 print('名字是:'+name) #使用+号连接 3 print('名字是:%s'%name) #使用占位符 4 print('名字是{your_name}'.format(your_name=name)) #使用format格式化输出,{}中的变量名自己定义 5 6 # 多个格式化内容的 7 age = 18 8 print('我的名字是%s,年龄是%d岁.'%(name,age))