print输出
print(char, end=' ') #end表示以 结尾,就是换行
变量
# 变量类型:字符串str 整数int 小数float
# Python不需要在变量前加int,string,float
# 一个引号,两个引号,3个引号都可以表示字符串
1 name = "小黑" 2 age = 18 3 score = 98.5 4 words = " let's go " 5 words2 = 'you are very "high" ' 6 wrods3 = ''' let's go, you are very "high" ''' 7 wrods4 = """ xxxx """
# 用 = 赋值
1 couter =100 # f赋值整型变量 2 miles=1000.00 # 赋值浮点型变量 3 name="John" # 赋值字符串
# 多个变量赋值
1 a=b=c=1 2 print(a) 3 a,b,c=1,2.0,"name" 4 print(a,b,c)
# 字符串格式化
# %s 变量转为字符串
# %d 变量转为整数
# %f 变量转为小数
1 today = datetime.datetime.today() 2 words5 = "欢迎登陆," + name + ",今天的日期是" + str(today) 3 words6 = "欢迎登陆,%s,今天的日期是%s" % (name,today) 4 print(words5) 5 print(words6)
#变量交换
a=1
b=2
1.引入第三方变量
# c=a # a=b # b=c
2.第二种方法
# a,b=b,a
3.第三种方法
a=a+b b=a-b a=a-b
运算符
# python运算符
# 算数运算符 = - * / % **(幂次方) //(取整除)
age = 5 sum = age + 1 number = age - 1 number2 = age * 3 number4 = age / 4 # 正常,在python2里面它就是地板除,如果你要变成正常的除法,那么除数或者被除数要有一个是小数类型 number5 = age // 4 # 地板除,只保留整数部分 number6 = 2**3 # 取N次方的,2的3次方 number7 = 10 % 3 # 取余,取模,取余数的意思
# 比较运算符 == != > < >= <=
print(a != b) print(a >= b)
# 赋值运算符 = += -= *= /= %= **= //=
a %= b
print(a)
# 位运算符 & | ^ ~
# &:按位与运算符:参与运算的2个值,都为1,则结果为1,否则为0
# |: 按位或运算符:参与运算的只要有1个1,则结果为1,否则为0
# ^: 按位异或运算符:当两对应的二进位相异时,结果为1
# ~:按位取反运算符:对数据的每个二进制位取反
# <<:左移位运算符:运算数的个二进制位全部左移若干位
# >>:右移位运算符:运算数的个二进制位全部右移若干位
c=a<<2
print(c)
d=a>>2
print(d)
# 逻辑运算符
1 print( "男" in "男女" ) 2 print( 3 < 2) 3 print( len("男")==1 and "男" in "男女")
# and
# True True -->true
# Flase False -->false
# True False -->fasle
#or
# True True -->true
# Flase False -->false
# True False -->true
数据类型
# 数据类型:数字、字符串、列表、元祖、字典
# 数字类型分:int、long(3.x里用int代替)、float、complex(复数)
# 字符串类型
1 s='abcdefg' 2 # python字符串的取值:从左到右索引默认从0开始;从右到左索引默认从-1开始 3 a=s[0:4] # 获取从左到右第一个到第五个的值 4 b=s[-3:-1] # 获取从右到左第一个到第三个的值 5 print(a,b) 6 print(s[1]) # 打印第2个字符 7 print(s[1:]+'test') # 打印第2个字符后面的所有值 8 print(s[0:4:3]) # 打印从第1个字符开始到第5个字符之间,长度为3
# 列表【list】是Python中应用最多的数据类型
1 print("-------列表------") 2 list=['runoob',786,2.23,'john',70.3] 3 tinylist=[123,'john'] 4 print(list) 5 print (list[0:3]) #输出list列表中第1个到第4个的元素 6 print(list[4:]+tinylist)
# 列表是有序的对象集合,字典是无序的对象集合,字典当中的元素是通过键来存取的,而不是通过偏移
# 字典是用{}来标识,由key和它对应的值value组成
1 print("-------字典------") 2 dict={} 3 dict['one']="This is one" 4 dict[2]="This is two" 5 tinydict={'name':'zhengpei','age':'28','data':'1992'} 6 print(dict) 7 print(tinylist) 8 print(tinydict['name']) 9 print(tinydict.keys()) # 打印tinydict里面所有的keys值 10 print(tinydict.values()) # 打印tinydict里面所有的values 值
# tuple 元祖
# 元祖用()表示
1 list1 = [1, 2, 3] 2 tuple1 = (1, 2, 3) 3 print(t[0])
# python数据类型置换
1 a=int("123") 2 print(a)
字符串
s="我的"
# 找元素,找不到会报错
print(s.index("b"))
# 找元素,找b元素,指定从位置1到位置4找
s.index("b",1,4)
# 找元素,找不到返回-1
print(s.find("e"))
# 去空格,去掉左右两边空格和换行符,中间的去不掉
print(s.strip())
# 去空格,去掉左右两边指定的字符,中间的去不掉
print(s.strip(".jpg"))
# 去掉左边空格
print(s.lstrip())
# 去掉右边空格
print(s.rstrip())
# 全部变大写
print(s.upper())
# 全部变小写
print(s.lower())
# 统计字符出现的次数
print(s.count("a"))
# 判断字符串是否为整数
print(s.isdigit())
# 判断字符串是否全是字母和数字,如果有特殊字符,返回false
print(s.isalnum())
# 判断字符串是否都是字母和汉字,如果有其他的,返回false
print(s.isalpha())
# 是否以132开头
print(s.startswith("132"))
# 是否以.jpg结尾
print(s.endswith(".jpg?@"))
# 补0
num="1" print(num.zfill(5)) #将字符串num补成长度为5位的,num前面补4个0
# 替换字符串中的内容
str1=" zhengpei , 你 好 " print(str1.replace("zhengpei", "duhao")) # 把zhengpei替换成duhao,不改变原str1的值,返回了一个新的字符串 print(str1.replace(" ", "")) # 将字符串中的所有空格都改为空(去掉所有空格) print(str1.replace(" ", "",2)) # 将字符串中的空格替换掉2次
# 分割字符串,可以用于将字符串转为list
stu="zhengpei duhao tengfei"
print(stu.split(",")) # 用,来分割字符串,分割结果放到一个list里面 print(stu.split()) # 不传值默认用空格和 分割
# 连接字符串
stu_list=['zhengpei', 'duhao', 'tengfei'] print(",".join(stu_list)) # 将stu_list中的每个元素用,链接 name="pei" print("-".join(name))
# 字符串里的每个字母串的首字母都改大写
print(s.title())
# 判断首字母是否是大写
print(s.istitle())
# 字符串里出现的第一个字母改大写
print(s.capitalize())
# 判断字符串是否都是空格
print(s.isspace()) # 字符串是空格和空的字符串是不一样的
# 把字符串放到中间
print(s.center(50, "*")) # 字符串里的每个字符的首字母改大写
# 判断字符串是否都是大写
print(s.isupper())
# 判断字符串是否都是小写
print(s.islower())
import string
print(string.digits)#输出所有的整数
print(string.ascii_lowercase)#输出所有的小写字母
print(string.ascii_uppercase)#输出所有的大写字母
print(string.ascii_letters)#输出所有的大写字母和小写字母
print(string.punctuation)#输出所有的特殊符号
# 字符串格式化方法
# 第一种 用+号
date="2020-1-20" print("登录的用户是:"+s+"日期是:"+date)
# 第二种 %s 、%d、%f
print("登录的用户是:%s,日期是:%s" %(s,date))
# 第三种 fomat 和fromat_map
msg="欢迎{name}登录,今天的日期是{date}" print(msg.format(name="zhengpei",date="2020-1-20")) msg1="欢迎{name}登录,今天的日期是{date}".format(name="zhengpei",date="2020-1-20") print(msg1) msg2="欢迎{}登录,今天的日期是{}".format("zhengpei","2020-1-20") print(msg2)
# format_map和format的区别是:map传的是字典,format传的是字符串
msg3="欢迎{name}登录,今天的日期是{date}".format_map({"name":"zhengpei","date":"2020-1-20"}) print(msg3)
# 第二种和第三种区别
# insert into user values (%s,%s,%s,%s,%s)%(name,pwd,addr,telephone,email) # insert into user values ({name},{pwd},{addr}).format(name="xxx",pwd="xxx",addr="xxx")
# 第四种 python3.6版本以上才有 f"{str}"
print("您的账号是:{s}")
数组(列表)
1 stus = [ "曾若天","吴康飞","刘慧杰" ]
# 取元素
1 print(stus[0]) 2 print(stus[-1]) #取倒数第一个
# 新增
1 stus.append("candy") # 在列表最后进行增加 2 stus.append("李雪松") 3 stus.insert(0,"赵莹莹") # 在指定位置新增 4 stus.insert(2,"李兴培")
# 修改
stus[2] = "python"
# 删除
1 stus.pop() # 删除末尾的元素 2 stus.pop(0) # 删除指定下标的 3 stus.remove("candy") # 删除指定的元素,如果有多个只删除第一个 4 del stus[0] # 删除第一个元素
# 查找元素出现的次数
print( stus.count("candy") )
# 排序
1 nums = [82,23,235,236,121,1,0,3,25,26] 2 nums.sort() # 排序,默认是升序,会改变列表的值 3 nums.sort(reverse=True) # 降序排序 4 print(nums)
# 反转list 清空list list1加入list2
1 nums.reverse() # 反转list,会改变原来list的值 2 stus.clear() # 清空list 3 stus.extend(nums) # 把另外一个list里面的元素都加入到一个list里面
# 循环
方法一
for index in range(len(l)):
print(l[index])
方法二
1 # 直接循环list,就是取list里面的每个元素 2 for name in l: 3 print(name)
多维数组
1 list1 = [1,2,3,4,5,6,[7,8,9,10,11]] # 2维数组 2 list2 = [1,2,3,4,5,6, 3 [ 7,8,9,10,11,["zengruotian",'abc'] 4 ] 5 ] # 3维数组 6 print(list1[-1][3]) # 输出最后一个元素里面的第3个元素 7 print(list2[-1][-1][0]) # 输出最后一个元素里面的最后一个元素的第1个
stdents = [
["曾若天","18","180","150","北京"],
["liuhuijie","18","180","150","北京"],
["candy","18","180","150","北京"],
["lixuesong","18","180","150","北京"],
]
# 取值
print(stdents[0][0]) # 输出第一个元素里面的第一个元素
# 增加
1 stdents.append(123) # 在最后面增加元素123 2 stdents.insert(1,111) # 在index为1的位置增加元素111 3 stdents.append([1,2,3]) # 在最后面增加list[1,2,3] 4 stdents.insert(0,["xixixi","hahaha"]) # 在最前面增加list["xixixi","hahaha"]
# 删除
1 stdents.pop() # 删除最后一个元素 2 stdents.pop(0) # 删除第一个元素 3 stdents.remove(["liuhuijie","18","180","150","北京"]) 4 stdents[0].remove("18") # 删除第一个元素里面是18的元素 5 print(stdents)
#修改
1 stdents[0] = 123 # 修改第一个元素为123 2 stdents[2][0]="zhengpei" # 修改第2个元素的第1个元素为zhengpei 3 print(stdents)
# 遍历多维数组
# 直接循环list,就是取list里面的每个元素
1 for lis in stdents: 2 print(lis)
切片
# 切片是list范围取值的一种方式,切片输出的结果是包括前面的参数不包含后面参数的
li1=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
li1=list(range(0,10)) # 生成从0-9的list,py2.0中range()直接就是一个list,3.0中需要手动转成list
print(li1) print(li1[0:10]) # 取li1坐标从0-9的元素 print(li1[:10]) # 取坐标10前面的所有元素,不包括10的 print(li1[1:]) # 取坐标1后面的所有元素,包括1的
# li1[开始坐标:结束坐标:步数]
# 步数如果是正数表示从做往右取,步数是负数表示从右往左取
print(li1[0:10:2]) #取坐标0-9的元素,步数为2,隔2个取一次 print(li1[-1:-5:-1]) #取坐标-1到-5的元素,隔一个取一次,-1表示从右往左取 print(li1[::-1]) # 可以将list反转,相当于li1.reverse()
# 切片也适用于字符串
s="abcdefg" print(s[0:3])
元祖
# tuple 代表元祖
# 元祖用()表示
# Python的元组与列表类似,不同之处在于元组的元素不能修改。如果不希望内容被修改,就用元祖
# 元组使用小括号,列表使用方括号。
# 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
1 list1 = [1,2,3] 2 t = (1,2,3) 3 print(t[0]) 4 for i in t: 5 print(i) 6 info = ("118.23.3.40", "root", "123456", "3306") 7 print(info.count("root")) 8 print(info.index("root")) 9 info = ("118.23.3.40", "root1", "123456", "3306") 10 print(info)
字典
# 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中
# 字典中的key不能重复命名
student_info = {
"addr": "武汉",
"name":"郑佩",
"age":28,
"high":154,
"tizhong":105,
}
# 增
student_info["local"]="wuhan" # 如果值不存在,则新增,存在则修改 student_info.setdefault("car1","honda") # 如果值不存在,则新增,存在则不会修改已有的值
# 修改
student_info["age"] = 19
# 取值
# 两种方式区别是:直接用中括号取不存在的值会保持抛异常,如果用get取不存在的值,会返回KeyError
print(student_info["name"]) print(student_info["age"]) print(student_info.get("addr")) print(student_info.get("tizhong"))
# 删除
student_info.pop("car1")
del student_info["local"] #和上面的删除没有区别
student_info.popitem() #删除最后一个元素
# 其他的方法
student_info.clear() #清空 d = {"phone":110} student_info.update(d) #合并两个字典 print(student_info.values()) # 输出字典的所有values值 print(student_info.keys()) # 输出字典的所有key值 print(student_info.items()) # 输出字典 print("name" in student_info.keys()) # "name"这个值是否在字典的keys中 print("name" in student_info) # 和上面那行一样,不加keys,默认就是判断keys print(18 in student_info.values()) # 18是否在字典的values中 student_info.has_key("name")#判断是否存在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)) for key,value in student_info.items(): #简单,但是运行效率没有上面那种好 print("%s %s" %(key,value)) for key in student_info: print(key,student_info[key])
字典嵌套
info = {
'lgy':{
'age':18,
'addr':'beijing',
'cars':['bmw','ben-z','audi']
},
'fd':{
'house':{
'bj':['海淀区','昌平区','朝阳区','西城区'],
'sh':['静安区','闸北区']
},
'money':5000
}
}
# 增加
info["lgy"]["cars"].append("tesla")
#方丹 海淀区房卖了,卖了500w
index = info["fd"]["house"]["bj"].index("海淀区") info["fd"]["house"]["bj"].pop(index) info["fd"]["house"]["bj"].remove("海淀区") info["fd"]["money"] = info["fd"]["money"]+500 info["fd"]["money"]+=500 print(info)
判断
if xxx:
xxx
elif xxx:
xxx
else:
xxxx
循环
count = 0 while count < 7: count = count + 1 else: #当while正常结束时,会执行else中的内容 print("xxx")
for i in range(7): print(i) else: #当for循环正常结束时,会执行else中的内容 pirnt("xxx")