【正在更新】【最新——黑马程序员Python教程笔记】课上笔记+案例源码+作业源码

发布时间:2024年01月21日

Python入门

第一章-基础

1.1字面量

1.2注释

"""
我是多行注释
本代码XXXX
"""
print("niuma")
# 我是单行注释【#开头 建议空一个格 再写注释内容】
print(666)

1.3变量

# 格式:变量名=变量值
# 定义一个变量,用来记录钱包余额
money = 50
# 通过print语句,输出变量记录的内容
print("钱包还有:",money)
money=money-10
print("买了冰淇淋花费10元,还剩余:",money,"元")

# 假设,每间隔一小时,输出一下钱包的余额
print("现在是下午1点,钱包余额剩余:",money)
print("现在是下午2点,钱包余额剩余:",money)
print("现在是下午3点,钱包余额剩余:",money)
print("现在是下午4点,钱包余额剩余:",money)
debug工具的使用

1.对着某行代码 打断点

2.下方一步步 步进

1.4数据类型

# 方式1:使用print直接输出类型信息
print(type("niuma"))
print(type(666))
print(type(11.111))
# 方式2:使用变量存储type()语句的结果
string_type=type("黑马")
int_type=type(666)
float_type=type(11.1111)

print(string_type)
print(int_type)
print(float_type)

# 方式3: 使用type()语句,查看变量中存储的数据类型信息
name="heima niuma"
name_type=type(name)
print(name_type)

1.5数据类型转换

# 数字转字符串
num_str=str(11)
print(type(num_str),num_str)

float_str=str(11.345)
print(type(float_str),float_str)
# -------------------------------------
# 字符串转数字
num=int("2222")
print(type(num),num)

num2=float("11.345")
print(type(num2),num2)

# 错误示例,想要将字符串转换成数字,必须要求字符串内的内容都是数字
# num3 =int("niuma zhongjiurong")
# print(type(num3),num3)

# 整数转浮点数
float_num=float(11)
print(type(float_num),float_num)

# 浮点数转整数[丢失精度] 转换的结果只有整数部分:11
int_num=int(11.345)
print(type(int_num),int_num)
错误示例
# 错误示例,想要将字符串转换成数字,必须要求字符串内的内容都是数字
num3 =int("niuma zhongjiurong")
print(type(num3),num3)

1.6标识符

变量的命名规范:

1.见名知意,简洁;

2.(多个单词)用下划线命名法

3.英文字母全小写

# 规则1:内容限定,只能使用中文,英文,数字,下划线
# 注意:不能以数字开头
# 错误的代码示范:name_!="张三"

# 规则2:大小写敏感
A="zhangsan1"
a="zhangsan2"

# 规则3:不可使用关键字 False True None class 等
# 错误的代码示范:def=1
Class=1

1.7运算符

