##单行注释,用#号注释
“”"
多行注释,三个双引号
“”"
print(内容1,内容2,…),可输出多个内容并用逗号隔开,内容中双引号内写字符串
print('hello',110)
money=50
print("钱包:",money)
money=money-10
print("钱包还剩:",money,"元")
print(type("黑马"))
name="黎明"
print(type(name))#查看变量类型
print(type(100))
print(type(2.3))
num_str=str(20)
print(type(num_str))
num=int("11")
print(type(num))
name="""lijie
angxu
"""
split_result=str.split(",")
#split使用
my_str="hello python ITheima"
sp_result=my_str.split(" ")
print(sp_result)
生成的结果是列表类型:
由于得到的结果以列表形式存在,所以可以在split()后面直接跟[]截取对应内容。
#截取得到的列表中第二个字符串
sp_result2=my_str.split(" ")[1]
print(sp_result2)
name="黎明"
address="北京市大兴区"
tel=123456
print(name+"live in"+address)
#print(name+"live in"+address+tel) 无法拼接整数型变量tel
name="liming"
tel2=123789
message="大学生 %s" % name
print(message)
#%s 表示用%占位,将要拼接的字符串放到s所在的位置,如果有多个要拼接的字符串或整数(如果用%s,其实是将整数转换为字符串类型),可用括号括起来:%(内容1,内容2)
message1="大学生 %s 电话:%s" % (name,tel2)
print(message1)
"""
"""
%d:将内容装换为字符串,放入占位位置
%f:将内容装换为浮点型(小数),放入占位位置,
%s:将内容装换为整数,放入占位位置
精度控制m.n:m控制宽度,n控制小数,%5d表示将整数的宽度控制在5位,对于数字11,表示为【空格】【空格】【空格】11
%7.2f的11.345表示为【】【】11.35 小数点算一位 ,四舍五入为5
"""
name2="xiaoming"
old=20
heigh=1.75
message3="%s 年龄:%d 身高:%f"%(name2,old,heigh)
print(message3)
#字符串格式化方式:f"{变量名}"
name5="awei"
age5=24
#之所以用f是因为format表示格式化
print(f"姓名:{name5},年龄:{age5}")
print(f"姓名:{},年龄:{age5*2}")#表达式:age5*2
#表达式格式化
print(f"5*3的结果是{5*3}")
print("3*6的结果是%d"%(3*6))
Python pass是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句,可用于测试语句块。
以下实例在字母为 o 时 执行 pass 语句块:
for letter in 'Runoob':
if letter == 'o':
pass
print ('执行 pass 块')
print ('当前字母 :', letter)#如果不等于o输出当前值
print ("Good bye!")
#01输出函数input()
#print("请告诉我你是谁!")
#name=input()#提示信息可以直接写到input()函数括号里,
name=input("请告诉我你是谁!")
print("你是%s"% name)
#输入数字类型
num=input("请输入密码:")
print("input函数会将输入数字转换为:",type(num))
注意:
num=input("请输入密码:")
num=int(num)
print("input函数会将输入数字转换为:",type(num))
print("passwor:",num)
str1="万过薪月,员序程马黑来,nohtyp学"#创建字符串
#方法一:先倒序,再切片
result2=str1[::-1][9:14]
print(result2)
#方法二 直接从后往前取取
result1=str1[9:4:-1]#得到新序列
print(result1)
"""由于元组和字符串都不支持修改,所以对他们进行切片得到的是新序列,并不影响原来的序列"""
#方法三 split分隔“,”,此逗号是中文逗号,切完片是以列表形式存在,然后用replace将“来”替换为空
result3=str1.split(",")[1].replace("来","")[::-1]
print(f"result3的结果:{result3}")
#split使用
my_str="hello python ITheima"
sp_result=my_str.split(" ")
print(sp_result)
#截取得到的列表中第二个字符串
sp_result2=my_str.split(" ")[1]
print(sp_result2)
Python的数据结构:序列,序列中的每个值都有其对应的位置值,称之为索引,索引从0开始
list1=['Goole',123,'Runnable',2000]
print(list1[0])
print(list1[-1])#从右到左最后一个元素是-1,-2,等
print(list1[-2])
print(list1[0:2])
print(list1[1:-2])#从第二位开始(包含第二位)到倒数第二位(不包括)
print(list1[1:])#输出从第一个元素到最后一个元素
list2=['Goole',1234,'Runnable',3000,'liming']
list2.append('baidu')
print(list2[5])#输出新添加的元素查看是否成功添加
del list2[1]#删除原来列表中第三个元素1234
print(list2)
list3=['a',12,'b']
list4=['d',13]
list5=[list3,list4]
print(list5)
#如果要取出list4中的13
print(list5[1][1])
len(list)
求列表元素个数。print('数组长度: %d'%(len(list3)) )#用%d链接字符串与整数
max(list)
返回列表最大值。min(list)
返回列表最小值。list(seq)
将元组转换为列表。student=Student() num=student.add(1,2)
。list.copy()
方法:复制列表 。list.append(obj)
方法:在列表末尾添加元素obj。list.count(obj)
方法:在列表中统计obj出现的次数。list.extend(sep)
方法:在列表末尾增加扩展一个新列表seq。list.insert(index,obj)
方法:将对象obj插入列表。list.index(obj)
方法:在列表中找到与obj相同的值并输出其索引位置即下标。list.pop([index=-1])
方法:删除列表中的一个元素(默认是最后一个),并返回元素值。list.reverse()
方法:反向列表元素。list.sort(key=None,reverse=False)
方法:对原列表排序,key是用来比较的元素,reverse–排序规则,Ture表示降序,False表示升序(默认)。list6=[1,3,2,5,0]
list6.sort()#默认升序
print(list6)
list.clear()
方法:清空列表。#利用for循环
print("------for遍历----")
for elem in list8:
print(elem)
#利用while循环
print("------while遍历----")
index=0
while index<=len(list8):
print(list8[index])
index+=1
两种循环的区别:
1.while循环自定义循环条件,通过定义变量index控制每次取的位置与上一次相隔多远。例如只取偶数位置的元素。并可以通过控制条件达到无限循环。
2.for循环不可以自定循环条件,只可以一个个从容器中取出数据。将遍历的容器内容遍历完成后就会停止。
tuple=('google','Run',123)#定义元组
# 创建空元组方法
t2=()
t3=tuple()
#定义元组
tuple1=("beijing","hanghai",123,"nanjing",56)
#对元组进行索引
print(tuple1[1])#索引
print(tuple1[1:3])#截取,注意不包括第四个元素
#02修改元组
tuple2=("anhui",666)
tuple3=tuple1+tuple1
print(tuple3)
#03删除元组
del(tuple3)
print(tuple3)
#元组运算符:+,+=,*
tup1=(1,2,3)
tup2=(4,5,6)
tup3=tup1+tup2#加号运算
print(tup3)
tup1+=tup2
print(tup1)
tup2=tup2*2
print(tup2)
list=['Google',1,5]
tuple1=tuple(list)
print(tuple1)
list=['Google',1,5]
tuple1=tuple(list)
print(tuple1)
print(id(tuple1))#输出原来元组内存地址
#重新赋值
tuple1 =(6,7)
print(tuple1)
print(id(tuple1))#输出重新赋值的元组内存地址
"""可以发现,重新复制元组,绑定到新对象,而不是修改了原来的对象"""
#04当我们需要在程序内封装数据,不改变数据时就需要用元组定义
tuple1=(5,'hello','banana')
print(tuple1[1:2])#输出:('hello',)
#创建列表
tinydict = {'name': 'runoob', 456:123, 'url': 'www.baidu.com'}
print(tinydict)#打印字典
print(len(tinydict))#查看字典的数量
print(type(tinydict))#查看类型
#使用内建函数dict()创建字典1、冒号改成等号 2、键虽然没有双引号,但本质上它还是字符串,因此在进行访问等操作时仍然需要加上访问
thisdict = dict(brand="Porsche", model="911", year=1963)
#我们可以在方括号内传入键来访问字典中的值,或者用get()函数
x = thisdict["model"]
x = thisdict.get("model")
tinydic2=dict(a=1,b=2,c=3)
#修改
tinydic2['a']=4
print('a对应的值:%d' % tinydic2['a'])
#添加
tinydic2['d']=5
print('d对应的值:%d' % tinydic2['d'])#判断是否加入成功
#删除字典元素
del(tinydic2["a"])#删除a对应的值
print(tinydic2)
tinydic2.clear()#清空字典但字典仍存在
print(tinydic2)
del(tinydic2)#删除字典,字典不再存在
print(tinydic2)
parame={"name","age","sex"}
print(parame)
parame2=set('name')
print(parame2)
parame1=set('name')#此集合元素是单个字母,
parame2=set(('name','sex'))
print(parame1)
print(parame2)
#修改集合
parame3={1,2,3,4}
#01增加元素
parame3.add(5)
parame3.update([6])#update方法添加元素,参数是列表[],元组(),或者字典{}
print(parame3)
#02移除元素
parame3.remove(4)#如果元素不存在会报错
print(parame3)
parame3.discard(4)#如果元素不存在不会报错
#03清空集合
parame4={1,2,3,4,7}
print(parame4)
parame4.clear()
print(parame4)
#判断元素是否在集合中
parame5={1,2,3,4,7}
print(1 in parame5)#结果是ture
是否支持下标索引:
支持:列表[],元组(),字符串----序列类型
不支持:字典{},集合{}------非序列类型
是否支持重复元素
支持:列表[],元组(),字符串----序列类型
不支持:字典{},集合{}------非序列类型
是否可以修改
支持:列表,集合,字典
不支持:元组,字符串
#排序函数sorted(),默认升序
list1=[1,4,2,7,9]
print(sorted(list1))
#反向排序
print(sorted(list1,reverse=True))
注意:
1、每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
3、在 Python 中没有 switch…case 语句,但在 Python3.10 版本添加了 match…case
#end关键字,在输出print()中,可以使输出元素在同一行,并用某符号隔开
a,b=0,1
while b<10:
print(b,end=" " )#用空格隔开
"""print(b, end=",") 用逗号隔开隔开"""
a,b=b,a+b
#以下实例使用了 while 来计算 1 到 100 的总和:
sum=0
count=1
while count<=100:
sum+=count
count+=1
print("总和是%d "% sum)
if condition1:
statment_block_1
elif condition2:
statment_block_2
else:
statment_block_3
"""
如果 "condition_1" 为 True 将执行 "statement_block_1" 块语句
如果 "condition_1" 为False,将判断 "condition_2"
如果"condition_2" 为 True 将执行 "statement_block_2" 块语句
如果 "condition_2" 为False,将执行"statement_block_3"块语句
"""
语法格式如下:
match subject:
case <pattern_1>:
<action_1>
case <pattern_2>:
<action_2>
case <pattern_3>:
<action_3>
case _:
<action_wildcard>
case _: 类似于 C 和 Java 中的 default:,当其他 case 都无法匹配时,匹配这条,保证永远会匹配成功。
一个 case 也可以设置多个匹配条件,条件使用 | 隔开,例如:
case 401|403|404:
return "Not allowed"
for 临时变量 in 待处理数据集:#每循环一次将待处理数据集中数据赋值给临时变量
<statements>
else:
<statements>
sites = ["Baidu", "Google","Runoob","Taobao"]
for site in sites:
print(site)
word = 'runoob'
for letter in word:
print(letter)
# 1 到 5 的所有数字:
for number in range(1, 6):
print(number)
for i in range(1,10,2):#步长为2
print(i)
#外层循环控制行
for i in range(1,10):
#内层循环控制列
for j in range(1,i+1):
print(f"{i}*{j}={i*j}\t" ,end=" ")#\t控制左对齐,end控制间隙
#外层循环输出空行
print()
#外层循环控制行
for i in range(1,10):
#内层循环控制列
for j in range(1,i+1)
print("{}*{}={}\t".format(i,j,i*j) ,end=" ")
#外层循环输出空行
print()
是组织好的,可重复的,用来实现特定功能的代码段
#len()是python内置函数,是python官方写好的,可重复使用加粗样式的
def 函数名(参数):
函数体
return 返回值
#01:定义一个无参函数
def func1():
print("hello world!")
return 0
#02:调用函数
func1()
#03:有参函数
def add( x, y):#x,y为形参
result=x+y
print(f"{x}+{y}的计算结果:{result}")
print("{}+{}={}".format(x,y,x+y))#第二种输出方式
add(4,5)#4,5是实参
#函数返回值
def add2(a,b):
sum=a+b
return sum #通过返回值将运算结果返回给调用者
r=add(7,8)
print(r)
"""
1:即使我们不主动写返回值,函数仍会有返回值,此时是None
2:None是一个特殊字面量,用于表述空,无意义的意思
3:None又有假的意思,与False一样,在调用函数式,有时需要用返回值作为判断条件
"""
def test():
print("测试函数体")
mess=test()
print(f"函数返回值:{mess}")
print(f"函数返回值类型:{type(mess)}")
if not mess:
print("返回值为空,也就是错,才输出此句话!")
#1:位置参数:调用函数时根据 函数定义的参数位置传递参数
def fun(name,age,gender):
print(f"姓名:{name},年龄:{age},性别:{gender}")
fun('Tom',20,'男')
"""传递的参数和定义的参数顺序及个数必须相同"""
#2:关键字参数:采用键值对的形式
fun(name='Tom',age=20,gender='男')
fun(name='Tom',gender='男',age=20)#顺序可以任意
#3:位置参数+关键字参数
fun('Tom',age=20,gender='男')#混合使用,但是位置参数必须在前,且匹配参数顺序
#4:缺省参数(默认参数):定义函数时提供默认值,如果调用函数时候没有传入对应参数则使用默认值,否则使用传入参数
def fun1(name,age,gender='男'):
print(f"姓名:{name},年龄:{age},性别:{gender}")
fun1(name='Tom',age=20)
fun1(name='Tom',age=20,gender='女')
#5:不定长参数(参数数量任意)
def fun2(*args):
print(args)
"""传进的参数都会被变量args收集,它会根据传进参数的位置合并为一个元组tuple,args是元组类型,这就是位置传递"""
fun2("Tom",17,'男')
fun2("TAndy",'女')
#关键字传递的不定长,以键值对形式传入,以字典的形式输出
def fun3(**kwargs):
print(
kwargs
)
fun3(name="li",age=18)
#函数作为参数传递
def testfunc(computer):
result=computer(1,2)
print(result)
def computer(x,y):
return x+y
testfunc(computer)
"""这是一种计算逻辑的传递,不是数据的传递"""
#lambda关键字定义匿名函数
def testfunc1(computer1):
result=computer1(1,2)#computer1是函数,未定义,下面直接用lambda函数定义。
print(result)
testfunc1(lambda x,y:x+y)
1,定义一个全局变量Money:用来记录银行卡余额(默认50000),
2,定义一个全局变量name:记录用户名(启动程序时输入)
3,定义如下函数:
查询余额函数;存款函数;取款函数;主菜单函数,通过输入不同的数字进入不同的操作页面
4,要求:
程序启动后要求输入客户名,
查余额,存款,取款后都会返回主菜单,
存款,取款后都应显示一下余额,
客户选择退出或者输入错误,程序会退出,否则一直运行
Money=50000
name=None
#用户输入用户名
name=input("请输入用户名")
#查余额函数
def query(show_head):
if(show_head):#通过show_head控制打不打印
print("--------查余额---------")
print("%s 卡内余额:%d"%( name,Money))
#存款函数
def saving(num_money):
print("--------存款---------")
global Money#通过 global将Money在函数体内定义为全局变量
Money+=num_money
print("%s存款%d成功" % (name,num_money))
query(False)#不打印头
#取款函数
def getMoney(num_money):
print("--------取款---------")
global Money
Money-=num_money
print("%s取款款%d成功" % (name,num_money))
query(False)
#主菜单
def main():
#提示:
print("--------主菜单---------")
print(f"---{name}你好-----请选择以下操作------")
print("查询余额输入 \t[1]")#通过\t制表符控制对齐
print("存款输入\t\t[2]")
print("取款输入\t\t[3]")
print("退出\t\t\t[4]")
return input("请输入要进行的操作序号:")#返回输入值
while True:
key_press=main()#获取输入值
if key_press=="1":
query(True)
continue # 查询后自动退出返回主菜单
elif key_press=="2":
num = int(input("输入存款金额")) # 由于input输入的都是字符串,所以要强制转换为int类型
saving(num)
continue
elif key_press=="3":
num = int(input("输入取款金额"))
getMoney(num)
continue
elif key_press=="4":
print("退出程序!")
break
字符串.split(“分割”)
,结果存入列表对象。[‘字符串1’,‘字符串2’]。字符串.split(“分割”)[2]
,分割后的第三个列表元素。x=input("密码:") x=int(x)
str(::-1)[2:4]
(2)元组tuple,元素不可修改,整个元组可删除del(tuple)
,两个元组可相加,元组可以截取内容赋值给其他变量,自身不变。tuple[1:3],不可对单个元素操作,可以对整体操作。(3)\t :表示空4个字符,类似于文档中的缩进功能,相当于按一个Tab键。
\n :表示换行,相当于按一个 回车键
\n\t : 表示换行的同时空4个字符。