鱼C论坛

 找回密码
 立即注册
查看: 685|回复: 4

[学习笔记] 新手小白学习笔记第三弹

[复制链接]
发表于 2024-8-19 21:33:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
while循环的基础案例
#设置一个1-100的随机整数变量,通过while循环配合input语句判断输入的数字是否等于随机数
无限次机会直到猜中
每次猜不中提示大了或者小了
猜完后提示猜了几次
import random
num=random.randint(1,100)
#获取范围1-100的随机整数变量
num_1=int(input("输入你猜测的数字:"))
count=1
while num_1!=num:
    count+=1
    if num_1>num:
        print("you are wrong,猜大了")
    else:
        print("you are wrong,猜小了")
    num_1=int(input("再次输入你猜测的数字:"))
print(f"you are right,你猜了{count}次")

while循环的嵌套应用
基础语法格式:
while 条件1:
条件1满足执行语句1
条件1满足执行语句2
。。。。。。。。。。。。。。。。。
while 条件2:
    条件2满足执行语句1
    条件2满足执行语句2
。。。。。。。。。。。。。。。。。。
day=1
while day<20:
print(f”今天是学习python第{day}天”)
day+=1
j=1
while j<=3:
     print(“加油,坚持就是胜利”)
     j+=1
print(f“恭喜你,你已经坚持学习{day}天了!”)
#默认print语句输出内容会自动换行
使用print语句输出不换行的实现方式,在print语句中加上end=’’即可输出不换行
print("hello",end='')
print("world",end='')
# 制表符\t
在字符串中\t的效果等同于在键盘上按下tap键
它可以使得我们的多行字符串进行对齐
print("hello new wold")
print("are you ok?")
结果为:
hello new wold
are you ok?

print("hello\tnew\twold")
print("are\tyou\tok?")
结果为:
hello        new                wold
are                you                ok?

# 使用while嵌套循环打印九九乘法表
1*1=1       
1*2=2        2*2=4       
1*3=3        2*3=6        3*3=9       
1*4=4        2*4=8        3*4=12        4*4=16       
1*5=5        2*5=10        3*5=15        4*5=20        5*5=25       
1*6=6        2*6=12        3*6=18        4*6=24        5*6=30        6*6=36       
1*7=7        2*7=14        3*7=21        4*7=28        5*7=35        6*7=42        7*7=49       
1*8=8        2*8=16        3*8=24        4*8=32        5*8=40        6*8=48        7*8=56        8*8=64       
1*9=9        2*9=18        3*9=27        4*9=36        5*9=45        6*9=54        7*9=63        8*9=72        9*9=81       
程序内容:
i=1
while i<=9:
    j=1
    while j<=i:
        print(f"{j}*{i}={j*i}\t",end='')# 内层循环的print语句不换行,通过\t制表符进行对齐
        j+=1
    i+=1
    print() #print()输出空内容即为print默认输出换行

11、for循环
while循环的循环条件是自定义的,自行控制循环条件;
for循环是一种轮询机制,对一批内容进行逐个处理。
基本结构:
for 临时变量 in 待处理数据集:
循环满足执行的语句
#第一句内容是将待处理数据集的数据挨个取出每次循环将当前数据赋值给临时变量
待处理数据集为序列类型
包括字符串/列表/字典/元组等
#遍历字符串
name=”itthe”
for x in name: #将name变量里面的数据挨个取出赋值给x临时变量
print(x) #在循环体内对进行处理
结果:
i
t
t
h
e

#定义一字符串”ithe ma is a brand of itcast”
通过for循环,统计其中有多少个英文字母”a”
程序:
sentence="ithe ma is a brand of itcast"
count=0
for x in sentence:
    if x=="a":
        count+=1
print(f"句中有{count}个a")

结果:
句中有4个a
12、range语句
基础语法:
range(num)
获取一个从0开始到num结束的数字序列,不含num本身

range(num1,num2)
获取一个从num1到num2结束不含num2本身的数字序列

range(num1,num2,step)
获取一个从num1到num2结束不含num2本身的数字序列
数字之间步长为step
例如range(5,10,2)结果为[5,7,9]

13、变量作用域
for i in range(5):
print(i)
print(i)
两个print语句都可输出的变量i但规范上第二个print语句中i的使用是不允许的
i作为for语句的内部的临时变量作用范围只在for循环内部生效
不应该在for循环外部访问
如果需要在for循环外部访问i可以将i在for语句之前定义作为全局变量