# 算术(数学)运算符
print("1+1=",1+1)# 加
print("2-1=",1+1)# 减
print("3*3=",3*3)# 乘
print("4/2=",4/2)# 除
print("11//2=",11//2)# 取整除
print("9%2=",9%2)# 取余
print("2**3=",2**3)# 指数
# 赋值运算符
num=1+2*3
# 复合赋值运算符
# +=
num=1
num+=1 # num=num+1
print("num+=1:",num)

num-=1 # num=num-1
print("num-=1:",num)

num*=4
print("num*=4:",num)

num/=2
print("num/=2:",num)

num=3
num%=2
print("num%=2:",num)

num**=2
print("num**=2:",num)

num=9
num//=2
print("num//=2:",num)

1.8字符串的三种定义方式

# 单引号定义法
name='niuma'
print(type(name))

# 双引号定义法
name="niuma zhong"
print(type(name))


# 三引号定义法 写法与多行注释一样
name="""
niuma zhongjiur 
"""
print(type(name))
# 注意:用变量接收它,就是字符串
#      若不适用变量接收它,它就是多行注释

# 在字符串内包含双引号
name='"niuma"'
print(name)
# 在字符串内包含单引号
name="'niuma'"
print(name)
# 使用转义字符 \ 解除引号的效用
name="\"niuma\""
print(name)
name='\'niuma\''
print(name)

1.9字符串的拼接

# 字符串字面量之间的拼接
print("学IT来黑马"+"月兴过完")
# 字符串字面量和字符串变量的拼接
name="niuma"
address="jiangxi"
tel=40000008888
print("我是:"+name+",我的地址是:"+address+",my 电话是:"+tel)# 目前数字无法进行拼接


1.10字符串格式化

name="niuma"
message="nimmmmm:%s"% name
print(message)

# 通过占位的形式,完成数字和字符串的拼接
class_num =57
avg_salary=16781
message="python niuma  ,北京%s期,毕业平均工资:%s"%(class_num,avg_salary)
print(message)

name="船只博客"
setup_year=2006
stock_price=19.99
message="%s,成立于:%d,今天股价是:%f"%(name,setup_year,stock_price)
print(message)

1.11格式化的精度控制

num1=11
num2=11.345
print("数字11宽度限制5,结果是:%5d"%num1)
print("数字11宽度限制1,结果是:%1d"%num1)
print("数字11.345宽度限制7,小数精度2,结果是:%7.2f"%num2)
print("数字11.345宽度不限制,小数精度2,结果是:%.2f"%num2)

1.12字符串格式化方式2

name="江西财大"
set_up_yaer=1923
scale=2200.999999
jianjie='江西财经大学是一所财政部、教育部、江西省人民政府共建,以经济、管理类学科为主,法、工、文、理、艺术等学科协调发展的高等财经学府'
zongli_say="你们学校是所很好的学校"
zongli_name="温家宝"
# f:format
print(f"这里是{name},成立于:{set_up_yaer}年,占地面积:{scale}")
print(f"{jianjie}")
print(f"2008年2月,国务院总理{zongli_name}说:{zongli_say}")

1.13对表达式进行格式化

print("1*1的结果是:%d"%(1*1))
print(f"1*2的结果是:{1*2}")
print("字符串在python中的类型名是:%s"%type("字符串"))
练习
name="传智播客"
stock_code="003032"
stock_price=19.99
print(f"公司:{name},股票代码:{stock_code},当前股价:{stock_price}")
stock_price_daily_growth_facter=1.2
growth_days=7
finnal_price=stock_price*stock_price_daily_growth_facter**growth_days
print("每日增长系数是:%.1f,经过%d天的增长后,股票达到了:%.2f"%(stock_price_daily_growth_facter,growth_days,finnal_price))


第二章-条件语句

2.0input输入

name=input("你是谁?")# 给出提示信息,并用name接收【免去在前面写print手动提示】
print("我知道了,你是:%s"%name)
# 输入数字类型
num=input("请告诉我你的学号:")# input默认接收  成为字符串,哪怕是数字也会自动转为字符串
# 数据类型转换
num=int(num)# 需要数字类型,得自行进行类型转换
print("学号类型是:",type(num))


练习
user_name=input("请您输入用户名")
user_type=input("请您输入您的用户级别")
# 使用%占位符的方式输出
# print("您好:%s,您是尊贵的:%s用户,欢迎您的光临。"%(user_name,user_type))

# 使用f"{变量}"的方式输出
print(f"您好:{user_name},您是尊贵的:{user_type}用户,欢迎您的光临。")

2.1布尔类型和比较运算符

# 定义变量存储布尔类型的数据
bool_1=True
bool_2=False
print(f"bool_1变量的内容是:{bool_1},类型是:{type(bool_1)}")
print(f"bool_2变量的内容是:{bool_2},类型是:{type(bool_2)}")
# 比较运算符的使用
# ==,!=,>,<, >=, <=    注意:两个等号
# 演示进行内容的相等比较
num1=10
num2=10
print(f"10==10的结果是,{num1==num2}")
num1=10
num2=15
print(f"10!=15的结果是:{num1!=num2}")

name1="ittest"
name2="niuma"
print(f"ittest==niuma的结果是:{name1==name2}")

#演示  大于小于,大于等于,小于等于的比较运算
num1=10
num2=5
print(f"10>5的结果是:{num1>num2}")
print(f"10<5的结果是:{num1<num2}")

num1=10
num2=10
print(f"10>=10的结果是:{num1>=num2}")
print(f"10<=10的结果是:{num1<=num2}")

num1=10
num2=11
print(f"10<=11的结果是:{num1<=num2}")
print(f"10>=11的结果是:{num1>=num2}")

2.2if语句的基本格式

age=20
if age>=18: # 不需要括号,需要冒号
    print("我已经成年了")# 因归属于if的代码块,语句前需要  四个空格缩进
    print("步入大学生活")# 因归属于if的代码块,语句前需要  四个空格缩进
print("niumama")# 不归属if代码块,则不需要四个空格缩进,且会自动输出(无条件)
练习

2.3案例-成年人判断讲解

#age=input("请您输入年龄")# 获取键盘输入
#age=int(age)# 数据类型转换

age=float(input("请您输入年龄"))# 简化[获取输入+数据类型转换放在一起],注意使用float类型更佳

if age>=18:
    print("欢迎来到黑马儿童游乐园,儿童免费,成人收费。")
    print(f"您输入的年龄是:{age}")
    print("您已成年,游玩需要补票10元。")
print("祝您游玩愉快。")

2.4if-else组合判断语句

age=int(input("请输入你的年龄:"))
if age>=18:
    print("您已成年,需要买票10元。")
else:
    print("您未成年,玩吧,你免费的。")
print("游玩愉快哦!")
练习

2.5案例-我要买票吗

high=float(input("请输入您的身高(cm)"))
print("欢迎来到黑马动物园。")
if high>=120:
    print("您的身高超出120cm,游玩需要购票10元。")
else:
    print("您的身高未超出120cm,可以免费游玩。")
print("祝您游玩愉快。")

2.6if-else-else组合使用的语法

if int(input("请输入你的身高(cm):"))<120:
    print("身高小于120cm,可以免费。")
elif int(input("请输入你的VIP等级(1-5):"))>3:
    print("您是尊贵的VIP用户,级别大于3,可以免费")
elif int(input("请告诉我今天几号:"))==1:
    print("今天是1号免费日,可以免费")
else:# else这一套语句 可以省略不写,效果等同于3个独立的if判断
    print("不好意思,条件都不满足,需要买票10元。")

# 注意:elif 条件判断是互斥的, 从上至下

2.7案例-猜猜心里数字讲解

num=10
if int(input("请输入你猜想的数字"))==num:
    print("恭喜你,你猜对了")
elif int(input("猜错了,再猜一次:"))==num:
    print("猜对了")
elif int(input("不对,再猜最后一次:"))==num:
    print("猜对了")
else :
    print("sorry,全部猜错,我想的是10")

2.8判断语句的嵌套

# if int(input("你的身高是多少"))>120:
#     print("身高超出限制,不可以免费")
#     print("但是,如果VIP级别大于3,可以免费")
#
#     if int(input("你的VIP级别是多少:"))>3:
#         print("恭喜你,VIP级达标,可以免费")
#     else:
#         print("sorry 你需要买票10元")
# else:
#     print("欢迎小朋友免费游玩")
# python一键注释多行: Ctrl+/
age=14
year=1
level=1
if age>=18:
    print("你是成年人")
    if age<30:
        print("你的年龄达标了")
        if year>2:
            print("恭喜你,年龄+入职时间都达标,可以领取礼物")
        elif level>3:
            print("恭喜你,年龄+级别都达标,可以领取礼物")
        else:
            print("不好意思,尽管年龄达标,但是入职时间和级别都不达标。")


    else:
        print("不好意思,年龄大了")
else:
    print("不好意思,小朋友不可以领取。")

2.9判断语句综合案例

# 1.构建随机的数字变量
import random
num=random.randint(1,10)

guess_num=int(input("输入你要猜的数字"))


# 2.通过if判断语句进行数字的猜测
if guess_num==num:
    print("恭喜你,第一次就猜中了")
else:
    if guess_num>num:
        print("你猜大了")
    else:
        print("你猜小了")

    guess_num = int(input("输入你要猜的数字"))
    if guess_num==num:
        print("恭喜,第二次猜中!")
    else:
        if guess_num > num:
            print("你猜大了")
        else:
            print("你猜小了")

        guess_num = int(input("输入你要猜的数字"))

        if guess_num == num:
            print("恭喜,第三次猜中!")
        else:
            print("三次机会用完了,没有猜中")

第三章-循环

3.0补充

3.01输出不换行
# 输出不换行
print("hello",end='')
print("world",end='')
3.02制表符\t
# 制表符\t = tab键
print("haha\tbest")
print("hello\tworld")

3.1while循环的基础应用

i=0
while i<100:
    print(f"牛马,{i}")
    i+=1

3.2案例求1-100的和

sum=0
i=1
while i<=100:
    sum+=i
    i+=1
    print(f"1-100累加的和是:{sum}")

3.3while循环猜数字案例

# 获取范围在1-100的随机数字
import random
num=random.randint(1,100)
# 定义一个变量,记录总共猜测了多少次
count=0
# 通过一个布尔类型的变量,做循环是否继续的标记
flag=True
while flag:
    guess_num=int(input("请输入你猜的数字"))
    count+=1
    if guess_num==num:
        print("猜中了")
        # 设置为false就是终止循环的条件
        flag=False
    elif guess_num>num:
        print("猜大了")
    else:
        print("猜小了")
print(f"你总共猜测了{count}次")

3.4while循环的嵌套应用

# 外层,表白100天的控制
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}天,表白成功")

