Python数据类型
数据类型 字符串(string) 整数(int) 小数(float)
例:
name="小黑",age=18,score=98.5
字符串中包含’可用”括起来 同样的 如果是包含” 可用’括起来 如果同时包含’”可用’’’括起来
例:
words="let's go"
words2='you are very "high"'
words3='''let's go,you are very "high"'''
words4="""xxxx"""
input
name=input("请输入你的名字:") #input接收到的都是string类型 py2 raw_input()
注释
#、ctrl +? 注释、批量注释''' '''
快速复制 ctrl +d
字符串格式化
import datetime today=datetime.datetime.today() words5="欢迎登陆,"+name+",今天的日期是"+str(today) words6="欢迎登陆,%s,今天的日期是%s"%(name,today)
print(words5)
#变量
age=0 age2=int(input()) age3=age + age2
print("age2的类型",type(age2)) #type是看变量的数据类型
# %s %d %f
print("新的年龄是 %s" %age3)
print("新的年龄是 %.5f" %age3)
字符串格式化:
%s 什么类型都可以
%d 只能是数值型的,它不保留小数,只取整数,如果写了字符串会报错
%f 只能是数值型的,保留小数,如果写了字符串会报错
#运算符
age=5 sum=age+1 number=age-1 number2=age*3 number4=age/4 #正常 在python2里面它就是地板除 如果要变成正常的除法 那么除数或者被除数要有一个是小数类型 number5=age//4 #地板除 number6=2**3 #取N次方的 number7=10 % 3 #取余 取模
布尔类型
布尔 True False #真 假
print("男" in "男女")
print(3<2)
print(len("男")==1 and "男" in "男女")
and
True True -->true
Flase False -->false
True False -->false
or
True True -->true
Flase False -->false
True False -->true
判断
if xxx:
xxx
else:
xxx
username="admin" password="123456" username2="xiaohei" u=input("用户名:") p=input("密码:") if u==username: print("你是admin用户") elif u==username2: print("你是普通用户") else: print("用户名不正确") if u==username or u==username2 and p == password: print("欢迎%s登录"%u) else: print("用户名或者密码错误") if u==username or u==username2: if p==password: print("登录成功") else: print("密码错误") else: print("账号不存在")
sex=input() print(len(sex)) #取长度 sex_str='男女' if sex in sex_str and len(sex)==1: print('合法') else: print('非法') if sex not in sex_str: print('非法') elif len(sex)!=1: print('非法') else: print('合法')
#比较运算符
==、 >、 <、>=、<=、!=、并且 或 and or、in 在xxx里面、not in不在里面
循环
循环 迭代 遍历
for while
循环:
continue #如果在循环里面遇到continue,那么结束本次循环,立马进行下一次循环
break #如果在循环里面遇到break,循环立即结束,不管还有多少次没有循环
while 循环,使用循环的话需要定义一个计数器,用来控制循环次数
对应的else,如果循环是正常结束的,那么会执行else里面的代码,如果循环是被break结束的,不会执行
while,计数器
count=0 while count <10: print("创建文件夹,文件夹名字是%s" %count) count=count+1 break else: #如果循环正常结束的 那么会执行else里面的代码 print("循环结束")
import random number=random.randint(1,100) count=0 while count<7: guess=int(input()) count+=1 if guess==number: print("pass") break elif guess<number: print("small") continue elif guess>number: print("big") continue
+= -= /= *=
names=["aa","bb","cc","dd"] for name in names: if name=="aa": continue print("给发%s500钱"%name) import random number=random.randint(1,100) count=7 while count>0: guess=int(input()) count-=1 if guess==number: print("恭喜猜对了,数字式%s" %number) break elif guess<number: print("small,剩余%s次"%count) continue elif guess>number: print("big,剩余%s次"%count) continue else: print("次数用完了")
for循环
for i in range(7):
print(i)
else:
print("循环结束")
import random number=random.randint(1,100) for i in range(7): guess=int(input()) if guess==number: print("pass") break elif guess<number: print("small") continue elif guess>number: print("big") continue
元祖
# tuple 不能修改
t=(1,2,3) print(t[0]) for i in t: print(i) info=("118.23.3.40","root","123456","3306") print(info.count("root")) print(info.index("root"))
数组
#str int float bool list
students="aa,bb,cc"
#数组 列表
stus=["cc","bb","cc","cc"]
0 1 2
下标 角标 索引
取元素
print(stus[2])#从0开始
print(stus[-1])
新增
stus.append("dd") stus.append("ee") stus.insert(0,"ff")
#修改
stus[2]="python" stu=111 if stu in stus: index=stus.index("stu") #如果查找不存在的元素 会报错 print(index) stus[index]="gg" print(stus)
#删除
stus.pop() #删除末尾的元素 stus.pop(0)#删除指定下标的 stus.remove("cc")#删除指定的元素 只删除第一个 del stus[0] print(stus)
stus.count("aa") #查找元素出现的次数
sort方法没有返回值
stus.sort() 排序 默认是升序 stus.sort(reverse=True) 排序 默认是升序 它只是排序 print(stus)
stus.reverse() #反转list,会改变原来list的值
print(stus)
stus.clear() #清空list
print(stus)
nums=[1,2,3]
stus.extend(nums) #合并列表
print(stus)
多维数组
l=['aa','bb','cc','dd',[1,2,3]] #2维数组 l1=['aa','bb','cc','dd',[1,2,[4,5]]] #3维数组 print(l[-1][1]) print(l1[-1][-1][0])
List循环
import os
l=['aa','bb','cc','dd']
# 麻烦的方法 计算下标去取值
count=0 while count<len(l): name=l[count] os.mkdir(name) count=count+1
for index in range(len(l)): print(l[index])
一般用底下这种
for name in l: #执行循环list 就是取list里面的每个元素 print(name) os.mkdir(name)
List练习
students=[] while True: name=input("请输入学生名称:") if name=="quit": print("程序退出 现在的学生名单是",students) break elif name not in students: students.append(name) print("添加成功 现在的学生名单是",students) continue else: print("学生已存在,请重新输入") continue
字典
#字典
student_info={
"name":"aa",
"age":11,
"high":180,
"dsd":"ddd"
}
aaa={"aa":1,"bb":2,"cc":3}
增加
student_info["money"]=30000 student_info.setdefault("name","bmw")
如果是已经存在的key setdefault不会修改已有的值
修改
student_info["name"]=30000
取值
print(student_info["name1"]) print(student_info.get("name1"))
# 取不存在的值 []方法报错 get方法返回None
删除
student_info.pop("name1") del student_info["age"] aaa.popitem() #随机删除一个元素 一般删除末尾对
#其他的方法
student_info.clear() #清空
d={"aa":1,"bb":2} student_info.update(d) #合并两个字典
print(student_info.values())
print(student_info.keys())
print(student_info.items())
print("name" in student_info.keys())
print("name" in student_info) #直接用in判断的话 就判断这个key是否存在
student_info.has_key("name") python2里面有 python3没有
for key in student_info: #直接循环字典,每次取的是字典的key,比较高效的方式
value=student_info[key]
value2=student_info.get(key)
print("%s -> %s" %(key,value))
print("%s -> %s" % (key, value2))
print(student_info.items())
for key,value in student_info.items():
print("%s=>%s"%(key,value))
字典嵌套
info = { 'lgy':{ 'age':18, 'addr':'beijing', 'cars':['bmw','ben-z','audi'] }, 'fd':{ 'house':{ 'bj':['海淀区','昌平区','朝阳区','西城区'], 'sh':['静安区','闸北区'] }, 'money':5000 } }
info["lay"]["cars"].append("tesla") index=info["fd"]["house"]["bj"].index("海淀区") info["fd"]["house"]["bj"].pop(index) info["fd"]["house"]["bj"].remove("海淀区") info["fd"]["money"]+=5000000 print(info)