Python(持续更新)

Python基础语法

基本语法

注释

单行注释,以#开头

#这是第一个注释
print("Hello World")	#这是第二个注释

多行注释:""“注释的内容”""

"""
这是一个多行注释
print("这是一个多行注释")
"""
行与缩进

Python最具特色的就是用缩进表示代码块

语句换行

Python通常是一行写完一条语句,但如果语句很长,我们需要换行,这时可以使用圆括号来实现
在这里插入图片描述
需要注意的是,在{},[]或()中的语句,不需要使用

变量和数据类型

变量

超市购物
现实生活中,大家去超市买东西的时候,往往都需要一个菜篮子,用来进行存储物品,等到所有的物品都购买完成后,在收银台进行结账即可。
Python中的变量用来存储数据,变量可以理解为去超市购物的菜篮子,其类型和值在赋值的那—刻被初始化。

num1=110
num2=120
result=num1+num2

注:num1和num2变量就好比一个小菜篮子,它们分别存储的数据是110和120。result变量存储的数据是num1和num2这两个“菜篮子”中的数据累计之和

变量的类型(变量用来储存数据)
变量的数据类型(以后补全详解)
1.数字类型(整型,复型,浮点型)
2.布尔类型
3.列表类型
4.元组类型
5.字符串类型
6.字典类型

标识符和关键字

标识符

定义:若希望在程序中表示一些事物,需要开发人员自定义一些符号和名称,这些符号和名称叫做标识符。

命名规则
1.标示符由字母、下划线和数字组成,且数字不能开头
2.Python中的标识符是区分大小写的
3.python中的标示符不能使用关键字
对于标识符的命名有以下建议:
1.见名知意
2.不建意使用骆峰式
关键字

定义:关键字是指具有特殊功能的标识符

help()	#进入帮助系统
keywords		#査看关键字列表
return		#査看return
quit			#退出

在这里插入图片描述

简单数值类型

整型(int,用于表示整数)

Python的整型可以表示的范围是有限的,它和系统的最大整型一致,例如,32位上的整型是32位,可以表示的数的围是-231-231-1。在64位机器上的整型是64位的,可以表示的数的范围是-263-263-1。

进制
二进制以0b,0B开头,十进制–>二进制 bin(20)
八进制以0开头,十进制–>八进制 oct(20)
十六进制以0x,0X开头,十进制–>十六进制 hex(20)
浮点型

浮点型(Float)用于表示实数。
浮点型字面值可以用十进制或科学计数法表示。

Python的浮点型遵循的是IEEE754双精度标准,每个浮点数占8个字节,能表示的数的范围是-1.8308~1.8308

<实数>E或者e<整数>

注:E或e表示基是10,后面的整数表示指数,指数的正负使用+或-表示。
实例:

print(1.2e5)		#输出120000.0
print(-1.8e308)		#输出-int,超出可以表示的范围
print(1.8e308)		#输出int,超出可以表示的范围
复数类型
用于表示数学中的复数
复数由两部分抅成,实数部分和虚数部分(real+imageJ)
复数的实数部分和虚数部分都是浮点型
num_1=2+3.1j    	#定义复数
print(type(num_1))  #打印类型
print(num_1.real)   #打印实部
print(num_1.imag)   #打印虚部
数据类型转换

应用场景:有可能我们会碰到对采集到数据类型转换

num1=1.2            #定义浮点型
print(int(num1))    #打印,转换为整型
num2=4              #定义整数
print(float(num2))  #打印,转换为浮点型
print(complex(3,4)) #打印,#转换为复数

运算符

