Python基础

print输出
print(char, end='\n') #end表示以\n结尾,就是换行

变量


# 变量类型:字符串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 # 地板除,只保留整数部分
number7 = 10 % 3 # 取余,取模,取余数的意思
number6 = 2**3 # 取N次方的,2的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)

# 逻辑运算符  and  or
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\nduhao  tengfei"
print(stu.split(",")) # 用,来分割字符串,分割结果放到一个list里面
print(stu.split())   # 不传值默认用空格和\n分割
# 连接字符串
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")

 

 
posted @ 2021-04-22 21:52  zhengpei  阅读(84)  评论(0编辑  收藏  举报