Python学习记录

#因为后续研究生方向学习需要,方便自己查看,也顺便网友参考,写一下自己通过黑马程序员视频的学习记录,不定期更新

Python学习记录

任何时候都记得空格!!!

官方网站 python.com

Print(“xxx”)-->显示xxx 注意程序编写必须是英文print(xxx1,xxx2,xxxN)

Pycharm创建工程:New Project-->选择工程位置,输入工程名字,选择解释器

创建python文件:右键点击工程-->输入文件名

Print语句不换行:后面加end=’ ’ 制表符\t 可以自己对齐字符串

字面量:1.整数 2.浮点数 3.字符串(“xxx”,xxx为汉字数字字母和符号) 上述字面量都可以直接打出

注释:

单行注释 # 开头 # 右边 规范:#和注释空一格

多行注释 “””注释内容“””

变量:存储数据 变量名=变量值,变量值可以改变

变量命名明了,简洁;多个单词用下划线分隔

练习:

money = 50

ice = 10

cola = 5

print("当前钱包余额:", money, "元")

money = money - ice - 2*cola

print("购买冰淇淋花费", ice, "元")

print("购买可乐花费", cola*2, "元")

print("最终,钱包剩余", money, "元")

数据类型

type()的使用:

  1. print(type(数据)) 直接输出
  2. 用变量存储
  3. 也可以查找变量数据类型

数据类型转换:

Int(x)-->转化为整数 float(x)-->转化为浮点数 str(x)-->转化为字符串

万物可转字符串,但字符串的内容必须是数字才能转整数和浮点数

浮点数转整数会丢失精度

标识符

规则:内容限定 只许出现英文,中文,数字,下划线 尽量别用中文 数字不可以开头

大小写区分

不可以使用关键字

运算符:

加 +; 减 -; 乘 *; 除 / ; 整除 //; 取余 % ; 指数 **;

复合赋值运算符:

c+=a --> c= c+a

c-=a-->c=c-a

c*=a-->c=c*a

c/=a-->c=c/a

c%=a-->c=c%a 

c**=a-->c=c**a

c//a-->c=c//a

字符串拓展:

三种定义方式: 单引号 ‘’; 双引号 “”; 三引号 “”” “””(支持换行操作)

转义字符 \’ 解除’的效用

字符串的拼接:字面量和变量;变量和变量 用加号连接就可以 只能适用字符串本身

字符串格式化:%s其中%表示占位,s表示将变量变成字符串放入占位的地方,多个变量占位,变量要用括号括起来并按照占位的顺序填入

%d 转为整数并占位 %f转化为浮点数并占位

name = "今天"

month = 3

date = 16

time = 14.09

message = "%s,是%d月%d日%f" % (name, month, date, time)

print(message)

格式化的精度控制:m.n m控制宽度,不足时空格补齐,m小于数字本身宽度时不生效;

.n控制小数点精度,会进行四舍五入

name = "今天"

month = 3

date = 16

time = 14.09

message = "%s,是%d月%d日%.2f" % (name, month, date, time)

print(message)

快速格式化:f”内容{变量}” 不限数据类型,不做精度控制

name = "Lin"

born_year = 2001

weight = 71.2

print(f"我叫{name},我出生于{born_year},我的体重是{weight},kg")

表达式的格式化:无需使用变量进行数据存储的时候,可以直接格式化表达式,简化代码

name = "传智播客"

stock_price = 19.99

stock_code = "003032"

stock_price_daily_growth_factor = 1.2

growth_days = 7

final_price = stock_price*(stock_price_daily_growth_factor**growth_days)

message = "经过7天的增长后,股价达到了:%.2f" % final_price

print(f"公司:{name},股票代码:{stock_code},当前股价:{stock_price},"

      f"每日增长系数:{stock_price_daily_growth_factor}", message)

数据输入

Input() 默认接受类型为字符串,需要其他类型需要字符串转换

user_name = input("你的用户名")

user_type = input("你的用户类型")

print(f"您好:{user_name},您是尊贵的:{user_type},欢迎您的光临。")

Python判断语句

布尔类型和比较运算符:

布尔类型:True/False

== 是否相等 != 是否不相等

> 左侧大于右侧 < 左侧小于右侧

>= 左侧大于等于右侧 <= 左侧小于等于右侧

If语句的基本格式:

:和四个空格的缩进 很重要!

print("欢迎来到黑马儿童游乐场,儿童免费,成人收费。")

age = int(input("请输入你的年龄:"))

if age >= 18:

    print("您已成年,游玩需要补票10元。")

print("祝您游玩愉快。")

If else 语句

同C语言逻辑 :和四个空格的缩进 很重要!

print("欢迎来到黑马动物园。")

