黑马程序员-python课程笔记(26-50p)

# 表达式格式化
'''
print(f'1*1这道计算题答案是{1*1}')
print('1*1这道计算题答案是%d'%1*1)
#这个知识点内容较简单,大致就是说:如果不需要存储变量,直接用这种方式也可以
'''
# 股价计算小程序(p26课后)
'''
name = "传智播客"
stock_price = 19.99
stock_code = "003032"
stock_price_daily_growth_factor = 1.2
growth_days = 7
print(f'公司:{name},股票代码:{stock_code},当前股价:{stock_price}')
print("每日增长系数是:%.1f,经过%d天的增长后,股价达到了:%.2f" % (stock_price_daily_growth_factor,growth_days , stock_price * stock_price_daily_growth_factor ** growth_days))
#  实际做题时,在第二句中的出现了报错 TypeError:格式字符串的参数不足。查完资料发现是字符串格式输出了一些问题
#  原因是如果需要写入多个占位时,后面应写成%( 第一个,第二个,......)
'''
# input语句 从键盘读取输入
'''
print("请告诉我你是谁?")
name=input()
print("I know, you are:%s" %name)
# 第一行的print提示也可以省略!
name=input("请告诉我你是谁")
print("噢原来你是:%s" %name)
# print("噢原来你是:%d" %name)可以尝试在这里用%d占位发现会报错 通过type查看可知 无论你输入的时什么类型,input通通看成字符串
'''
# 欢迎登录小程序(p29课后)
'''
user_name=input() #获取用户名称
user_type=input() #获取用户类型
print("您好,%s, 您是尊贵的:%s 用户,欢迎您的光临"%(user_name,user_type))
'''
# 布尔类型
'''
# 定义变量储存布尔类型的数据
bool_1=True
bool_2=False
print(f"bool_1变量的内容是:{bool_1},类型是{type(bool_1)}")
print(f"bool_2变量的内容是:{bool_2},类型是{type(bool_2)}")
#比较预运算符
num_1=1
num_2=2
print(f'1==2的结果是:{num_1==num_2}') #同样也可判断字符串是否相等
'''
# 判断语句
'''
"""if 条件 :
    条件成立要做的事情   #缩进四空格(tab)"""
age = 30
if age >= 18:
    print("我成年了 我%d岁了" % age)
print("时间过的好快!")    #无缩进就和if同级
'''
# 判断语句_课后练习(成年人判断)
'''
age=input("欢迎来到儿童游乐园,儿童免费,成人收费\n请输入你的年龄:")
age=int(age)    #注意input输入的是字符串 为了后续能和18进行比较 需要转换格式
if age>=18:
    print("您已成年,游玩需补票10元。")
print("祝您游玩愉快。")
'''
# 判断语句_if else语句
'''
age = input("欢迎来到儿童游乐园,儿童免费,成人收费\n请输入你的年龄:")
age = int(age)
if age >= 18:
    print("您已成年,游玩需补票10元。")
else:
    print("你还未成年,可以免费游玩")
print("祝您游玩愉快。")
'''
#判断语句_if else语句_课后练习(我要买票吗)
'''
height=input("欢迎来到动物园。\n请输入你的升高(cm):")
if int(height)>120:
    print("你的身高超出120cm,游玩需要补票10元。")
else:
    print("您的身高未超过120cm,可以免费游玩。")
print("祝您游玩愉快。")
'''
# 判断语句_if elif else语句
'''
#和上节课大差不差 可以在else前在加入多个elif的判断语句 不同的是这些判断语句后面都需要加上判断条件
#判断的顺序是if->elif1->elif2 if成立就不执行elif1,后面同理
height=input("欢迎来到动物园。\n请输入你的升高(cm):")
vip_leval=int(input("输入您的vip等级:"))
if int(height)<120:
    print("您的身高未超过120cm,可以免费游玩")
elif vip_leval >3:
    print("尊贵的vip 您可以免费游玩")
else:
    print("不好意思 您所有条件都不满足 滚去补票")
print("祝您游玩愉快。")
'''
# 判断语句_if elif else语句_课后练习(猜数字)
'''
number=16 #随机设定一个数字
number_guess1=int(input('请输入第一次猜想的数字:'))
if number_guess1==number:
    print("恭喜一次就猜对啦!")
elif int(input('不对,再猜一次:')) ==number:
    print("恭喜第二次就猜对啦!")
elif int(input('不对,最后再猜一次:'))==number:
    print("恭喜猜对!")
else:
    print(f"sorry,全猜错啦,我想的是:{number}")
'''
#嵌套判断
'''
#少用!少用!少用!
#重点是注意缩进和逻辑
#例子:公司中18-30的成年人可以领取礼物,同时需要是入职时间>2,级别>3
age=18
year=1
leval=4
if age>=18:
    print("你是成年人")
    
    if age<30:
        print("你的年龄达标!")
        if year>2:
            print("恭喜,年龄和入职时间都满足,可以领取")
        elif leval>3:
            print("恭喜,年龄和级别达标,可以领取")
        else:
            print("不好意思,年龄达标,但入职时间和级别都不达标")
    else:
        print("不好意思,年纪太大了")
else:
    print("小朋友不能领取")
'''
#判断语句综合练习(猜数字)
'''
import random
num=random.randint(1,10)
guess1=int(input("第一次机会:"))
if guess1==num:
    print("恭喜第一次就猜对了")
elif guess1!=num:
    if guess1>num:
        print("猜大了")
    elif guess1<num:
        print("猜小了")

    guess2=int(input("第二次机会:"))
    if guess2 == num:
        print("恭喜第二次就猜对了")
    elif guess2 != num:
        if guess2 > num:
            print("猜大了")
        elif guess2 < num:
            print("猜小了")

    guess3=int(input("第三次机会:"))
    if guess3 == num:
        print("恭喜第三次猜对了")
    else:
        print("没有猜中噢")
#其实通过案例是可以发现嵌套不是很方便且容易出现逻辑的错误
'''
#while循环
'''
i=0
while i<100:
    print("evering will be OK")

    i+=1
    #print(i)
'''
#while循环_课后练习(1-100求和)
'''
i=1
num=0
while i<=100:
    num = num + i
    i+=1
print(i,num)
'''
#while循环_课后练习(猜数字)
'''
import random
num=random.randint(1,100)
print(num)
#偷看一眼
guess_num=int(input("输入猜测的数字:"))
i=1
while guess_num!=num:   #如果猜错就进入while循环
    if guess_num>num:
        print("太大了")
    else:
        print("太小了")
    guess_num=int(input("输入猜测的数字:"))
    i+=1
print(f"猜对了 就是{num}")   #跳出while循环时候输出,或者没进入循环也会输出
print("总共猜了%d次"%i)
'''
#while循环的嵌套_课后练习(九九乘法表)
'''
# 基于缩进的嵌套
# \t表示对齐,表示补齐到8个长度

print('xx', end='')
print('yy') #可以不换行输出 使输出都在一行

i=1
while i<=9:
    #定义内层循环的控制变量
    j = 1
    while j<=i:
        print(f'{j} * {i} ={j*i}\t',end='')
        j+=1

    i+=1
    print()     #输出空内容 也就是换行
'''
#for循环
'''
#遍历序列类型 比如 字符串,列表 元组等
#定义字符串name
name='pengyuyan'
#for循环处理字符串
for x in name: #x是临时变量 遍历name 和c语言的for循环完全不一样
    print(x)
'''
#for循环_课后练习(数字符串中有几个a)
'''
name='ithema is a brand of itcast'
num=0
for x in name:
    if x=='a':
        num+=1
print("name中共有:%d个字母a" %num)
'''
#range 语句
'''
#语法1
# range(num)  #num 填数字,这段语句代表获取一个从0开始到num(不包含num)的数字序列
range(10)
for x in range(10):
    print(x)
#语法2
# range(num1,num2)    #获得一个从num1到num2的数字序列(不包含num2本身),其实2和3本质一样,不写步长默认就是1
range(5,10)
for x in range(5,10):
    print(x)
#语法3
# range(num1,num2,step)#获得一个从从num1到num2的数字序列(不包含num2本身) 数字间的步长是step
range(1,10,2)
for x in range(1,10,2):
    print(x)
'''
#range 语句_课后练习(有几个偶数)
'''
num=0
for x in range (1,100):
    if x %2==0:
        num+=1
print(num)
'''
#理解临时变量
'''
x=1         #range后x会被覆盖
for x in range(3):
    print(x)
print()
print(x)    #不要这么做,容易造成错误,也影响可读性
'''
#for循环嵌套
'''
#!!!同之前的嵌套,重点就是用用好缩进

i=0
for i in range(1,101):
    print(f"今天是学习的第{i}天,加油")

    #嵌套
    for j in range(0,25):
        print(f'学习到今天的{j}点了')
    print('休息')

print(f'在{i}天时候学会啦')

#while和for俩个相互嵌套都行
'''
#再次试试输出九九乘法表
'''
for x in range(1,10):
    for y in range(1,x+1):
        print(f"{y}*{x}={x*y}\t",end='')
    print()
'''
#breake和continue
'''

##循环中断语句continue
# for i in range(1,6):
#     print(1)
#     continue
#     print(2)    #这句没有被执行,因为continue代表结束本次循环进入下一次

##continue的嵌套(只能对自己所在的循环起作用)
# for i in range(1,6):
#     print(1)
#     for j in range(1,6):
#         print(2)
#         continue
#         print(3)
#
#     print(4)

#break直接跳出循环
# for i in range(1,101):
#     print(1)
#     break
#     print(2)
# print(3)

#break的嵌套(同样只能对自己所在的循环起作用)
for i in range(1,6):
    print(1)
    for j in range(1,100):
        print(2)
        break   #原本内层循环应该执行99次,但break跳出了循环
        print(3)
    print(4)
'''
#循环练习案例(p50发工资)
'''
#________写了一个 但是很奇怪,我希望是余额为0之后输出”工资发完了“然后break 但是一直修改无法做到
#————————之后发现在进入for循环前增加一个if判断total的值就可以实现上面的需求

import random

total = 10000  # 账户余额total

# 用for循环员工1-20
for x in range(1, 21):
    num = random.randint(1, 10)
    if num < 5:
        print(f"员工{x}, 绩效分{num}, 不发工资,下一位")
        continue
    elif total >= 1000:
        total -= 1000
        print(f"向员工{x}发放工资1000元,账户余额还剩{total}")
    else:
        print("工资发完了,账户余额不足")
        break
    # 在每次发放工资后检查total是否足够支付后续员工的工资
    if total < 1000:
        print("还有剩余员工,但账户余额不足,停止发放工资")
        break
'''

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值