3.5while循环案例-九九乘法表

# 通过while循环输出9*9乘法表
# 定义外层循环
i=1
while i<=9:

    # 定义内层循环的控制变量
    j=1
    while j<=i:
        # 不换行,通过\t对齐
        print(f"{j}*{i}={j*i}\t",end='')
        j+=1
    i+=1
    print() # print 空内容 ,就是输出一个换行

3.6for循环的基础语法

name="nuimaa  a "
for x in name:
    # 将 name里的内容,挨个取出,赋予临时变量x
    # 就可以在循环体内对x进行处理
    print(x)
# 注意:无法定义循环条件, for 变量 in 被处理的数据。
# 注意:循环内的语句,需要有空格缩进!!!

3.7for循环案例-数一数多少字母a

name="itheima is a brand of itcast"
sum=0 # 定义一个变量来统计有多少个a
for x in name:
    if x=="a":
        sum+=1
print(sum)

3.8range语句

# range 语法1 range(num)
# range(10)# 0-9
# for x in range(10):
#     print(x)

# range 语法2 range(num1,num2)
# for x in range(5,10):# 从5开始,到10结束(不含10本身)
#     print(x)

# range 语法3 range(num1,num2,step)
# for x in range(5,10,2):# 从5开始,到10结束(不包含10本身),数字之间 间隔2,
#     print(x)