height = int(input("请输入你的身高(cm):"))

if height >= 120:

    print("您的身高超过120cm,游玩需要购票10元")

else:

    print("您的身高未超出120cm,可以免费游玩。")

print("祝您游玩愉快!")

If elif esle组合语句

同C语言else if :和四个空格的缩进 很重要!

Elif可以写多个 条件是互斥的

可以将input写入条件里

num = 2

if int(input("请输入第一次猜想的数字:")) == num:

    print("猜对了,我想的是", num)

elif int(input("猜错了,再猜一次吧:")) == num:

    print("猜对了,我想的是", num)

elif int(input("猜错了,再猜一次吧:")) == num:

    print("猜对了,我想的是", num)

else:

    print("猜错了,其实我想说的是", num)

判断语句的嵌套

嵌套通过空格缩进,来看层次关系

import random

num = random.randint(1, 10)

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:

    if guess_num > num:

        print("猜大了")

    else:

        print("猜小了")

guess_num = int(input("再次输入你要猜测的数字:"))

if guess_num == num:

    print("恭喜你,第三次猜中了")

else:

    print("对不起,三次都没有猜中")

while循环:

While 条件: 注意:和空格缩进 设置终止条件

While条件中,只要满足条件,循环里的每个语句都会被执行

i = 1

num = 0

while i <= 100:

    num = i+num

    i += 1

print(num)

import random

num = random.randint(1, 100)

count = 0

flag = True

while flag:

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

    count += 1

    if guess_num == num:

        print("恭喜你猜对了")

        flag = False

    else:

        if guess_num < num:

            print("猜小了")

        else:

            print("猜大了")

print(f"你总共输入了{count}次")

i = 1

while i <= 9:

    j = 1

    while j <= i:

        print(f"{j}*{i}={j*i}\t", end=' ')

        j += 1

    i += 1

    print()

for循环:

for 临时变量 in 待处理数据集(序列)

 循环满足条件时执行的代码

注意点:被动的从数据集中取数据进行处理 没有循环条件 空格缩进!

嵌套的注意条件与while相同

name = "itheima is a brand of itcast"

b = 0

for x in name:

    if x == "a":

        b += 1

print(f"itheima is a brand of itcast 中共含有{b}个字母a")

range语句:

range(num) 从0到num的序列,不包含num本身

range(num1,num5) 从num1开始到num2结束,不包含num2

range(num1,num2,step) step为步长 不包含num2本身

num = 100

count = 0

for x in range(1, num):

    if x % 2 == 0:

        count += 1

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

for i in range(1,10):

    for j in range(1,i+1):

        print(f"{j}*{i}={j*i}\t",end=' ')

    print()

Continue、break语句:

Continue:在for和while循环中,直接结束当前循环,进入下一轮循环

Break:直接结束循环

account = 10000

for i in range(1, 21):

    import random

    score = random.randint(1, 10)

    if score < 5:

        print(f"员工{i}的绩效分是{score},不满足,不发工资,下一位")

        continue

    if account >= 1000:

        account -= 1000

        print(f"员工{i},满足条件发放工资1000,公司余额:{account}")

    else:

        print("余额不足,不发了")

        break

函数:

格式 def 函数名(传入参数):

函数体

return 返回值

注意:参数可以省略,不是必须的

返回值如果不需要,也可以省略

函数必须先定义后使用

规范:类定义或者函数定义后面有两个空行

def show_code():

    print("欢迎来到黑马程序员!"

          "请出示您的健康码以及72小时核酸证明")

show_code()

函数的参数 可以没有也可以有无数个

函数的返回值:

可以调用返回值

def add(a, b):

    result = a+b

    return result

r = add(5, 6)

print(f"{r}")

None值:

意义:无意义的,空的

函数如何返回:1. return None 2. return

使用场景:1.函数返回值 2.if判断-->相当于False 3.变量定义--> 在变量初期不想增加操作时,可以使变量= None

变量作用域:

全局变量:函数内外都起作用,不会被函数内影响而改变

局部变量:只在函数内部起作用的变量

global-->全局变量变为局部变量,可以被修改

money = 5000000

name = input("请输入你的名字:")

# 全局变量定义结束

def query(show_title):

    if show_title:  # 可以通过if条件决定标题的输入

        print("--------余额--------")

    print(f"{name},您好,您的余额剩余:{money}")

# 查询余额函数

def save_money(num):

    print("--------存款--------")

    global money

    money += num

    print(f"{name},您好,您存款成功{num}元。")

    query(False)

# 存款函数

def get_money(num):

    print("--------取款--------")

    global money

    money -= num

    print(f"{name},您好,您取款成功{num}元。")

    query(False)

# 取款函数

