2.1、变量
字符串必须加引号,int类型的不需要
数据类型: 字符串-str 整数-int 小数-float
name = '小黑'
age = 18
score = 95.5
word1=" let's go "
word2 = ' hi , this is "Mike" '
word3 =''' let's go, hi , this is "Mike" '''
字符串的格式化
%s 什么数据类型都可以
%d 跟的必须是数字,如果跟了小数,只取整数部分
%f 跟的必须是数字,可以跟小数,一定保留6位小数
–%.2f 保留2个小数(有四舍五入),位数不够补0
age4 = 110.11499
print('年龄是%.2f'%age4)
import datetime
date = datetime.datetime.today()
name = input('请输入你的名字:')
#欢迎xxx登录,今天的日期是
print('欢迎%s登录,今天的日期是%s'%(name,date))
运算符 + - * / // % **
age = 5
sum =age+1
number = age-1
number2 = age*3
number3 = age / 4 #保留整数和小数
number4 = age // 4 #地板除,只保留整数部分
number5 = age % 4 #取余数
number6 = 2**3 #取次方 2的3次方
print(number6)
类型转换
input接收到的始终都是str类型要使用其他类型需要转换
int和str不能相加,需要类型转换
age = 10
age2 = input('请输入你的年龄:')
age3 = age +int(age2)
print('age的类型是:',type(age))
print('age2的类型是:',type(age2))
print('新的年龄是:%s'%age3)
比较运算符 == > < >= <= !=
username = 'admin'
password = '123456'
username2 = 'xiaohei'
u = input('请输入用户名:')
p = input('请输入密码:')
if u == username or username2 and p == password:
print('登录成功,欢迎登录%s'%u)
else:
print('账号/密码错误')
布尔类型 true和false
print('男' in '男女')
print( 3 > 2 )
print( len('男')==1 and '男'in'男女')
循环
while循环,必须有计数器
continu-如果在循环里面遇到continu,那么结束本次循环,执行下一层循环
break-循环里面遇到break,不管还剩余多少次循环,立刻结束
count = 0
while count<10:
print('创建文件夹,名字是%s'%count)
count += 1
while-else
只有循环正常结束,才会执行else里面的内容
被break和continu结束的都不执行
count = 0
while count<10:
print('创建文件夹,名字是%s'%count)
count += 1
else:
print('循环正常结束')
while循环小练习:猜数字,1-100之间,有7次机会,猜对了游戏结束,猜错了提示大了还是小了,并且提示还剩 几次机会
import random
count = 7
theNum = random.randint(1, 100)
while count > 0 :
inputNum = int(input('请输入您猜测的数字'))
count -= 1
if inputNum == theNum:
print('猜对啦,数字是%s' %theNum)
break
elif inputNum > theNum:
print('猜错了,您猜测的数字过大','次数还剩%s次'%count)
continue
else:
print('猜错了,您猜测的数字过小','次数还剩%s次'%count)
else:
print('7次机会已经用完了')
for循环
for后面就是条件,不需要计数器
import random
theNum = random.randint(1, 100)
for i in range(7):
inputNum = int(input('请输入您猜测的数字'))
if inputNum == theNum:
print('猜对啦,数字是%s' %theNum)
break
elif inputNum > theNum:
print('猜错了,您猜测的数字过大')
continue
else:
print('猜错了,您猜测的数字过小')
列表/数组-list
列表/数组的下标、索引、角标,取出元素
students = '易烊千玺,小北,李必'
stus = ['易烊千玺','小北','李必']
# 下标、角标、索引
print(stus[0])
查找元素的下标
stus = ['易烊千玺','小北','李必']
index = stus.index('小北')
列表/数组的增删改查
stus = ['易烊千玺','小北','李必','小北']
#新增
stus.append('candy') #添加到最后方
stus.append('wendy') #添加到最后方
stus.insert(1,'胡歌') #指定下标添加
#修改 先找到数据的index再进行修改
index = stus.index('candy') #找到下标
stus[index] = '邓金娇' #修改数据
#删除
stus.pop() # 不传index,默认删除最后一个元素
stus.pop(3) # 删除指定下标的元素
stus.remove('小北') #列表里有多个小北,一次只能删除第一个
del stus[2] #指定下标删除
#查询
stus[0]
列表/数组的一些其他方法
stus = ['易烊千玺','小北','李必','小北']
nums=[22,33,76,15,9]
stus.count('小北') #查找元素出现得次数
stus.sort() #排序,默认是升序
stus.sort(reverse=True) #降序
stus.reverse() #反转列表
stus.clear() #清空列表
stus.extend(nums) #把列表nums加到列表stus里面
list的小练习
写一个录入学生信息的程序,接收学生信息,判断学生是否存在,存在的话提示已存在,继续添加;如果不存在,加入list,继续添加;如果输入quit就退出
stu_list=['candy','wendy','zyy']
while True :
studentName = input('请输入学生信息:')
if studentName == 'quit':
print('程序退出,现在的学生名单是%s' % stu_list)
break
elif stu_list.count(studentName) == 0:
stu_list.append(studentName)
print('添加成功,现在的学生名单是%s' % stu_list)
continue
else:
print('该学生已在,请重新输入,现在的名单是%s' % stu_list)
continue
多维数组/列表
l = [1,2,3,4,5,6,[7,8,9,10,11]] #二维数组
l1 = [1,2,3,4,5,6,[7,8,9,10,11,['haha','lalala']]]
name = l1[-1][-1][0]
print(name)
# --->haha
元组tuple
元组不能修改,所以无增删改
查、取值的时候和list一样
t = (3,1,2,3,2,3,4)
t[1] #元组的下标为1的元素
t.count('3') #查找一共有几个3
t.index('2') #查找第一个2的下标
字典
字典的元素是键值对存在的
stu_info = {
'name': 'candy',
'age': 19,
'sex': '女',
'weight': 100,
'addr': '北京'
}
字典的增删改查
新增
如果key已经存在,setdefault不会修改已有的值
stu_info['money'] = 30000
stu_info.setdefault('car', 'bmw')
删除
stu_info.pop('weight')
del stu_info['age']
stu_info.popitem() #随机删除一个键值对
修改
stu_info['age'] = 18
查询
日常用stu_info.get会比较好,再判断一下是否为空
stu_info['name']
stu_info['name1'] # 取到一个不存在的值,会报错
stu_info.get('addr')
stu_info.get('addr1') # 取到一个不存在的值,会返回None
stu_info
字典的其他用法
d = {'phone': 133}
stu_info.clear()
stu_info.update(d) #合并两个字典
stu_info.keys() #返回字典里的所有key 是个list
stu_info.values() #返回字典里的所有value 是个list
stu_info.items() #返回字典里的所有value 是个list套元组
取字典键和值
# 字典取值,直接循环字典,每次取的是字典的key,根据key取value
for k in stu_info:
print(k,stu_info[k])
#不如上面的效率高,因为要先转成列表
for k,v in stu_info.items():
print(k,v)
字典嵌套
info = {
'candy':{
'age':18,
'addr':'beijing',
'cars':['bmw','ben-z','audi']
},
'yy':{
'house':{
'bj':['海淀区','昌平区','朝阳区','西城区'],
'sh':['静安区','闸北区']
},
'money':5000
}}
info['candy']['cars'].append('tsl')
info['yy']['house']['bj'].remove('海淀区')
info['yy']['money'] = info['yy']['money']+5000
print(info)