黑马程序员的教程给小白的体验非常良好,讲的非常细致,甚至会介绍一下鼠标快捷键的设置,会提到一些新手很容易踩到的坑。
打开python
win+R python
看到>>>(进入到解释器内部,可以通过exit()退出)才可以进行输入
print(”XXX”)
<aside> 💡 SyntaxError: invalid character 中文符号
</aside>
使用解释器
用python命令运行.py文件,执行整个文件里的所有代码
C:\\Users\\Administrator>python D:\\desktop\\test.py
IDE-pycharm
在project下方右键创建新py的文件
右键选择运行
在settings-Plugins-Marketplace可以搜索下载插件
字面量
注释
单行注释(“#”后需要加一个空格) # 注释内容
多行注释 ”””注释内容“””
变量
变量的定义格式 变量名称:变量的值
money = 50
print("钱包还有:",money)
money = money - 10
print("花费10元,还剩余:", money, "元")
- 变量运算直接输入即可
数据类型
可以用type( )语句获得数据类型
数据类型转化
int(x)
float(x)
str(x)
关键字
大小写敏感,有特殊用途,不可以占用为标识符
算数运算符
字符串
定义形式
name = ‘内容’
name = “内容”
name = “””内容”””
字符串拼接
print("test1"+"test2")
字符串不能和数字直接用“+”拼接
字符串格式化
%s把变量变成字符串放入占位的地方
message = "学IT就来 %s-"% name
class_num = 57
avg_salary = 16781
message = "第%s期,毕业平均工资:%s" %(class_num, avg_salary)
print(message)
多个变量占位,变量要用括号括起来,并按照占位的顺序填入
%d把内容转换成整数
%f把内容转换成浮点数
格式化的精度控制
m.m控制数据的宽度和精度
m要去数字,设置的宽度需要大于数字本身(如果小则不生效)
n小数点精度,会进行四舍五入
%5d 整数
%5.2f
快速格式化字符串
f”内容{变量}”
快速格式化不限制数据类型,不做精度控制
name = "mls"
year = 1998
print(f"我是{name},我出生于{year}年")
对表达式进行格式化
用%占位表达式
f{}表达式
print("1*1的结果是:%d %(1*1) ")
print(f"1*2 的结果是:{1*2}")
print("字符串类型是%s" % type("字符串"))
数据输入input()
name = input()
逻辑判断
布尔类型
True真1 False假0 (首字母大写)
变量名称 = 布尔类型字面量
#定义变量存储布尔类型的数据
bool_1 = True
bool_2 = False
result = 10 > 5
print(f"10>5的结果是:{result},类型是:{type(result)}")
if判断语句
if 要判断的条件: 条件要成立的时候,要做的事情
age = int(input("请输入你的年龄:"))
if age >= 18:
print("已成年")
print("结束")
if else语句
if 条件:
要做的事情1
要做的事情2
……
else:
不满足要做的事情1
……
age = int(input("请输入你的年龄:"))
if age >= 18:
print("已成年")
else:
print("未成年")
print("结束")
if elif else语句多条件判断语法
if 条件1:
要做的事情1
要做的事情2
……
elif 条件2:
要做的事情1
……
elif 条件3:
要做的事情1
……
else:
要做的事情1
……
height = int(input("身高:"))
vip_level = int(input("vip级别:"))
if height < 120:
print("free")
elif vip_level > 3:
print("free")
else:
print("buy")
#猜猜心里数字
num = 5
if int(input("请猜一个数字:")) == num:
print("1 s")
elif int(input("猜错了,再猜一次:")) == num:
print("right")
elif int(input("猜错了,再猜一次:")) == num:
print("last chance")
else:
print("sorry")
嵌套语句
*空格缩紧——>层次关系
if int(input("your height is: ")) > 120:
print("too high")
print("but if your vip level is higher than 3, then free")
if int(input("your vip level is: ")) > 3:
print("Congratulations!")
else:
print("sorry again")
else:
print("free")
随机产生数字
import random
num = random.randint(1,10)
循环语句
while循环语句
while条件:
条件满足时,做的事情1
条件满足时,做的事情2
……
只要条件满足,会无限循环执行
i = 0
while i < 10:
print("keep going")
i += 1
#while循环的嵌套应用
i = 1
while i <= 10:
print(f"{i}")
j = 1
while j <= 10:
print(f"{j}")
j += 1
print("a")
i += 1
print("over")
#九九乘法表
i = 1
while i <= 9:
j = 1
while j <= i:
print(f"{j}*{i}={j*i}\\t", end='') # \\t表示制表符,进行对齐
j += 1
i += 1
print() #输出一个换行
for循环
基本语法
while循环自行控制循环条件,for循环是一种“轮询”机制,对一批内容进行逐个处理,无法定义你循环条件
name = "python"
for x in name:
print(x)
for 临时变量 in 待处理数据集(序列):
循环满足条件时执行的代码
range语句
待处理数据集-序列类型
range(num) 从0开始,到num结束的数字序列(不包括num)
range(num1, num2)从num1开始,到num2结束(不包含num2)
range(num1, num2, step)从num1开始,到num2结束,数字步长为step(不包含num2)
for x in range(1,10,2):
print(x)
变量作用域
临时变量尽量只在for循环内部使用
#for循环的嵌套应用
for i in range(11) :
print(f"{i}")
for j in range(11):
print(f"{j}")
print("a")
print("over")
#九九乘法表
for i in range(10):
for j in range(i+1):
print(f"{j}*{i}={j*i}\\t", end='') # \\t表示制表符,进行对齐
print() #输出一个换行
continue和break
- 暂时跳过某次循环,直接进行下一次
- 提前退出循环,不再继续
continue:中断本次循环,直接进入下一次循环
for i in range(10):
print("word1")
continue
pirnt("word2") #语句2在continue后面(仅该层循环内侧),每次都不会被执行
break:直接结束循环
for i in range(10):
print("word1")
break
pirnt("word2")#运行了i=0的情况,循环就结束了
print("word3")
money = 10000
for i in range(1,21):
import random
score = random.randint(1,10)
if score < 5:
print(f"people{i}'s score is {score}, unavailable")
continue
if money >= 1000:
money -= 1000
print(f"people{i} is availabel, count number is:{money}")
else:
print(f"money is {money}, not enough")
break
python函数
函数介绍
组织好的,可重复使用的,用来实现特定功能的代码段
str = "lvoedjosf "
count = 0
for i in str:
count += 1
print(f"the lengh of {str} is : {count}")
def my_len(data):
count = 0
for i in data:
count += 1
print(f"the lengh of {data} is : {count}")
my_len(str)
函数定义
def 函数名(传入参数):
函数体
return 返回值
函数调用
函数名(参数)
函数的参数
传入参数:在函数进行计算的时候,去接受外部输入的数值
def add(x,y):
result = x + y
print(x+y)
add(1,2)
函数的返回值
返回值
函数完成事情后,最后给调用者的结果
函数体遇到return关键字,后面的代码不会执行
def 函数名(传入参数):
函数体
return 返回值
变量 = 函数(参数)
def add(x,y):
result = x + y
return result
r = add(1,2)
print(r)
None类型
<class’NoneType’>
不写return,就会返回None,也可以return None
None相当于false
也可以用于声明无内容的变量
函数的说明文档
def func(x,y)
"""
函数说明
:param x:
:param y:
:return:
"""
函数体
return 返回值
def add(x,y):
result = x + y
return result
"""
:param x:x表示数字1
:param y:y表示数字2
:return:返回两者之和
"""
r = add(1,2)
print(r)
函数的嵌套调用
函数里调用另外一个函数
def fun_b():
print("2--")
def fun_a():
print("1--")
fun_b()
print("3--")
fun_a()
变量的作用域
局部变量:作用域在函数体内部
全局变量:在函数外定义
函数内部的修改变量操作不会对全局变量产生影响
如果强行修改➡️global关键字➡️函数内的变量变成全局变量
num = 1
def a():
print(num)
def b():
global num
num = 2
print(num)
a()
b()
print(num)
"""
演示函数综合案例开发
"""
#定义全局变量money
money = 5000000
name = None
#要求客户输入姓名
name = input("请输入您的名字:")
#定义查询函数
def query(show_header):
if show_header:
print("-查询余额-")
print(f"{name},您的余额为:{money}元")
#定义存款函数
def saving(num):
global money
money += num
print("-存款-")
print(f"{name},您存款{num}元成功")
#调用query函数查询余额
query(False)
#定义取款函数
def get_money(num):
global money
money += num
print("-取款-")
print(f"{name},您取款{num}元成功")
# 调用query函数查询余额
query(False)
#定义主菜单函数
def main():
print("-主菜单-")
print(f"{name},请选择操作")
print("查看余额\\t[输入1]")
print("存款\\t\\t[输入2]")
print("取款\\t\\t[输入3]")
print("退出\\t\\t[输入4]")
return input("请输入您的选择: ")
#设置无限循环,确保程序不退出
while True:
keyboard_input = main()
if keyboard_input =&