ctrl+D
print语句可以打印多个量,中间用逗号隔开
默认print语句输入会自动换行
在print语句中加入end=''即可实现不换行
xxxxxxxxxxprint("不换",end='')print("行",end='')在字符串中有一个特殊符号\t,效果等同于在键盘上按下tab键
他可以让我们多行字符串进行对齐
xxxxxxxxxxprint("换\n行")整数(int)
浮点数(float)
复数(plexcoml)
布尔(bool)表达现实生活中的逻辑,即真和假,True表示真,False表示假,True本质上就是一个数字记作1,False记作0
又称文本,是由任意数字的字符如中文,英文,各类符号,数字等组成
书写格式:
xxxxxxxxxxprint("daima")单引号定义
双引号定义
三引号定义(和多行注释写法一样,但是若写成多行字符串,最后输出也只会变成一行)
单引号定义法,内可含双引号
xxxxxxxxxxname_1 = ' "biancheng" '
print(name_1)双引号定义法,内可含单引号
xxxxxxxxxxname_1 = " 'biancheng' "
print(name_1)用\消除引号的引用效果
xxxxxxxxxxname_1 = "\"biancheng\""
print(name_1)输出效果:
"biancheng"
直接使用+进行拼接
数字无法和字符串进行拼接
xxxxxxxxxxa = 'python字符串的拼接'b = '我要学习的内容是: %s ' % a
print(b)字符串的格式化类似于上面的内容
%表示我要占位
s表示将变量变成字符串放入站位的位置
xxxxxxxxxxa = [1,2,3,4]b = 16c = 'A = %s 集合A的子集的个数为: %s' % (a , b)
print(c)多个变量占位,要用括号括起来并且用逗号间隔,要按照顺序书写
格式符号
%s 把变量转换成字符串,放入占位位置
%d 把变量转换成整数,放入占位位置
%f 把变量转换成浮点型,放入占位位置
f 作为标记符{变量}
xxxxxxxxxxnumber_1 = 10number_2 = 4.26topic = 'python_study'
print(f'topic:{topic} number_1:{number_1} number_2:{number_2}')适合对精度没有控制的时候快速格式化
这种格式化不会理会数据类型,不做精度控制
我们可以用辅助符号m.n来控制精度
m 控制宽度,要求是数字(很少使用),设置的宽度小于数字自身不生效
xxxxxxxxxxnumber_1 = 1012345
print('%10d' % number_1).n 控制小数点精度,要求是数字,会进行小数的四舍五入
xxxxxxxxxxnumber_2 = 5.12345
print('%.2f' % number_2)输出结果:
5.12
注意:控制精度时宽度小于本身时不生效!!!
可以用上面的任何方法去进行格式化表达式
例:
xxxxxxxxxxprint('1+1的结果是:%d' % (1+1))
print(f'20 * 10的结果是:{20 * 10}')
print('10的数据类型是:%s' % type(10))输出:
1+1的结果是:2 20 * 10的结果是:200 10的数据类型是:<class 'int'>
有序可变序列
有序不可变序列
无序不重复集合
无需Key-Value集合
书写格式
xxxxxxxxxx# 输出字符串Hello Pythonprint("Hello Python")注:#和注释内容中间最好空一个格
书写格式
xxxxxxxxxx"""输出字符串Hello Python"""print("Hello Python")在程序运行时能够储存计算结果或者能表示值的概念
变量的格式
变量名称 = 变量的值
(赋值)
xxxxxxxxxxa = 10b = 20print输出语句
xxxxxxxxxxprint(内容1,内容2,内容3,.......)变量的运算
xxxxxxxxxxmoney = 50money = money - 10pycharm复制快捷键:ctrl+D
type()使用方法
1、可以在print语句中直接输出类型信息
xxxxxxxxxxprint(type('biancheng'))print(type(111))print(type(2.4))输出结果
<class 'str'> <class 'int'> <class 'float'>
2、用变量存储type()的结果(返回值)
xxxxxxxxxxa = type('biancheng')print(a)(举一例剩下同理)
3、用type语句查看变量中储存的数据类型
xxxxxxxxxxb = 10c = type(b)print(c)(举一例剩下同理)
语法:
int(变量名)转换成整数
float(变量名)转换成浮点数
str(变量名)转换成字符串
xxxxxxxxxxa = 10print(type(a))a = str(a)print(type(a))注:任何都可以转换成字符串,但是字符串不能转换成数字
标识符命名中只允许出现
中文
英文
数字
下划线(_)
这四类元素
其余各类元素都不允许(不推荐使用中文,数字不可使用在开头)
不得占用关键字
变量命名规范:
①见名知意思
②下划线命名法
③英文字母全小写
+加法
-减法
*乘法
/除法
//取整除
%取余
**指数
xxxxxxxxxxprint(1+1)print(1-1)print(1*1)print(1/1)print(30//8)print(30%8)print(2**4)输出结果:
2 0 1 1.0 3 6 16
以上的运算符后面加上=相当于这个运算的赋值运算符
input()语句
例:(获取姓名)
xxxxxxxxxxprint('姓名')
name = input()
print(f'你的名字是:{name}')简化代码,提示信息可以直接写入input语句中
xxxxxxxxxxname = input('姓名')
print(f'你的名字是:{name}')input无论写入什么语句都会写成字符串
用数据转换
xxxxxxxxxxnumber = input("你的电脑密码")number = int(number)
print(type(number))进行判断,只有两个结果,是,否
True表示真
False表示假
== 判断内容是否相等
!= 判断内容是否不相等
>判断左侧内容是否大于右侧内容
<判断右侧内容是否大于左侧内容
>= 判断左侧内容是否大于等于右侧内容
<= 判断右侧内容是否大于等于左侧内容
(满足为True,不满足为False)
if 要判断的条件 :
条件成立时 要做的事情
xxxxxxxxxxage = input('你今年几岁了')age = int(age)if age >= 18: print("你成年了")当结果为True时代码会被执行,当结果为False时代码不会被执行
if 要判断的条件 :
条件成立时 要做的事情
else:
但条件不成立时 要做的事情
xxxxxxxxxxage = input('你今年几岁了')age = int(age)if age >= 18: print("你成年了")else: print("你还是未成年")if 条件1 :
条件成立时 要做的事情
elif 条件2:
条件成立时 要做的事情
elif条件n:
条件成立时 要做的事情
else:
但条件不成立时 要做的事情
xxxxxxxxxxage = input('你今年几岁了')age = int(age)if age >= 18: print("你成年了")elif age <= 16: print("你未满16周岁")elif age <= 18: print("你未满18周岁")else: print("你还是未成年")判断顺序从上到下,若1满足就不会进入2
也可以不写else就进行if判断
xxxxxxxxxxage = input('你今年几岁了')age = int(age)if age >= 18: print("你成年了")elif age <= 16: print("你未满16周岁")elif age <= 18: print("你未满18周岁")注意:空格缩进不可以省略
判断有两层,当外层满足if条件时才会执行内层if判断
当外层if不满足,直接执行外层else
嵌套原理逐层递进
具体层级在于空格缩进
通过空格缩进来决定具体层级关系
xxxxxxxxxxprint("请进行基本信息填写")
if int(input("请输入你的年龄(用阿拉伯数字输入)")) > 18: print("您已被默认识别为德强学校的老师") if int(input("请输入你的会员等级")) >= 3: print("您已满三级下面进行礼物选择") give = input("请输入你想选择的礼物") print("您所选的礼物将在三个工作日内给您邮寄") else: print("您的会员等级不满三级无法给你礼物,请加速提升等级")else: print("您的年龄未满十八周") school_minor = input("请输入你的学校") if school_minor == "德强": print("欢迎你来到德强") else: print("非德强学子无法录入系统")语法:while 条件:
执行内容
满足条件时则一直循环,不满足条件则结束循环
案例:
猜数字
xxxxxxxxxximport randomnum = random.randint(1,100)
b = True
while b: a = int(input("请输入你猜的数字")) if a == num: print("你猜对了!") b = False elif a < num: print("你猜的数字小了") else: print("你猜的数字大了")同判断语句的嵌套一样,循环语句的嵌套要注意空格缩进
·基于空格缩进来决定层次关系
注意:避免出现无限嵌套
循环嵌套案例:99乘法表
xxxxxxxxxxa = 1
while a <= 9: b = 1 while b <= a: if b < a: print(f"{b}*{a}={a*b}\t",end='') b += 1 else: print(f"{b}*{a}={a*b}\t") b += 1 a += 1代码优化:
xxxxxxxxxxa = 1
while a <= 9: b = 1 while b <= a: print(f"{b}*{a}={a*b}\t",end='') b += 1 a += 1 # 换行 print()输出一个空,就相当于换行
for 临时变量 in 待处理数据集:
循环满足条件时执行的代码
for循环无法定义循环条件,只能从被处理的数据集中,依次取出内容进行处理
xxxxxxxxxxa = '123423426456734573567'
c = 0for b in a: if b == "7": c += 1
print(f"一共有{c}个7")注意数据类型!!!
for循环语句本质上是遍历:序列类型
尽管除字符串外,其他的类型目前还没有学习到,我们可以通过range语句获得一个数字序列
语法1:
range(num)
获取从0开始到num结束的数字序列,不含num本身!
num = 5 [0.1,2,3.4]
语法2:
range(num1,num2)
获得一个从num1到num2结束的数字,包含num1但不包含num2,且为整数
语法3:
range(num1,num2,step)
获得一个从num1到num2结束的数字,包含num1但不包含num2,且为整数
数字之间的步长,以step为准(默认为1)
临时变量在编陈规范上,作用范围(作用域),只限定在for循环内部
若果在for循环外部访问临时变量:
·实际上是可以访问到的
·在编程规范上,是不允许的,不建议这么做的
如果在for循环外部访问临时变量我们应在for循环前面定义临时变量
同样也是根据句空格缩进实现for循环
xxxxxxxxxxi = 1for i in range(101): print(f"这是我向小美表白的第{i}天") for j in range(1,11): print(f"这是我今天送的第{j}朵玫瑰") print(f"第{i}天表白结束")print(f"表白第{i}天,表白成功")互相嵌套模式
xxxxxxxxxxi = 1while i <= 100: for j in range(1,11): print(f"第{j}朵玫瑰花") print(f"表白第{i}天") i += 1print(f"表白{i - 1}天,表白成功")用for循环输出99乘法表
xxxxxxxxxxi = 1for i in range(1,10): for j in range(1,i + 1): print(f"{i}*{j}={i * j}\t",end='') print()应用场景:
·暂时跳过某次循环,直接进行下一次
·提前退出循环,不再继续
用于中断本次循环,直接进入下一次循环
可以用于for和while循环,效果一致
示例代码:
xxxxxxxxxxfor i in range(10): print("a") continue print(f'{i}')上面代码中的print(f'{i}')不会被执行而会直接跳过
循环嵌套中,continue只对当前使用循环起作用
用于直接结束循环
可以用于for和while循环,效果一致
示例代码:
xxxxxxxxxxfor i in range(10): print("a") break print(f'{i}')print("结束")遇到break次次循环直接结束,不再进行循环
例如上面不再执行print(f'{i}'),也不会再进行循环,直接执行print("结束")
循环嵌套中,break只对当前使用循环起作用
循环嵌套练习案例:员工发工资
方案1:
xxxxxxxxxxnum = 1i = 1yuan = 10000
for i in range(1,21): import random num = random.randint(1,10) if yuan == 0: print("工资发完了") break elif num < 5: print(f"员工{i},绩效分{num},低于五分,不发工资,下一位") else: yuan -= 1000 print(f"员工{i}发放工资1000元,账户余余额:{yuan}")方案2:
xxxxxxxxxxnum = 1i = 1yuan = 10000
for i in range(1,21): import random num = random.randint(1,10)
if num < 5: print(f"员工{i},绩效分{num},低于五分,不发工资,下一位") continue if yuan >= 1000: yuan -= 1000 print(f"员工{i}发放工资1000元,账户余余额:{yuan}") else: print("工资发完了") breakxxxxxxxxxxdef 函数名(传入参数): 函数体 return 返回值函数的调用:
函数名(参数)
参数如果不需要可以省略
返回值如果不需要可以省略
函数必须定义之后使用
传入参数的功能是:在函数进行计算的时候,接受外部(调用时)提供的数据
传入参数案例:
xxxxxxxxxxdef add (x , y): resule = x + y print(f"{x}+{y}={resule}") return
add(1 , 5)函数定义中的参数称为形式参数
函数调用中的参数称为实际参数
函数的参数数量不限,使用逗号分隔开
传入参数的时候,要和形式参数一一对应,逗号隔开
完成功能之后结果回返回给函数调用者
xxxxxxxxxxdef add (x , y): resule = x + y return resule
print(add(1,2))函数遇到return就结束了,再写什么也不会执行了
无返回值的函数,就实际上返回了none这个字面量
不写就为返回none
不写:
函数是纯代码语言,想要理解其含义,就要一行行的去阅读理解代码,效率比较低
我们可以给函数添加说明文档,辅助理解函数的作用
语法如下:
xxxxxxxxxx'''函数说明:param x:形参x说明:param y:形参y说明:return:返回值说明'''在pycharm中写出‘’‘按回车键即可自动补全
在一个函数已调用了另外一个函数叫做函数的嵌套
执行顺序,依照顺序向下,嵌套函数执行完才会执行原函数
xxxxxxxxxxdef a(): print('2')
def b(): print('1') a() print('3')
b()局部变量的作用域作用在函数内部,只在函数内部生效
函数调用完之后,则会立即销毁局部变量
在函数外访问的时候则该变量会立即报错,无法访问
如果我们在函数外部设定,一个同函数内部变量名称相同的变量,则在内部的变量不会影响到函数外部的变量
xxxxxxxxxxnum = 200def a(): num = 100 print(num)
print(num) a()在代码中都能生成的变量,在函数外定义即可
局部变量就是局部变量和全局变量没有任何关系
在函数中加上global 变量名,使在函数内定义的变量等同于全局变量
xxxxxxxxxxnum = 200def a(): global num num = 100 print(num)a()print(num)xxxxxxxxxx# 初始值定义money = 100000000name = None
# 姓名获取name = input("请输入您的姓名:")
# 定义功能函数def query(): ''' 查询余额功能 :return: 无 ''' print("---------查询余额----------") print(f"{name}您好,您的余额为:{money}")
def deposit(deposit_money): ''' 存款功能 :param deposit_money:存入金额 :return: 无 ''' global money money += deposit_money print(f"您存入的金额为:{deposit_money}") print(f"您现在的余额为:{money}")
def withdraw(withdraw_money): ''' 取款功能 :param withdraw_money:取款金额 :return: 无 ''' global money money -= withdraw_money print(f"您取出的金额为:{withdraw_money}") print(f"您现在的余额为:{money}")
# 主菜单while True: print("----------主菜单----------") print(f"您好{name},欢迎来到**银行,请选择您要执行的操作") print("查询余额\t[输入1]") print("存款\t\t[数入2]") print("取款\t\t[输入3]") print("退出\t\t[输入4]") choice = int(input("请输入您的选择:")) if choice == 1: query() print("退出\t\t[输入1]") print("返回主菜单\t[输入2]") choice_in = int(input("请输入您的选择:")) if choice_in == 1: break else: continue elif choice == 2: deposit_money = int(input("请输入您要存款金额:")) deposit(deposit_money) print("退出\t\t[输入1]") print("返回主菜单\t\t[输入2]") choice_in = int(input("请输入您的选择:")) if choice_in == 1: break else: continue elif choice == 3: withdraw_money = int(input("请输入您要取出的金额:")) withdraw(withdraw_money) print("退出\t\t[输入1]") print("返回主菜单\t[输入2]") choice_in = int(input("请输入您的选择:")) if choice_in == 1: break else: continue elif choice == 4: break else: print("无法识别你输入的数字") print("退出\t\t[输入1]") print("返回主菜单\t[输入2]") choice_in = int(input("请输入您的选择:")) if choice_in == 1: break else: continueprint("欢迎下次光临**银行")一份可以容纳多个数据的数据类型,容纳的每一份数据称之为一个元素
每一个元素可以是任意的数据类型
数据容器的特点不同:
·是否支持重复元素
·是否可以修改
·是否有序等
分为五类:列表(list),元组(tuple),字符串(str),集合(set),字典(dict)
一个列表可以储存做个数据 一次存储多个数据
列表中的每一个数据称之为元素
·以[]作为标识
·列表中的每一个元素用逗号隔开
xxxxxxxxxxname_list = [1,2,3,'***']print(name_list)print(type(name_list))嵌套列表
xxxxxxxxxxnum_list = [[1,2,3],['*','**','***']]print(num_list)print(type(num_list))列表中的每一个元素,从前向后的方向,从0开始依次递增
我们只需要按照下标索引即可取得对应位置的元素
xxxxxxxxxxlist = [1,2,3]print(list[0])从后往前,从-1依次递减
xxxxxxxxxxnum_list = [[1,2,3],['*','**','***']]print(num_list[0][2])print(type(num_list))方法定义:
xxxxxxxxxxclass P_name: def name(self , x , y): print("我的姓名是***") return x + y
P_name = P_name()a = P_name.name(1 , 2)index()
xxxxxxxxxxa = [1,2,3,4,4,5,6,7,8,9]
b = a.index(1)print(b)查询下标索引值,如果存在则下标索引值,若不存在则报错
语法:列表[下表索引值] = 值
xxxxxxxxxxa = [1,2,3,4,4,5,6,7,8,9]a[1] = 66b = a.index(66)print(b)语法:列表.insert(下标,元素),在指定的下标位置插入指定的元素
xxxxxxxxxxa = [1,3,4,5]print(a)a.insert(1,2)print(a)语法:列表.append(元素),将指定元素,追加到列表的尾部
xxxxxxxxxxa = [1,3,4,5]print(a)a.insert(1,2)print(a)a.append(6)print(a)方式2:
语法:列表.extend(其数据容器),将其数据容器的内容取出,依次追加到列表尾部
xxxxxxxxxxa = [1,3,4,5]print(a)a.insert(1,2)print(a)a.append(6)print(a)a.extend([7,8,9])print(a)语法1:
del 列表[下标]
xxxxxxxxxxa = [1,3,4,5]del a[0]print(a)语法2:
列表.pop(下标)
xxxxxxxxxxa = [1,3,4,5]a.pop(0)print(a)我们可以通过变量接收取出来的元素
xxxxxxxxxxa = [1,3,4,5]b = a.pop(0)print(b)语法:
列表.remove(元素)
xxxxxxxxxxa = [1,3,4,5,1]b = a.remove(1)print(a)语法:
列表.clear()
xxxxxxxxxxa = [1,3,4,5,1]b = a.clear()print(a)语法:
len()
xxxxxxxxxxa = ['a',1,1.1]b = len(a)print(b)注意:统计的是全部元素,什么都算上

可以容纳多个元素(上限为2**63-1、9223372036854775807个)
可以容纳不同类型的元素(混装)
数据是有序存储的 (有下标序号)
允许重复数据存在
可以修改(增加或删除元素等)
while循环:
xxxxxxxxxxdef list_while_func(): my_list = [1, 2, 3] a = 0 while a < len(my_list): b = my_list[a] print(f"元素:{b}") a += 1
list_while_func()for循环:
xxxxxxxxxxdef list_for_func(): my_list = [1, 2, 3] for a in range(0,len(my_list)): b = my_list[a] print(f"元素:{b}")list_for_func()while循环和for循环,都是循环语句,但细节不同:
在循环控制上:
while循环可以自定循环条件,并自行控制
for循环不可以自定循环条件,只可以一个个从容器内取出数据
在无限循环上:
while循环可以通过条件控制做到无限循环
for循环理论上不可以,因为被遍历的容器容量不是无限的
在使用场景上:
while循环适用于任何想要循环的场景
for循环适用于,遍历数据容器的场景或简单的固定次数循环场景
总结:
for循环更简单,while循环更灵活
for循环用于从容器内取出元素并处理,while循环用以任何需要循环的场景
xxxxxxxxxxa = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def while_a(): b = 0 d = [] while b < len(a): c = a[b] if c % 2 == 0: d.append(c) b += 1 return d
f = while_a()
print(f)元组的定义
定义元祖实用小括号,且使用逗号隔开每个数据,数据可以是不同的数据类型
xxxxxxxxxx# 定义元组字面量("**", 1, 2, 2.2)
# 定义元组变量# 变量名 = (元素, 元素。 元素)a = ("**", 1, 2, 2.2)
# 定义空元组'''方法一:变量名 = ()方法二:变量名 = tuple()'''如果定义的元组只有一个元素,在元素后面要写一个逗号,要不他就不是元组类型
元组的嵌套同列表
注意:元组是不可以修改的
可以修改元组内list内的内容
xxxxxxxxxxa = (1, 2, 3, 4, [1, 2, 3])a[4][1] = '**'print(a)特点:
可以容纳多个数据
可以容纳不同类型的数据(混装)
数据是有序储存的(下标索引)
允许数据重复存在
不可修改(增加或删除元素)
支持for循环
index()
count()
len(元组)
可用