这是之前学习Python的笔记,这章是基础知识,不同语言之间其实差异不大,所以我就有点凌乱地选择性记录了一些自己之前不熟悉或者忘掉的东西!从下章开始,就都是超级详细版啦!对于本章内容,建议如下:如果是纯纯小白,建议去看完整版;如果是小灰,可以看看好玩不啦;如果是小黑,您可以直接收看下次内容!或者不看!我抱你大腿!
其实大家直接跳过这章就好,我就是单纯舍不得删,纯纯强迫症搞鬼!
所有相关代码可在https://github.com/hzyao/Python-Cookbook
进行查看。边学习边实操,及时挖掘真美妙!搭配食用或许口味更佳哟!
顺便问一嘴,有多少人和我一样点开 Python 就已经在怀念 R 了!
基础知识准备
先来点开胃菜!后面甩开膀子进食!!!
- 字面量:代码中被写下来的固定的值。
- 变量没有类型,存储的数据有类型。
- 字符串格式化 —— 占位
%s
,将内容转换成字符串,放入占位位置,注:%
表示占位,s
表示将变量变成字符串放入占位的地方。注:多个变量占位,变量要用括号括起来以逗号分隔,并按照占位顺序填入;%d
,将内容转换成整数,放入占位位置;%f
,将内容转换成浮点型,放入占位位置。
- 字符串格式化 —— 数字精度控制(使用辅助符号
m
和.n
来控制数据的宽度和精度)-
m
,控制宽度,要求是数字(很少使用),若设置的宽度小于数字自身,则不生效; -
.n
,控制小数点精度,要求是数字,会进行小数的四舍五入。示例:
%5d
:表示将整数的宽度控制在 5 位,如数字 11,被设置为5d
,就会变成:[空格][空格][空格]11
,用三个空格补足宽度。%5.2f
:表示将宽度控制为 5,将小数点精度设置为 2。注意:小数点和小数部分也算入宽度计算。如,对 11.345 设置了%7.2f
后,结果是:[空格][空格]11.35
。2 个空格补足宽度,小数部分限制 2 位精度后,四舍五入为.35
。%.2f
:表示不限制宽度,只设置小数点精度为 2,如 11.345 设置%.2f
后,结果是11.35
。
-
- 快速优雅的格式化:
f"内容{变量}内容{变量}"
,这种方式不做精度控制,不关心数据类型,原样输出。 - 序列类型:其内容可以一个个依次取出的一种类型,包括:字符串、列表、元组等等。
continue
:中断本次循环,直接进入下一次循环,适用于 for 循环和 while 循环,效果一致。break
:直接结束循环,适用于 for 循环和 while 循环,效果一致。- 函数的返回值:函数在执行完成后,返回给调用者的结果。注:函数体在遇到
return
后就结束啦,所以写在return
后面的代码都不会执行。 None
:一个特殊的字面量,用于表示空的、无实际意义的含义,其有非常多的应用场景。比如:- 用于函数无返回值:不使用
return
语句即返回None
,也可主动return None
,表示这个函数没有返回什么有意义的内容,也就是返回了空的意思; - 用于 if 判断:
None
等同于False
,配合 if 判断做相关处理; - 用于声明无初始内容的变量:定义变量,但暂时不需要变量有具体值,可以用
None
来代替。eg.name = None # 暂不赋予变量具体值
。
- 用于函数无返回值:不使用
global
:可以在函数内部声明变量为全局变量。
- tips
- 输出一个
print()
就相当于输出一个换行,想要实现输出不换行的功能,只需print(”hello”, end = “”)
即可。 range(num)
,range(num1, num)
,range(num1, num, step)
不包括num
本身。- 临时变量,在编程规范上,作用范围(作用域)只限定在 for 循环内部,如果在 for 循环外部访问临时变量,实际上是可以访问到的,但是在编程规范上不允许,所以不建议这么做。
- 输出一个
相关代码展示
有兴趣且有时间的话,大家可以挨个试试运行之后会输出什么哟!
# 查看变量存储的数据类型
x = 666
type(x)
# 转换为整数
int(x)
# 转换为浮点数
float(x)
# 转换为字符串
str(x)
# 取整除
x = 6
y = 4
x // y
# 取余
x % y
# 指数
x ** y
# 字符串的拼接
x = '我是'
print(x + '小蛮要')
# 注:"+"仅能拼接字符串。
# 字符串格式化
id = "xmy"
name = '我是 %s' % id
# % 表示占位,s 表示将变量变成字符串放入占位的地方。注:多个变量占位,变量要用括号括起来以逗号分隔,并按照占位顺序填入。
# 字符串快速格式化
name = "小蛮要"
high = 180 # 数字不能“0”开头
weigh = 180
print(f"我是{
name}, 身高{
high}, 体重{
weigh}")
# 获取键盘输入
print("Who are you?")
name = input()
print(f"俺知道啦!你是{
name}")
# or
name = input("Who are you?")
print(f"俺知道啦!你是{
name}")
# 获取一个随机数
import random
num = random.randint(1, 20)
print(num)
print("hello")
# 尝试 print() 参数作用
print("hellojhdiwhf", end="\t")
print("world")
print(f"hsd\t", "wiuefhiw")
print()
# while 练习:输出九九乘法表
i = 1
while i <= 9:
j = 1
while j <= i:
print(f"{
j}x{
i}={
j*i}", end="\t")
j += 1
i += 1
print("\n") # 输出一个 print() 就相当于输出一个换行
# 尝试 for() 语句
name = "yaohuizi"
for i in name:
print(i)
# for 练习:数数有几个你
text = "liurunissocute"
count = 0
for i in text:
if i == "u":
count += 1
print(f"一共有{
count}个u")
# 尝试 range() 语句
for i in range(10):
print(i)
# range 练习:1到100有几个偶数
count = 0
for i in range(1, 101):
if i % 2 == 0:
count += 1
print(f"从1到100一共有{
count}个偶数")
# for 练习:输出九九乘法表
for i in range(1,10):
for j in range (1,i+1):
print(f"{
j}x{
i}={
j*i}\t", end="")
print()
# 尝试 continue
for i in range(1,4):
print("first")
continue
for j in range(1,3):
print("second")
print("hhhhhh")
# 尝试 break
for i in range(1,4):
print("first")
break
for j in range(1,3):
print("second")
print("hhhhhh")
# 综合使用:发工资啦
import random
money = 10020
for i in range(1, 21):
score = random.randint(1, 10)
if score > 5:
money = money - 1000
print(f"向员工{
i}发放工资1000元,账户余额还剩{
money}元。")
else:
print(f"员工{
i},绩效分{
score},低于5,不发工资,下一位。")
if money < 1000:
break
print("没钱啦!下个月见!")
# len() 统计字符串长度
name = "yaohuizi"
length = len(name)
length
# 自行开发统计字符串长度的函数
str1 = "yaohuizi"
str2 = "liurun"
str3 = "loading"
count = 0
for i in str1:
count += 1
print(f"字符串{
str1}的长度是:{
count}")
def my_len(data):
count = 0
for i in data:
count += 1
print(f"字符串{
data}的长度是:{
count}")
my_len(str1)
my_len(str2)
my_len(str3)
# 函数开发演示:输出相关信息
def sayhi():
print("Hello!\nRun!")
a = sayhi()
print(a)
type(a)
# 函数的传入参数:依旧是加法
def add(x, y):
print(f"{
x}+{
y}={
x+y}")
add(1, 2)
add(5, 6)
# 函数的返回值:依旧是加法
def add(x, y):
x+y
return x+y
a = add(1, 2)
add(5, 6)
print(a)
print(add(5, 6))
# 函数的返回值:依旧是加法(和上面结果差不多嘛)
def add(x, y):
print(x+y)
add(1, 2)
add(5, 6)
# None 用于函数返回值
def sayhi2():
print("hello")
return None
result = sayhi2()
print(f"无返回值函数返回的内容是:{
result}")
print(f"无返回值函数返回的内容类型是:{
type(result)}")
# None 用于 if 判断
def check_age(age):
if age > 18:
return "success"
else:
return None
result = check_age(16)
if not result:
print("未成年禁止入内!")
# None 用于声明无初始值的变量
name = None
# 函数嵌套
def fun_b():
print("-2-")
def fun_a():
print("-1-")
fun_b()
print("-3-")
fun_a()
# global 在函数内部声明变量为全局变量
num = 100
def testa():
print(num)
def testb():
global num
num = 200
print(num)
testa()
testb()
print(num)
# ATM
money = 5000000
name = None
## 请客户输入姓名
name = input("请输入您的姓名:")
## 查询余额函数
def query(show_header):
if show_header:
print("--------查询余额--------")
print(f"{
name},您好,您的余额为:{
money}元。")
def save(x):
global money
money += x
print("----------存款----------")
print(f"{
name},您好,您存款{
x}元。")
query(False)
def get(x):
global money
money -= x
print("----------取款----------")
print(f"{
name},您好,您取款{
x}元。")
query(False)
def main():
print("---------主菜单---------")
print(f"{
name},您好,欢迎来到我的ATM,请选择操作")
print("查询余额\t[输入1]")
print("存款\t[输入2]")
print("取款\t[输入3]")
print("退出\t[输入4]")
return input("请输入您的选择:")
while True:
word = main()
if word == "1":
query(show_header=True)
continue
elif word == "2":
x = int(input("请输入您的存款金额:"))
save(x)
continue
elif word == "3":
x = int(input("请输入您的取款金额:"))
get(x)
continue
else:
print("白白")
break
# ATM 这不也对嘛,我就说嘛
money = 5000000
name = None
## 请客户输入姓名
name = input("请输入您的姓名:")
## 查询余额函数
def query():
print("--------查询余额--------")
print(f"{
name},您好,您的余额为:{
money}元。")
def save(x):
global money
money += x
print("----------存款----------")
print(f"{
name},您好,您存款{
x}元。")
print(f"{
name},您好,您的余额为{
money}元。")
def get(x):
global money
money -= x
print("----------取款----------")
print(f"{
name},您好,您取款{
x}元。")
print(f"{
name},您好,您的余额为{
money}元。")
def main():
print("---------主菜单---------")
print(f"{
name},您好,欢迎来到我的ATM,请选择操作")
print("查询余额\t[输入1]")
print("存款\t[输入2]")
print("取款\t[输入3]")
print("退出\t[输入4]")
return input("请输入您的选择:")
while True:
word = main()
if word == "1":
query()
continue
elif word == "2":
x = int(input("请输入您的存款金额:"))
save(x)
continue
elif word == "3":
x = int(input("请输入您的取款金额:"))
get(x)
continue
else:
print("白白")
break