# for x in range(10):
#     print("送玫瑰花")
练习
cout=0
for x in range(1,100):
    if x%2==0:
        cout+=1

print(f"1到100(不含100本身)范围内,有{cout}个偶数。")

3.9for循环临时变量作用域

i=0# 注意,你要先定义好
for i in range(5):
    print(i)
print(i)# 若未先定义好i,则 规范上不建议

3.10for循环的嵌套使用

i=1
for i in range(1,101):# 1-100
    print(f"今天是向小美表白的第{i}天,加油坚持。")
    for j in range(1,11):
        print(f"给小美送的第{j}朵玫瑰花")
    print("小美我喜欢你")
print(f"第{i}天,表白成功")

3.11for循环打印九九乘法表

# range 语法2 range(num1,num2)
# for x in range(5,10):# 从5开始,到10结束(不含10本身)
#     print(x)
for i in range(1,10):
        for j in range(1,i+1):
            print(f"{j}*{i}={j*i}\t",end='')
        print()

3.12continue和break

#
# for i in range(1,6):
#     print("语句1")
#     continue
#     print("语句2")

# 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的循环中,break生效。不在循环,不能断别的循环
for i in range(1,6):
    print("语句1")
    for j in range(1,6):
        print("语句2")
        break
        print("语句3")

    print("语句4")

3.13循环综合案例

# 定义账户余额变量
sum=10000
# for循环对员工发工资
for i in range(1,21):
    import random                      # 随机生成1-10 要放入for循环中
    num = random.randint(1, 10)    # 注意!随机生成1-10 要放入for循环中

    if num<5:
        print(f"员工{i},绩效分{num},低于5,不发工资,下一位。")
        continue# continue跳过发放

    if sum>=1000:
        sum-=1000
        print(f"向员工{i}发放工资1000元,账户余额还剩余{sum}元")
    else:
        print("工资发完了,下个月领取吧。")
        break# break结束发放
文章来源:https://blog.csdn.net/m0_57495651/article/details/135724763
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。