算术运算符
运算符含义说明
+加:两个对象相加
-减:得到负数或另一个数减一个数
*乘:两个数相乘或是返回一个被重复若干次的字符串
/除:x除y
%取余数
**幂运算
//取整除
num1=27
num2=3
num3=4
print(num1%num3)    # %取余数
print(num2**num3)   # **幂运算
print(num1//num3)   # //取整除
复合赋值运算符

在这里插入图片描述

a=20
b=10
c=0
#加
c+=a
print("1--c的值为:",c)
#乘
c*=a
print("2--c的值为:",c)
# 除
c/=a
print("3--c的值为:",c)
#取余
c=2
c%=a
print("4--c的值为:",c)
#取幂
c=3
a=2
c**=a
print("5--c的值为:",c)
#取整除
c//=a
print("6--c的值为:",c)
比较运算符

在这里插入图片描述

a=20
b=10
c=0
if a==b:
   print("1--a等于b")
else:
    print("1--a不等于b")

if a!=b:
    print("2--a不等于b")
else:
    print("2--a等于b")

if a<b:
    print("4--a小于b")
else:
    print("4--a大于等于b")

if a>b:
    print("5--a大于b")
else:
    print("5--a小于等于b")

a=5
b=20

if a <= b:
    print("6--a小于等于b")
else:
    print("6--a大于等于b")

if a >= b:
    print("7--a大于等于b")
else:
    print("7--a小于b")
逻辑运算符
符号表达形式功能
andx and y布尔“与”,如果x为False,x and y 返回False,否则它返回y的计算值
orx or y布尔“或”,如果x为True,它返回True,否则它返回y的计算值
notnot x布尔“非”,如果x为True,返回False,如果x为False, 它返回True
a=10
b=20
if a and b:
    print("1--变量 a 和 b 都为 true")
else:
    print("1--变量 a 和 b 有一个不为 true")
if a or b:
    print("2--变量 a 和 b 都为 true 或其中一个为 true")
else:
    print("2--变量 a 和 b 都不为 true")
a=0
if a and b:
    print("3--变量 a 和 b 都为 true")
else:
    print("3--变量 a 和 b 有一个不为 true")
if a or b:
    print("4--变量 a 和 b 都为 true 或其中一个为 true")
else:
    print("4--变量 a 和 b 都不为 true")
if not(a and b):
    print("5--变量 a 和 b 都为 false 或其中一个为 false")
else:
    print("5--变量 a 和 b 都为 true")
成员运算符
符号功能
in如果在指定的序列中找到值则返回True
not in如果在指定的序列中没有找到值则返回True
a=10
b=20
list_demo=[1,2,3,4,5]
if a in list_demo:
    print("1--变量 a 在给定的列表 list_demo 中")
else:
    print("1--变量 a 不在给定的列表 list_demo 中")

if b not in list_demo:
    print("2--变量 a 不在给定的列表 list_demo 中")
else:
    print("1--变量 a 在给定的列表 list_demo 中")
a=2
if a in list_demo:
    print("3--变量 a 在给定的列表 list_demo 中")
else:
    print("3--变量 a 不在给定的列表 list_demo 中")
位运算符``
名称符号含义
安位左移<<按位左移指的是二进位全部左移n位,高位丢弃,低补0
安位右移>>按位右移指的是将二进位全部右移n位,移出的位丢弃,移进的位补符号位。按位右移的符号位保持不变
安位与&位与指的是参与运算的两个数各对应的二进位进行“与”的操作。只有对应的两个二进位都是1时,结果位就为1,否则结果位为0
安位或|按位或指的是参与运算的两个数各对应的二进位进行“或”的操作。只要对应的两个二进位有一个为1时,结果位就为1
安位异或~按位异或就是将参与运算的两个数对应的二进制位进行比较,如果一个位为1,另一个位为0,则结果为就为1,否则,结果位为0。
num1=10
print(bin(num1<<2))
print(bin(num1>>2))
num2=9
print(bin(num1&num2))
print(bin(num1|num2))
print(bin(num1^num2))
print(bin(~num2))
运算符优先级

在这里插入图片描述

a=20
b=10
c=15
d=5
e=0
e=(a+b)*c/d
print("(a+b)*c/d 运算结果为:",e)
e=((a+b)*c)/d
print("((a+b)*c)/d 运算结果为:",e)
e=(a+b)*(c/d)
print("e=(a+b)*(c/d) 运算结果为:",e)
e=a+(b*c)/d
print("e=a+(b*c)/d 运算结果为:",e)

判断语句

if语句

if语句是最简单的条件判断语句,它可以控制程序执行的流程。
格式:

if 判断条件 :
	满足条件时要做的事1
	满足条件时要做的事2
	满足条件时要做的事3
	。。。。。
	满足条件时要做的事n
age=34
print("刘伟的年龄",age)
if age>=18:
    print("刘伟已经成年")
print("刘伟未成年")
if-else语句
if 判断条件 :
	满足条件时要做的事1
	满足条件时要做的事2
	满足条件时要做的事3
	。。。。。
	满足条件时要做的事n
else:
	不满足条件时要做的事1
	不满足条件时要做的事2
	不满足条件时要做的事3
	。。。。。
	不满足条件时要做的事n
age=34
print("刘伟的年龄",age)
if age>=18:
    print("刘伟已经成年")
else:
    print("刘伟未成年")
ticket=1
if ticket==1:
    print("有车票,可以上火车")
    print("终于可以见到ta美滋")
else:
    print("没有车票,可以上火车")
    print("亲爱的,那就下次见了,一票难求QaQ")
if-elif
if 判断条件1 :
	满足条件时要做的事1
elif 判断条件2:
	满足条件时要做的事2
elif 判断条件3:
	满足条件时要做的事3

过程
1.当满足判断条件1时,执行满足条件1时要做的
事情,然后整个if结束;
如果不满足判断条件1,那么判断是都满足条件
2.如果满足判断条件2,就执行满足条件2时要
做的事情,然后整个if结束
当不满足判断条件1和判断条件2,如果满足判
断条件3,则执行满足判断条件3时要做的事情,
然后整个if结束。

score=77
if score>=90 and score<=100:
    print("本次考式,等级为A")
elif score>=80 and score<90:
    print("本次考式,等级为B")
elif score>=70 and score<80:
    print("本次考式,等级为C")
elif score>=60 and score<70:
    print("本次考式,等级为D")
elif score>=0 and score<=60:
    print("本次考式,等级为E")
if嵌套

if嵌套指的是在if-else语句里面包含if或者if-else
(1)语法

if 条件1
    条件1满足执行语句1
    。。。。。
    if条件2
        条件2满足执行语句2
        。。。。。
ticket = 1
knife_lenght=9
if ticket==1:
    print("有车票可以进")
    if knife_lenght<10:
        print("通过安检")
        print("可以见到她美滋")
    else:
        print("没有通过安检")
        print("刀子的长度超过了等处理")
else:
    print("没有车票,不能进站")
    print("亲爱的下次再见QaQ")

循环语句

while循环语法格式
while 条件表达式:
    条件满足执行语句
var=int(input("请输入数字用于程序判定"))
while var==1:
    number=int(input("请输入一个整数:"))
    print("请输入一个数字是",number)
print("Good bye!")
for 循环

格式

#使用序列

for i in [0,1,2]:
    print(i)
#使用range函数
for i in range(2,8):
    print(i)

#循环案例
i=0     #100之间的数
sum_result=0    #接受和
while i<=100:
    if i%2==0:  #判断是否为偶数
        sum_result+=i   #累加
    i+=1
print("100之间的偶数和为{}".format(sum_result))
i=1
while i<6:
    j=0
    while j<i:
        print("*",end=" ")
        j +=1
    print("\n")
    i+=1

九九乘法表

i=1
while i<=9:
    j=1
    while j<=i:
        print("%d*%d=%-2d"%(i,j,i*j),end=" ")
        j +=1
    print("\n")
    i +=1
break语句

break的作用:跳出当前循环

i=0
for i in range(5):
    i+=1
    print("-------")
    print(i)

break

i=0
for i in range(5):
    i+=1
    print("-------")
    if i==3:
        break
    print(i)
continue语句

continue作用是用来结束本次循环,继续下次循环。

continue

i=0
for i in range(5):
    i+=1
    print("-------")
    if i==3:
        continue
    print(i)

break与continue的区别,break是结束的整个循环,continue结束本次循环

pass语句

他是为了保持语句完整性,用作占位符

#pass
for letter in "Runoob":
    if letter=="o":
        pass
        print("执行pass语句")
    print("当前字母:",letter)

print("Good bye!")
#没有pass
for letter in "Runoob":
    if letter=="o":
        print("执行pass语句")
    print("当前字母:",letter)

print("Good bye!")
else语句

else语句可和循环语句结合使用,在循环结束后执行

count=0
while count<5:
    print(count,"is less than 5")
    count+=1
else:
    print(count,"is less than 5")

字符串

什么是字符串

概念:字符串是一种表示文本数据类型
表达形式:单引,双引,三引号引起来

转义字符
print('lets\'s go! go!')
格式化字符串

%s通过str()字符串转来格式化
%d有符号十进制整数
%f浮点实数

name="小明"
print("我的姓名%s"%name)
输入input

username=input(“请输入姓名:”)
print(username)

切片

格式

name="abcdef"
print(name[0:3])
print(name[3:5])
print(name[1:-1])
print(name[2:])
print(name[::-2])
find函数

含意:检测字符串是否包含子字符串

格式:
str.find(sub,start,end)
sub:待查找的子字符串
start:查找的子字符串开姢的位置
end:查找的子字符串结束的位置
str="oeopi oeioui oeiopei opeiop computer"
index=str.find("computer")
print(index)

注:找不到子字符串,则返回-1

index函数

含以:检测字符串是否包含子字符串

格式:
str.find(sub,start,end)
sub:待查找的子字符串
start:查找的子字符串开姢的位置
end:查找的子字符串结束的位置
str="oeopi oeioui oeiopei opeiop computer"
index=str.index("oeioui1",0,20)
print(index)
count函数

含以:统计词出现的个数

格式:
str.count(sub,start=0,end=len(string))
sub:待查找的子字符串
start:查找的子字符串开姢的位置
end:查找的子字符串结束的位置
string_example="hello world itheima and itheimaAPP"
result=string_example.count("itheima")
print(result)
replace函数

含意:将旧字符串换为新字符串

格式:
str.replace(old,newf[,max])
old:将被替换的旧子字符串
new:替换的新子字符串
max:替换的个数
string_example="hello world itheima and itheimaAPP"
new_string=string_example.replace("itheima","ITHEIMA",1)
print(new_string)
splite函数

含意:通过指定分符对字符串进行分割,切片

格式:
str.split(str=" ",num=string.count(str))
str–分割符。默认所有空字符串
num–切割的次数

返回结果为一个列表

string_example="this is string example....wow!!!"
new_string_1=string_example.split(" ")
new_string_2=string_example.split("i")  
new_string_3=string_example.split("i",2)#2-----切二次
print(new_string_1)
print(new_string_2)
print(new_string_3)
capitalize函数title函数

capitalize:第一个首字母大写
title:全部大写

string_example="this is string example....wow!!!"
print(string_example.title())
print(string_example.capitalize())
startswith函数
含意:检査字符串是否以制定子字符串开头
str.startswith(str,beg=0,end=len(string))
sub:检査的字符串
beg:可选参数用于设置字符串检测的起始位置
end:可选参数用于设置字符串检测的结束位置
string_example="this is string example....wow!!!"
print(string_example.startswith("this"))
print(string_example.startswith("iei"))
print(string_example.startswith("is",5))
endswith函数

含意:字符串或者元素

格式:
str.endswith(suffix[,start[,end]])
sub:检査的字符串
start:可选参数用于设置字符串检测的起始位置
end:可选参数用于设置字符串检测的结束位置
string_example="this is string example....wow!!!"
print(string_example.endswith("wow"))
print(string_example.endswith("!!!"))
print(string_example.endswith("iei"))
print(string_example.endswith("is",6))
upper函数

含意:将小写字母转大写

string_example="this is string example....wow!!!"
print(string_example.upper())
ljust和rjust函数

ljust:含意:左对齐,使用空格填充至指定长度
rjust:含意:右对齐,使用空格填充至指定长度

格式:
str.ljust(width[,fillchar])
width长度
fillchar默认是空格
rjust一样
string_example="this is string example....wow!!!"
r_new_string=string_example.rjust(50)
print(r_new_string)
l_new_string=string_example.ljust(50)
print(l_new_string)
center函数

含意:返回一个居中字符串

格式:
str.center(width[,fillchar])
width长度
fillchar默认是空格
string_example="this is string example....wow!!!"
new_string=string_example.center(50)
print(new_string)
lstrip和rstrip函数

lstrip:含意:截掉字符串左辺的空格或指定字符串
rstrip:含意:截掉字符串右辺的空格或指定字符串

格式:
str.lstrip([chars])
chars —指定删除
rstrip同上
#lstrip
string_example="    this is string example....wow!!!"
string_example_1="            this is string example....wow!!!"
new_string=string_example.lstrip()
new_string_1=string_example.lstrip()
print(new_string)
print(new_string_1)
#rstrip
string_example_2="this is string example....wow!!!          "
new_string=string_example_2.rstrip()
print(new_string)
strip函数

含意:截掉字符串左右两辺的空格或指定字符串(两辺截)

格式:
str.strip([chars])
chars
string_example_2="      this is string example....wow!!!          "
new_string=string_example_2.strip()
print(new_string)
*

含意:重复输出

print('t'*6)
print('一切皆有可能\n'*6)
+

含意:字符串拼接

print('一切皆'+'有可能')

列表,元组,字典

列表

列表的功能:列表是Python中的一个数据结构(是计算机存储,组织数据的方式),他可以存储不同的数据类型

list_example=["hello world",1,"Python"]
print(list_example[0])
print(list_example[1])
print(list_example[2])
使用for循环遍历列表中的元素
namelist=["hello world",1,"Python"]
for i in namelist:
    print(i)
使用for循环遍历列表中的元素
namelist=["hello world",1,"Python"]
num=0
while num<len(namelist):
    print(namelist[num])
    num+=1
列表的对元素操作

在列表中增加元素
向列表中添加元素append添加到末尾

namelist=["hello world",1,"Python"]
namelist.append(input("添加的语言:"))
print("添加后的列表元素为:")
for name in namelist:
    print(name)

向列表中添加另一个列表entend

namelist=["hello world",1,"Python"]
name_list=["Java","MySQL"]
#append与entend对比
name_list.append(name_list)
print(name_list)
name_list.extend(name_list)
print(name_list)

向列表指定位置index添加元素insert

name_list=["hello world",1,"Python"]
name_list.insert(1,"JavaWeb")
print(name_list)

在列表中査找元素
in(存在),如果存在为true,否则false
not in(不存在),如果不存在那结果为true,否则为false

name_list=["hello world",1,"Python"]
name=input("请输入要查找的名字:")
if name in name_list:#注意类型
    print("在列表中")
else :
    print("不在列表中")

在列表中修改元素
使用下标修改列表中的元素

name_list=["hello world",1,"Python"]
name_list[0]="Java"
print(name_list)

删除列表中的元素
del:根据下标删除

name_list=["hello world",1,"Python"]
print("----删除之前----")
for name in name_list:
    print(name)
del name_list[1]
print("----删除之后----")
for name in name_list:
    print(name)

pop:删除最后一个元素

print("----删除之前----")
for name in name_list:
    print(name)
name_list.pop()
print("----删除之后----")
for name in name_list:
    print(name)

remove:根据元素的值进行删除

name_list=["hello world",1,"Python"]
print("----删除之前----")
for name in name_list:
    print(name)
name_list.remove('hello world')
print("----删除之后----")
for name in name_list:
    print(name)
元组

含意:与列表基本相同,但不能修改元素

tuple_1=("JavaWeb","Python",123)
tuple_2=("MySQL","html")
tuple_3=tuple_1+tuple_2
print(tuple_3)
for循环遍历元组
tuples=("MySQL","Java","Python",123,"JavaWed","Linux","hadoop")
for tuple in tuples:
    print(tuple)
元组的内置含数
tuples=("MySQL","Java","Python",123,"JavaWed","Linux","hadoop")
#len(元组)计算元组元素的个数
print(len(tuples))
#max(元组)返回元组的最大值,min(元组)返回元组的最大值
tuple_1=("5","4","1")
print(max(tuple_1))
print(min(tuple_1))
#tuple(列表),将列表转化为元组
list_demo=["Zookeeper","Hive","sqoop"]
print(tuple(list_demo))
字典

字典是一种存储数据的容器

格式:

info={'key1':'value1','key2':'value2'......}
字典操作

字典访问

使用键访问字典

info={"name":"班长","id":"1","sex":"f"}
print(info["name"])
print(info["id"])

get方法

获的字典中元素数据值提取

info={"name":"班长","id":"1","sex":"f","address":"北京"}
age=info.get("age")
print(age)  #"age"键不存在,所以阿哥W为None
print(type(info))
name=info.get("name")
print(name)
age=info.get("age",18)  #info中不存在“age”,返回默认值18
print(age)

字典的修改

格式:字典[键]=修改后的数据值

info={"name":"班长","id":"1","sex":"f","address":"北京"}
newId=input("请输入新的学号:")
info["id"]=int(newId)
print("修改之后的id为:%d"%info["id"])

字典中元素的添加

格式:字典[键]=数据值

字典中不存在键这个键时,是添加,如果存在是修改

info={"name":"班长","sex":"f","address":"北京"}
newId=input("请输入新的学号:")
print("添加之前字典:{}".format(info))
info["id"]=int(newId)
print("修改之后的id为:%d"%info["id"])
print("添加之后字典:{}".format(info))

删除字典

del:用于删除字;删除后,字典完全不存在了,无法根据字典键访问字典的值
clear:只是清空字典中的数据,字典还存在,只不过没有元素

info={"name":"班长","id":"1","sex":"f","address":"北京"}
print("清空之前的字典{}".format(info["name"]))
del info["name"]
print("清空之前的字典{}".format(info))
print("清空之后的字典{}".format(info["name"]))
info={"name":"班长","id":"1","sex":"f","address":"北京"}

print("清空之前的字典{}".format(info))
info.clear()
print("清空之后的字典{}".format(info))

计算字典中键值对得个数

len()

info={"name":"班长","id":"1","sex":"f","address":"北京"}

print("len计算字典的个数{}".format(len(info)))

获取视图函数
1.分类
keys():方法返回在字典中的所有可用的键的列表
values():方法返回在字典中的所有可用的值的列表
items():方法返回在字典中的(键,值)元组对 `3·的列表

info={"name":"班长","id":"1","sex":"f","address":"北京"}

print("keys提取字典键{}".format(info.keys()))
print("values提取字典键{}".format(info.values()))
print("items提取字典键{}".format(info.items()))

遍历字典

1.遍历字典中的key

格式

for 变量名 in 字典名.keys():
	循环体
dict_demo={"1":"MySQL","2":"Java","3":"mongodb"}
for dicts in dict_demo.keys():
    print(dicts)

2.遍历字典中的value

格式

for 变量名 in 字典名.values():
	循环体
dict_demo={"1":"MySQL","2":"Java","3":"mongodb"}
for dicts in dict_demo.values():
    print(dicts)

3.遍历字典中的元素

格式

for 变量名 in 字典名.items():
	循环体
dict_demo={"1":"MySQL","2":"Java","3":"mongodb"}
for dicts in dict_demo.items():
    print(dicts)

4.遍历字典中的键值对

格式

for 变量名1, 变量名2.....变量名n  in 字典名.items():
	循环体
dict_demo={"1":"MySQL","2":"Java","3":"mongodb"}
for dict1,dict2 in dict_demo.items():
    print("key={},value={}".format(dict1,dict2))

函数

什是函数:

函数是组织好的,可重复使用的,用来实现单一或相关联功能的代码块,他能提高代码的利用率

Python定义函数:

格式

def 函数名(参数列表):
	函数体

函数调用

格式

def 函数名(参数列表):
	函数体

函数名(参数列表)
def printInfo():
    print("-----------------------")
    print("      Python           ")
    print("-----------------------")

printInfo()

函数参数

我们在定以函数的时候让函接收数据,这就是函数参数

def printInfo(a,b):
    c=a+b
    print(c)

printInfo(10,11)
def test(a,b,*args):
    print(a)
    print(b)
    print(args)
test(11,22)
test(11,22,33,44,55,66,77,88,99)

def test(a,b,*args,**kwargs):
    print(a)
    print(b)
    print(args)
    print(kwargs)
test(11,22)
test(11,22,33,44,55,66,77,88,99)

def test(a,b,*args,**kwargs):
    print(a)
    print(b)
    print(args)
    print(kwargs)
test(11,22)
test(11,22,33,44,55,66,77,m=88,n=99)
函数分类

无参无返回值类型

格式:
def 函数名:
	函数过程
def def_main():
    print("-"*20)
    print("这是无参无返回值类型")
    print("-"*20)
def_main()

无参有返回值类型
格式:

def 函数名:
	函数过程
	return 返回值
def def_main():
    return "python"
str=def_main()
print(str)

有参无返回值类型
格式:

def 函数名(num1,num2):
	函数过程

def def_main():
    print("JavaWeb")
def_main()

有参有返回值类型

格式:

def 函数名(num1,num2):
	函数过程
	return 返回值
num=int(input("请输入一个数字:"))
def def_main(num):
    count=0
    for i in range(0,num,1):
        count +=i+1
    return count
count_out=def_main(num)
print("1~{}的和为{}".format(num,count_out))

名片管理(未完善)

def display_manu():
    print("-"*20)
    print("1.添加")
    print("2.修改")
    print("3.删除")
    print("4.査询")
    print("5.获得所有名片")
    print("6.退出")
    print("-"*20)

def choice_use():
    num=int(input("请输入:"))
    return num

def add_use(list_name):
    name=input("请输入姓名:")
    list_name.append(name)
    return list_name

def remove_use(list_name):
    name=input("请输入要删除的姓名")
    list_name.remove(name)
    return list_name

def replca_use(list_name):
    pass    

def select_use(list_name):
    print(list_name[-1])


if __name__ == '__main__':
    num=0
    list_name = []
    while num<1:
        display_manu()
        count=choice_use()
        if count==1:
            add_use(list_name)
        elif count==2:
            replca_use(list_name)
        elif count==3:
            remove_use(list_name)
        elif count==4:
            select_use(list_name)
        elif count==5:
            pass
        elif count==6:
            pass
        elif count==7:
            pass
        else:
            print("请重新输入:")
        num=int(input("0再次査询,数入其它终止:"))

函数嵌套
函数运行过程中调用另一个函数

作用域

num = 10
print(num)
for i in range(10):
    num=i
    print(num)
递归函数

一个函数在内部可以调用其它函数,但是,如果一个函数在内部不调用其它函数,而是自己本身的话,这个函数就是递归函数

阶乘案例:

def func(count):
    if count==1:
        result=1
    else:
        result=func(count-1)*count
    return result
num=int(input("请输入一个整数:"))
print("%d! ="%num,func(num))
匿名函数

定意
没有名字的函数
格式
如果要声明函数,则需要使用lambda关键字,匿名函数的声明
lambda [arg1 [,arg2,…argn]]:expression
arg:参数列表
expression:表达式
案例1

students=[
    {"name":"list","age":18},
    {"name":"dict","age":17},
    {"name":"tuple","age":14},
    {"name":"set","age":19},
]
students.sort(key=lambda x:x["name"])
print("name 排序",students)

students.sort(key=lambda x:x["age"])
print("sort 排序",students)

案例2

add = lambda a,b:a+b
print("运行结果:",add(10,20))
print("运行结果:",add(20,20))

案例3

def func(a,b,operation):
    print("a=%d"%a)
    print("b=%d"%b)
    print("result=",operation(a,b))

func(11,22,lambda x,y:x+y)
print("-"*20)
func(11,22,lambda x,y:x-y)
日期时间函数
时间函数

在python中有,以下方式:

  • 时间戳
  • 格式化的时间字符串
  • 时间元组
时间戳

时间戳表示的是从1970年1月1日00:00:00开始安秒计算的偏移量

import time; #导入摸块
ticks=time.time()
print("当前时间戳:{}".format(ticks))

格式化的时间字符串

  1. 例如:,time.localtime()
  2. 我们可以使用time模块的strftime方式格式化
  3. 在strftime方法配合使用格式化符号,P124 6.1
import time; #导入摸块
print(+++++++time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))
print(time.strftime("%y-%m-%d %H:%M:%S",time.localtime()))

时间元组
在数据处理的过程中,需要处理或者显示时间集合
日历含数
calendar.calendar(year,w=2,1=1,c=6)

import random

list_1=[]
for i in range(0,10,2):
    list_1.append(random.randrange(10,100,2))

print(list_1)
print(random.choice(list_1))
print(random.choice("python"))
print(random.choice(["List","Dict","Tuple","Set"]))
print(random.choice(("List","Dict","Tuple","Set")))
def outer(start=0):
    count=[start]
    def inner():
        count[0] +=1
        return count[0]
    return inner()
quoter=outer(5)
print(quoter)
def func(funcation):
    def inner():
        return funcation()
    return inner

@func
def test():
    return "大数据1901"

print(test())
def func_arg(args):
    def func(funcation_name):
        def func_in():
            print("--日志-args=%s"%args)
            funcation_name()
        return func_in
    return func

@func_arg("haha")
def test():
    print("----test---")

test()
func=lambda x:x+2
result=map(func,[1,2,3,4,5])
print(list(result))
file=open("a.txt")
words=file.read(4)
print("读取数据是",words)

position=file.tell()
print("当前数据的位置",position)
words=file.read(8)
print("读取数据是",words)

position = file.tell()
print("当前数据的位置",position)
words=file.read(3)
print("读取数据是",words)

position = file.tell()
print("当前数据的位置",position)
file.close()

文件的删除
os中的remove(文件名)

import os
os.remove("data/test.txt")


**文件的夹创建 **
在当前 文件夹创建默认的文件mkdir(“文件名”)

import os

os.mkdir("./data/bigdata1901")
import os

# os.mkdir("张三")
path='张三'

old_path=os.getcwd()
print("当前文件夹是:%s"%old_path)
os.chdir(path)
new_path=os.getcwd()
print("修改后的文件夹是:%s"%new_path)
import os

def display_manu():
    print("学生信息管理系统V1.0")
    print("-"*20)
    print("1.添加")
    print("2.删除")
    print("3.修改")
    print("4.显示学生信息")
    print("5.保存数据")
    print("6.退出系统")
    print("-"*20)

list_stu=[]

def add_info():
    name=input("请输入姓名:")
    sex=input("请输入性别(男/女):")
    phone=input("请输入手机号码:")
    stu_info={}
    stu_info['name']=name
    stu_info['sex']=sex
    stu_info['phone']=phone
    list_stu.append(stu_info)

def remove_info():
    num=int(input("请输入删除的序号"))
    del list_stu[num-1]

def alter_info():
    num=int(input("请输入俢改的序号"))-1
    name=input("请输入姓名:")
    sex=input("请输入性别(男/女):")
    phone=input("请输入手机号码:")
    list_stu[num]["name"]=name
    list_stu[num]["sex"]=sex
    list_stu[num]["phone"]=phone

def print_info():
    print("="*20)
    print("学生信息:")
    print("=*20")
    print("序号   姓名  性别  手机号码")
    stu_id=1
    for i in list_stu:
        print("%d   %s  %s  %s"%(stu_id,i['name'],i['sex'],i['phone']))
        stu_id +=1

def save_to_data():
    file=open("backup.data",'w')
    file.write(str(list_stu))
    file.close()

def recover_data():
    global list_stu
    # 判断文件是否存在
    if os.path.exists('student.data'):
        f = open('backup.data','w+', encoding='utf-8')
        # "[{'name': 'isaac', 'age': 18, 'gender': 'm'}]"
        buf = f.read()
        list_stu = eval(buf)


if __name__ == '__main__':
    recover_data()
    while True:
        print(display_manu())
        key=int(input("请输入数字:"))
        if key==1:
            add_info()
        if key==2:
            remove_info()
        if key==3:
            alter_info()
        if key==4:
            print_info()
        if key==5:
            save_to_data()
        if key==6:
            quit=input("是否确认?(Yes or No)")
            if quit=='Yes':
                break
            else:
                print('输入有误,重新输入')

异常

# print(stu_id)

# print(1/0)

# demo_list=[]
# demo_list[0]

# dict_demo={"1":"2"}
# dict_demo[1]

# f=open("demo")

# class Car(object):
#     pass
# car=Car()
# car.color="block"
# print(car.color)
# print(car.age)

for i in range(1,10,2)
    print(i)
class inputException(Exception):
    #自定以异常类
    def __init__(self,length,atleast):
        self.length=length
        self.atleast=atleast
try:
    text=input("请输入密码:")
    if len(text)<3:
        raise inputException(len(text),3)
except EOFError:
    print("你输入一个结束标记")
except inputException as result:
    print("inputException 输入长度为{},输入长度至少应该为{}".format(result.length,result.atleast))
else:
    print("没有异常")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值