def main():

    print("--------主菜单--------")

    print(f"{name},您好,欢迎来到黑马银行ATM,请选择操作:")

    print("查询余额\t[输入1]")

    print("存款\t\t[输入2]")

    print("取款\t\t[输入3]")

    print("退出\t\t[输入4]")  # 制表符对齐

# 主菜单函数

while True:  # 无限循环

    main()

    keyboard_input = input("请输入您的操作:")

    if keyboard_input == "1":

        query(True)

        continue  # 跳出当前循环,执行下一个循环

    elif keyboard_input == "2":

        num1 = int(input("您想要存多少钱:"))

        save_money(num1)

        continue  # 跳出当前循环,执行下一个循环

    elif keyboard_input == "3":

        num1 = int(input("您要想取多少钱:"))

        get_money(num1)

        continue  # 跳出当前循环,执行下一个循环

    else:

        print("程序结束了,感谢您的信任!")

    break  # 跳出无限循环

数据容器:

含义:类似于矩阵,可以存放多个元素信息

list:[a, b, c] 其中a,b,c的元素类型不限 支持嵌套,即[[], []] 支持空列表list = ()

list下标索引:list[a] a为列表内元素的顺序 从前向后为0——N 依次加1 从后向前为-1——-N,依次减一;a不可以超过下标范围;当需要调用嵌套元素,类似矩阵的元素命名,为list[a][b][....],同样遵守以上规则

list的方法:

list.append(元素) 列表末尾追加元素

.extend(容器) 将容器内部元素取出追加到列表末尾

.insert(下标,元素)  列表指定下标处插入指定元素

del list[下标] 删除列表指定下标元素

.pop(下标) 删除列表指定下标元素,可将删除元素作为返回值

.remove(元素) 从前向后,删除元素第一个匹配项

.clear() 清空

.count(元素) 统计元素出现的次数

.index(元素) 找到指定元素的下标,找不到会报错 可将该元素重新赋值

len(列表) 统计元素个数

age_list = [21, 25, 21, 23, 22, 20]

age_list.append(31)

age_list.extend([29, 33, 30])

age1 = age_list[0]

print(f"{age1}")

age2 = age_list[-1]

print(f"{age2}")

index = age_list.index(31)

print(f"{index}")

列表的循环遍历:

for循环:

num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

even_num_list = []

for element in num_list:

    if element % 2 == 0:

        even_num_list.append(element)

print(num_list)

print(even_num_list)

while循环:

num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

even_num_list = []

index = 0

while index < len(num_list):

    element = num_list[index]

    if element % 2 == 0:

        even_num_list.append(element)

    index += 1

print(num_list)

print(even_num_list)

在while循环中,条件要注意大小,根据自己的需要,但是不要超出列表范围

元组:

tuple 与list基本相同,区别在于不可以修改,因为不可以修改,所以方法只有index、count、len

如果在tuple中嵌入list可以修改list的内容

如果元组中只有一个元素,需要在后面加一个逗号,可以保持tuple类型

t1 = ("周杰轮", 11, ["football", "music"])

index = t1.index(11)

print(f"{index}")

t1[2][0] = "coding"

print(t1)

字符串:

字符串[下标]-->根据下标索引取出特定位置的字符

字符串.index-->查找给定字符的第一个匹配的下标

字符串.replace(字符串1,字符串2)-->将字符串内的全部字符串1,替换为字符串2;不会修改原字符串,而是得到一个新的字符串

字符串.split(字符串)-->按照给定字符串,对字符串进行分隔,不会修改原字符串,而是得到一个新的列表

字符串.strip()/字符串.split(字符串)-->移除首尾的空格和换行符或指定字符串

字符串.count(字符串)-->统计字符内某字符串出现的次数

len(字符串)-->统计字符串的字符个数

特点:

1.只可以存储字符串 2.长度任意 3.支持下标索引 4.允许重复字符串存在 5.不可以修改,即使修改也是产生新的字符串 6.支持for循环

集合:

集合.add(元素)-->集合内添加一个元素

集合.remove-->移除集合内指定的元素

集合.pop-->从集合中随机取出一个元素

集合.clear-->将集合清空

集合1.difference(集合2)-->得到一个新集合,内含2个集合的差集,原来两个集合不变

集合1.difference_update(集合2)-->在集合1中,删除集合2中存在的元素,集合1被修改,集合2不变

集合1.union(集合2)-->得到一个新集合,里面有两个集合的所有元素,原有的两个集合不变

len(集合)-->得到一个整数,记录了集合的元素数量

特点:

1.可以容纳多个数据 2.可以容纳不同类型的数据 3.数据是无序储存的,所以不支持下标索引,所以也不支持while遍历,但可以用for遍历 4.不允许重复的元素出现 5.可以修改

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值