Python环境下载安装

安装略
验证安装结果与编写第一个Python程序

下载PyCharm(IDE----集成开发环境,下载社区版即可),安装略。


数据类型
- 数字
- 字符串
- 列表
- 元组
- 集合
- 字典
数字类型包含整数(int)、浮点数(float)、复数(complex)和布尔(bool)。
注释
单行注释
# 我是单行注释(最好在#和注释之间加个空格,这样更符合规范)
多行注释(三个引号)
"""
多行注释
"""
类型转换
为什么需要转换类型
从文件中读取的数字,默认是字符串,我们需要转换成数字类型
input(),默认也是字符串,若需要数字也需要转换
将数字转换成字符串,用以写出到外部系统
等等

标识符
标识符命名中只允许出现
- 英文
- 中文
- 数字
- 下划线_
但是不建议使用中文,且不能数字开头
运算符
+ - * / 举例6/4=1.5
// 整除,举例9//4=2
% 取余
** 指数
字符串介绍
- 单引号
- 双引号
- 三引号(赋值给变量,不赋值相当于多行注释了)
如果需要在字符串中打单引号或双引号,可以这么使用
单引号里套双引号
双引号里套单引号
或者用转义符 \

字符串格式化
例

其中的%s,%表示占位,s表示将变量变成字符串放入占位的地方
有多个变量占位,变量要用括号括起来,并按照占位的顺序填入
整数占位用%d
浮点数占位用%f
还可以控制数值的精确度

用f格式化

还可以格式化表达式

综合练习

输入
input()

input默认输入的是字符串,如果需要数字,需要进行类型转换。
布尔类型与比较运算
布尔类型只有两个值:True和False
比较运算符有:==等于 !=不等于 >大于 <小于 >=大于等于 <=小于
逻辑判断
if
用法:if接条件判断语句,后面接冒号
if语句体通过缩进来表示(四个空格,PyCharm会自动缩进)
最后一句print不属于if逻辑块内,无论条件是否满足均会输出

综合练习

if...else

if...elif...else
各条件互斥且有序,满足一个,其他的不会再运行
下面代码可以省略变量,直接将input作为条件判断,这样输入一个条件满足后,后面的条件不用再输入了。

if嵌套


猜数字游戏

循环
while循环
基本使用
i = 0
while i < 100:
print("小丽,我喜欢你")
i += 1
求1+100的和
i = 1
sum1 = 0
while i <= 100:
sum1 += i
i += 1
print(sum1)
猜数字游戏使用while实现,不限猜的次数,实现代码如下:
实现要点,无限次可以用while True表示
这里除了用break退出循环外,还可以定义一个flag变量,初始为True,当猜对后,flag=False,这样也可以退出循环。
import random
num = random.randint(1, 100)
print(num)
i = 1
while True:
input_num = int(input("请输入一个数字:"))
if input_num == num:
print(f"恭喜你,{i}次就猜对了")
break
else:
i += 1
print("猜错了")
if input_num > num:
print("大了")
else:
print("小了")
嵌套循环
注意缩进即可
i = 1
while i <= 100:
print(f"今天是第{i}天表白")
j = 1
while j <= 10:
print(f"送的第{j}枝玫瑰花")
j += 1
print("小丽,我喜欢你")
i += 1
print(f"第{i - 1}天表白成功")
嵌套循环输出99乘法口诀表
\t是制表符,可以令输出的内容对齐,更加美观
end=''这个可以让print不换行

for循环
除了while循环语句外,Python同样提供了for循环语句两者能完成的功能基本差不多,但仍有一些区别:
while循环的循环条件是自定义的,自行控制循环条件
for循环是一种”轮询”机制,是对一批内容进行“逐个处理”
name = "zhangsan"
for x in name:
print(x)
x是临时变量,for循环里用不用这个临时变量都可以
序列类型,其内容可以一个个依次取出的类型,包括字符串、列表、元组等
range
range生成一个数字序列
1.range(5) 生成[0,1,2,3,4],默认从0开始,不包含5
2.range(5,10) 生成[5,6,7,8,9],range(num1,num2)不包含num2
3.range(5,10,2) 生成[5,7,9],后边的2是步长
for x in range(10):
print(x)
如果想在外面使用临时变量,可以在for循环外定义一下,执行for循环时会进行覆盖
表白游戏

for循环输出99乘法口诀表

continue与break
continue退出当前循环
break退出整个循环


在嵌套循环中使用break

发工资案例,银行卡总共10000元,给20名员工发放工资,绩效低于5分不发工资,满足绩效每位员工1000元,余额不足后提示下个月再发放

本程序有个小问题,就是余额为0后,还会判断绩效,大家可以看看怎么改进。
函数
统计字符的长度,我们可以这么做
name = "zhangsan"
length = 0
for i in name:
length += 1
print(length)
但是这样只能统计name这一个变量的字符长度,如果想要重复利用,就要用到函数了
name1 = "zhangsan"
name2 = "lisi"
def my_len(data):
count = 0
for i in data:
count += 1
print(f"{data}的长度是{count}")
my_len(name1)
my_len(name2)
函数的定义:
def+函数名(传入参数)
函数体
return 返回值
参数和返回值如果不需要,都可以省略
最简单的函数举例:
def say_hi():
print("hello python")
say_hi()
带参数
def add(x, y):
result = x + y
print(f"{x} + {y}的计算结果是{result}")
add(4, 5)
add(6, 8)
带返回值
def add(x, y):
result = x + y
return result
r = add(4, 3)
print(r)
说明:所有函数默认返回None,数据类型type是'NoneType',也可以主动return None

1.什么是None
None是类型'NoneType’的字面量用于表示:空的、无意义的
2.函数如何返回None
不使用return语句即返回None
主动return None
3.使用场景
函数返回值
if判断
变量定义,不知道赋什么值时,可以先赋值None

函数说明文档
在PyCharm中输入三个""",回车自动就出来了,鼠标悬停到调用处,还能出现函数的说明

嵌套调用
在func_a中调用func_b

变量的作用域
def test():
num = 100
print(num)
test()
print(num)
程序会报错,最后一行提示不认识num,这是因为函数内部定义的变量为局部变量,在函数外部无法识别。
如果要定义全局变量,定义在函数外,如果想在函数里改变全局变量的值,使用global 变量名即可

存取钱案例:

代码如下:
name = "zhangsan"
money = 50000
def main_pro():
input_name = input("请输入您的姓名:")
if input_name == name:
while True:
print("您好,张先生,欢迎来到本银行,请选择操作:")
print("查询余额\t[输入1]")
print("存款\t\t[输入2]")
print("取款\t\t[输入3]")
print("退出\t\t[输入4]")
num = int(input("请输入1-4:"))
if num == 1:
query()
elif num == 2:
in_m = int(input("请输入存款金额:"))
cun_money(in_m)
elif num == 3:
out_m = int(input("请输入取款金额:"))
qu_money(out_m)
else:
print("您输入的有误,程序退出")
return None
def query():
print(f"余额{money}")
print("-------------")
def cun_money(in_money):
global money
money += in_money
print(f"操作成功,余额{money}")
print("-------------")
def qu_money(out_money):
global money
money -= out_money
print(f"操作成功,余额{money}")
print("-------------")
main_pro()
while True可以剥离出来,即在while True中调用main函数,(在main函数中return出客户的选择的数字),根据main函数返回值(1-4做判断if input_num==1)调取对应函数。感觉还是剥离出来好,要不功能再多些,看的很乱。即解耦合。
而且还有冗余代码,即取款存款结束后可以调取查询函数查询余额。

被折叠的 条评论
为什么被折叠?