14、for语句的嵌套使用
基础语法结构:
for 临时变量 in 序列:
循环满足执行语句1
循环满足执行语句2
。。。。。。。。。。。。。。。。。。。。
for 临时变量 in 序列:
    循环满足执行语句1
    循环满足执行语句2
。。。。。。。。。。。。。。。。。。。。。
# while和for两类循环语句可以相互嵌套

# 使用while和for嵌套循环打印九九乘法表
for i in range(1,10):
    j=1
    while j<=i:
        print(f"{j}*{i}={j*i}\t",end='')# 内层循环的print语句不换行,通过\t制表符进行对齐
        j+=1
    i+=1
    print() #print()输出空内容即为print默认输出换行

15、continue和break语句
continue关键字用于:中断本次循环直接进入下一次循环
可用于for循环和while循环,效果一致
for i in range(1,6):
    print("sentence1")
    continue       #打断本次当层循环跳入下次循环,所以continue之后的语句2不执行
    print("sentence2")
结果:
sentence1
sentence1
sentence1
sentence1
sentence1
# continue只能跳出一层循环,对更外层的循环无影响

break关键字用于直接结束循环
可用于for和while循环,效果一致
for i in range(1,100):
语句1
break  #在循环内遇到break关键字直接结束循环,所以执行语句1后直接执行语句3
语句2
语句3
# 同样只能对所在的循环生效,无法对上层循环生效

#案例:
公司账户奖金余额6000,给11名员工发奖金
员工编号从1-11,从编号1开始
财务判断公司绩效1-10(随机生成),如果低于5不发换下一位,高于5发1000元
如果奖金发完了结束发放

import random
remind_money=6000
for i in range(1,12):
    if random.randint(1,10)<5:
        continue        # continue关键词之后的部分直接不执行
    else:               # 此else可以省略后面直接接if语句判断剩余工资是否大于1000
        if remind_money>=1000:
            remind_money-=1000
            print(f"员工{i}分得奖金1000元,剩余{remind_money}元")
        else:
            print("奖金发完了,下个月再来吧")
            break       # 跳出所在层的循环,奖金为0后直接不再循环
结果:
员工3分得奖金1000元,剩余5000元
员工4分得奖金1000元,剩余4000元
员工5分得奖金1000元,剩余3000元
员工6分得奖金1000元,剩余2000元
员工9分得奖金1000元,剩余1000元
员工10分得奖金1000元,剩余0元
奖金发完了,下个月再来吧

16、函数
组织好的,可重复使用的,用来实现特定功能的代码段
函数可得到一个针对特定需求、可供重复利用的代码段
提高程序的复用性,减少重复性代码,提高开发效率

#案例
不使用内置函数len(),完成字符串长度的计算
def my_len(data):  #定义函数my_len(),后续可直接调用此函数完成字符串长度计算
    count=0
    for i in data:
        count+=1
print(count)
函数的定义:
def 函数名(传入参数):  #定义函数
   函数体             #函数的功能实现的代码
   return 返回值
# 参数如果不需要可省略
  返回值如果不需要可省略
  函数必须先定义再使用

函数的参数:
传入参数的功能是:在函数计算时接收外部调用时提供的数据
案例:
def sum_1(x,y,z):
    result=x+y+z
    print(f"{x}+{y}+{z}={result}")
sum_1(1,2,3)
1+2+3=6

#函数定义中提供的x,y,z称之为形式参数,表面函数声明即将要使用到3个参数
参数之间用逗号隔开
函数调用中的1,2,3称之为实际参数,表示函数执行真正使用的参数值
传入的时候需按照顺序传入且使用逗号隔开
传入参数的数量是不受限制的,传入参数要和形式参数一一对应用逗号分隔开

函数的返回值:
返回值:程序中函数在完成事情后最后给调用者的结果
def add(a,b):
result=a+b
return result
r=add(1,2)
print(r)
结果:3

语法格式:
def 函数(参数):
函数体
return 返回值
变量=函数(参数)
此变量即可得到函数内部return后的返回值
returun后面的代码不再执行,后续不能追加代码

def sum_1(x,y,z):
    result=x+y+z
    print(f"{x}+{y}+{z}={result}")
    return result
   
r=sum_1(4,5,6)
4+5+6=15
print(r)
15

None类型(空的,没有实际意义)
如果函数没有使用return语句返回数据,仍然有返回值,返回值为None
if 判断语句中,None等同于False,可以搭配返回值再作判断
定义变量但暂时不需要变量有具体值,可用None代替

