一.变量
1.什么是变量
变量是用来存储数据的。
2.变量赋值
在 python 中,每个变量在使用前都必须赋值,变量赋值以后,该变量才会被创建。
变量名 = 值
注意:Python 中的变量赋值不需要类型声明。为了保证代码格式, = 的左右两边该各保留一个空格。
3.变量的命名规则
1)变量名要见名知意,不能瞎写(python的确可以用中文当变量名,但是没有这么干的)
2)使用 数字+大小写字母+下划线命名(第一个字符不能是数字;大小写敏感,需要区分大小写;一般在python中,下划线开头有特殊意义,尽量不要以下划线开头)
3)字符串可以用单引号、双引号、三引号表示(小数和整数可以不加引号,加了引号都是字符串),python中定义变量的时候字符串都用引号括起来,单引号和双引号没区别。
注意:如果字符串里面有单引号,那么外面就用双引号(或里面有双引号,外面就用单引号)。如果里面既有单引号又有双引号,那么外面就用三引号。
(三引号也可以多行注释代码;单行注释,使用#)
4)不能与关键字重名
注意:关键字就是在python内部已经使用的标识符,关键字具有特殊的功能和含义,开发者不允许定义和关键字相同的名字的标示符。通过以下命令可以查看python中的关键字,import关键字可以导入一个工具包,在python中不同的工具包,提供有不同的工具。
以下关键字不能声明为变量:['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
4.变量命名习惯
如果变量名需要由两个或多个单词组成,可以按照以下方式命名(python中常用):单词与单词之间使用_下划线连接,例如:first_name
驼峰命名法(其他语言常用的命名法):当变量名是由两个或多个单词组成,还可以利用驼峰命令法来命名 。
小驼峰命名法:第一个单词以小写字母开始,后续单词的首字母大写 ,例如:firstName lastName。
大驼峰命名法:每一个单词的首字母都采用大写字母,例如:FirstName LastName。
建议:驼峰命名法, 大驼峰给类起名,小驼峰给类以外的变量命名。
二、条件判断(if)
python中条件判断使用 if...else来判断,多分支的话使用 if...elif...else ,也就是如果怎样,否则就怎样,格式如下:
age = int(input('输入年龄:'))
if age <= 6:
print('儿童')
elif 6 < age < 18:
print('青少年')
elif 18 <= age <= 40:
print('青年人')
elif 40 < age <= 60:
print('中年人')
else:
print('老年人')
注意:
如果有“:”第二行必须缩进
判断符号:> < >= <= !=
and和、or或者的使用:
in 和 not in 的使用:
小练习(条件判断):分数在0-100之间,90<=优秀<=100,80<=良好<90,60<=及格>80,0<不及格<60,分数如果不在0-100之间,提示输入分数不合
score = input('请输入分数:')
score = int(score)
if 90 <= score <= 100:
print('优秀')
elif 80 <= score < 90:
print('良好')
elif 60 <= score < 80:
print('及格')
elif 60 < score < 0:
print('不及格')
else:
print('提示输入分数不合法')
类型错误问题,如下图:
input 接收的都是string 类型,需要类型转换
解决方案: score = int(score)#类型转换
三、循环(for 和 while)
python中有两种循环,while和for,两种循环的区别是,while循环之前,先判断一次,如果满足条件的话,再循环,for循环的时候必须有一个可迭代的对象,才能循环。
1.while循环
注意:count+=1 等价于count=count+1 ;count-=1 等价于count=count-1 ;count*=1 等价于count=count*1 ;count/=1 等价于count=count/1
break和continue的使用(在循环里用):
break:立即结束循环。适用场景:输密码成功登录,结束循环。
continue:结束本次循环,继续进行下一次循环。
while和else搭配使用:
2.for循环
注意:for循环不能写死循环,while可以写死循环
for和else搭配使用:
小练习(循环):猜数字游戏:最多7次机会,1-100之间,如果猜对了提示“恭喜你猜对了,游戏结束”;如果猜错了,提示玩家猜大了或猜小了
#分析:
# 1、随机产生1个数字
# 2、循环7次
# 3、input输入猜的数字
# 4、判断猜测结果,大于、等于、还是小于
# 5、游戏次数超限,游戏结束
方法一:
import random
number = random.randint(1,100)
print(number)
for i in range (7):
guess = input('请输入你猜的数字:')
guess = int(guess)
if guess == number:
print('恭喜你猜对了,结果是',guess)
break
elif guess > number:
print('猜大了')
else:
print('猜小了')
else:
print('游戏次数超限,游戏结束')
方法二:
import random
number = random.randint(1,100)
count = 0
while count < 7:
count += 1
guess = input('请输入你猜的数字:')
guess = int(guess)
if guess == number:
print('恭喜你猜对了,结果是',guess)
break
elif guess > number:
print('猜大了')
else:
print('猜小了')
else:
print('游戏次数超限,游戏结束')
四、数据类型
1、字符串类型string
1)字符串格式化:
方法一:字符串连接(最简单,不推荐使用),用“+”连接,直接把输出的字符串和变量连接起来。
下面例子在内存里面存好5个变量(name,time,欢迎,登录今天的时间,s1)。
方法二:占位符连接字符串(推荐使用),占位符有常用的有三种,%s、%d和%f。%s后面的值是一个字符串;%d是后面的值必须是一个整数;%f 后面是小数,保留2位小数:.2f
下图例子在内存里存3个变量(name,time,s2)
方法三:使用{ }和fromat连接字符串
注意:参数多,使用占位符不容易一一对应,容易弄错顺序,如果使用{}方式可以不需要按照顺序来,比较直观
2、整数类型int
3、浮点类型float
4、列表list
通过下标访问列表中的元素,下标从0开始计数,比如说一个列表有个5元素,那么它第一个元素下标是0,第二个是1(字符串也有下标,和列表一样 )
列表也叫数组,列表里面可以再套列表,一个里面套一个列表,叫二维数组;一个里面套一个列表,里面的列表再套一个列表,这个叫三维数组,套几层就是几维,定义格式如下:
多维数组取值:
1)对列表的操作:增删改查
2)其他方法
小练习:欢迎xxx登录,今天的时间是xxx。登录错误次数过多,最多登录3次
# 分析
# 1、循环3次
# 2、输入账号和密码
# 3、判断账号和密码是否存在 in
# 4、根据账号取到账号的下标,然后取到密码
# 5、判断账号和密码是否正确
import datetime
today = datetime.datetime.today()
usernames = ['小黑','小贝','小白']
passwords = ['123456','1111','1']
for i in range(3):
username = input('输入username:')
if usernames.count(username) > 0:
index = usernames.index(username)
password = passwords[index]
pwd = input('输入password:')
if password == pwd:
print('欢迎【%s】登录,今天的时间是%s'%(username,today))
break
else:
print('密码错误')
else:
print('账号不存在')
else:
print('登录错误次数超过3次')
5、字典
字典具有极快的查找速度;字典是一种key-value的数据类型,比如说要存每个人的信息,那么每个人的编号就是key,value就是每个人的信息,这样的话,一个字典就能存所有人的信息了。字典的定义使用{},每个值用“,”隔开,key和value使用“:”分隔。字典是无序的,因为它没有下标,用key来当索引,所以是无序的。字典的key必须是唯一的,因为它是通过key来进行索引的,所以key不能重复。
1)字典的增删改查
2)其他方法