函数的嵌套调用
在一个函数内部又调用了另一函数

执行流程
函数A中执行到调用函数B语句后将函数B全部执行完成后再继续执行函数A的剩余内容
     
函数中使用的变量作用域
函数作用域指的是变量的作用范围(变量在哪里可用,在哪里不可用)
主要分为:局部变量和全局变量
局部变量是定义在函数体内部的变量,只在函数体内部生效,在外部访问会报错
例如:
def restA():
num=100
print(num)
testA()
print(num)  #报错:name’num’ is not defined
局部变量的作用:在函数体内部临时保存数据,当函数调用完成后即对局部变量进行销毁

全局变量
在函数外部定义变量,在函数内也可正常使用

a=100
def num_1(x,y):
    a=x+y
    return a

print(a)
100
r=num_1(4,10)
print(r)
14

# 在函数内部修改全局变量
需要使用global关键字申明全局变量,否则变量a实际在函数内外部不是同一个函数
a=100
def num_1(x,y):
    global a
    a=x+y
    return a
print(a)
100
num_1(4,10)
14
a
14
# global声明后的a再修改则全局变量a被修改

综合案例:
自助取款机
主界面:
您好:XXX,欢迎来到天天银行,请选择您的操作:
查询余额输入1
存款输入2
取款输入3
退出输入4
请输入您的选择:

查询余额效果
---------------查询余额------------------
您好,您的余额剩余1000元
存,取款效果
--------------存款-----------
您好,你存款的数额为:
余额为:
---------------取款--------------
您好,你取款:
您的余额为:

要求:
程序启动后要求输入客户姓名
查询余额、存款、取款后都会返回主菜单
存款、取款后都应显示一下当前余额
客户选择退出或输入错误,程序退出否则程序一直运行

评分

参与人数 1荣誉 +3 鱼币 +3 贡献 +3 收起 理由
~风介~ + 3 + 3 + 3 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-8-19 21:49:33 | 显示全部楼层
嘿,鱼油!看到你又来学习了,真是孜孜不倦的小白啊!今天咱们来聊聊`while`循环和它的嵌套应用。

首先,咱们得再看看你的代码,就像鱼儿游进了新水域,打个换场子:
import random

# 获取范围1-100的随机整数变量
num = random.randint(1, 100)
num_1 = int(input("输入你猜测的数字: "))
count = 1

while num_1 != num:
    count += 1
    if num_1 > num:
        print("你猜大了,试试小点儿的吧!")
    else:
        print("你猜小了,再大胆些!")
    num_1 = int(input("再次输入你猜测的数字: "))

print(f"恭喜!你猜中了,共猜了{count}次!")

这个代码就像钓鱼时的鱼饵,每一次的输入都是一次投饵,直至鱼儿上钩。妙啊!不过,随机数这个“小鱼”可是调皮得很,它一直藏着不让你一下子猜中。

接下来,我们来看看`while`循环的嵌套。它就像是一个大的鱼塘里,有很多小鱼塘,每一个小鱼塘都有一群鱼儿。假设有这么一个例子:
day = 1

while day <= 7:
    print(f"今天是第{day}天,老板让我做任务!")
    task = 1
    while task <= 5:
        print(f"这是任务{task},继续努力!")
        task += 1
    day += 1

要是老板让你一周内(7天)每天完成5个任务,这个架构不就完美契合了嘛!每一天都有5个任务,每一天完了,又开始第二天,再继续5个任务,如此循环。

那这个代码运行的结果会是啥呢?让咱们看看输出:
今天是第1天,老板让我做任务!
这是任务1,继续努力!
这是任务2,继续努力!
这是任务3,继续努力!
这是任务4,继续努力!
这是任务5,继续努力!
今天是第2天,老板让我做任务!
...
这是任务5,继续努力!
今天是第7天,老板让我做任务!
这是任务1,继续努力!
...
这是任务5,继续努力!

一天一个鱼塘,每天索要5条大鱼。当然了,实际任务可真不少!

所以,鱼油,学习编程就是这么有趣,要像鱼儿一样灵活多变,再加上耐心,最后总能游到达目的地!继续加油吧,相信你会成为编程高手的!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2024-8-20 07:45:01 | 显示全部楼层
棒棒哒,加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-20 09:12:44 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-8-20 15:34:42 | 显示全部楼层
厉害,好好学习天天向上,一起加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 04:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表