pyhon自学基础语法

b站黑马程序员视频链接

记笔记懒的打字的用win+H语音转文字哦

#第一天

pycharm常用快捷键

ctrl / 注释快捷键

双引号包裹的叫字符串

单行注释:#开头 和注释内容建议以一个空格隔开

多行注释:三对双引号

变量就是在程序运行时,记录数据用的

格式:变量名称=变量的值

变量的值可以变

print()里面输出多份内容用,隔开

三类数据类型:string、int、float

验证数据类型:语法 type(被查看类型的数据)

查看的是变量存储的数据类型,变量无类型它的存储数据有

python 复制代码
name="哈哈哈"
name_type=type(name)
print(name_type)

转换类型

python 复制代码
num=str(11)
print(type(num),num)

任何类型都可以转换成字符串,字符串转成数字必须字符串内是数字,浮点数转整数会丢尾数缺失精度

标识符

只允许出现英文数字下划线中文,中文不推荐,数字不可以开头

英文大小写敏感,可以被区分

不可以使用关键字,大小写敏感,完全一样才报语法错误

运算符

算术运算符+-*/ // % **

//整除 %取余 **次方

赋值运算符=

复合型赋值运算符+= 表示的是将本身去进行运算 例子:c +=a等效于 c =c+a

单引号双引号三引号都可以定义字符串,三引号可以分行类似注释

字符串本身带有引号,则本身是有单引号我们就使用双引号定义,反之有双我们用单,或则使用\转义字符

python 复制代码
name = '"哈哈哈"'
print(name)
name ="'刚刚'"
print(name)
name ='\'好坏\''
print(name)
name ="\"积极\""
print(name)

打印出来"哈哈哈" '刚刚' '好坏' "积极"

字符串拼接+

字符串与字符串进行拼接,不能和非字符串进行拼接

字符串格式化

%占位 s把变量放进来

python 复制代码
name = "一一一"
message = "我是:%s" %name
print(message)

class_num = 57
avg_salary =1234
message ="北京%s期,毕业平均工资:%s" %(class_num,avg_salary)
print(message)
python 复制代码
我是:一一一
北京57期,毕业平均工资:1234

数据类型占位

%s内容转字符串 %d 转整数 %f 转浮点型

数字精度控制

m.n形式控制,m为宽度,.n为精度会对小数部分进行四舍五入限制,m比数子本身宽度还小m不生效

#第二天

字符串格式化2

语法:f''内容{变量}''

不理会类型不做精度控制

python 复制代码
name = '哈哈哈'
set_up_year_ =2002
stock_price = 19.9

print(f"我是{name},成立于:{set_up_year_},今天股价为:{stock_price}")

对表达式进行格式化

表达式:一条具有明确执行结果的代码语句

综合小练习(股票计算小程序)

python 复制代码
name = "传智播客"
stock_price = 19.99
stock_code = 1003032
stock_price_daily = 1.2
growth_days = 7

print(f"公司:{name},股票代码:{stock_code},当前股价:{stock_price}")
print("每日增长系数是:%.1f,经过%d天增长股价达到了:%.2f" %(stock_price_daily,growth_days,stock_price*stock_price_daily**growth_days))
python 复制代码
公司:传智播客,股票代码:1003032,当前股价:19.99
每日增长系数是:1.2,经过7天增长股价达到了:71.63

input语句

数据输入,默认输出字符串类型

python 复制代码
print("请告诉我今天星期几")
day = input()
print("我知道了今天:%s" %day)
python 复制代码
请告诉我今天星期几
星期一              #我自己输入的
我知道了今天:星期一

也可以等同于print

python 复制代码
day = input("请告诉我今天星期几")
print("我知道了今天:%s" %day)

转类型

python 复制代码
num = input("银行卡密码:")
num = int(num)
print("银行卡密码类型是:", type(num))

判断语句

比较运算符,布尔类型

python 复制代码
bool1 = True
bool2 = False
print(f"bool1变量内容是:{bool1},类型是:{type(bool1)}")
print(f"bool2变量内容是:{bool2},类型是:{type(bool2)}")

num1 = 10
num2 =10
print(num1==num2)

name1 ="qqq"
name2 ="www"
print(name1!=name2)

if判断语句

python 复制代码
print("欢迎来到儿童乐园,儿童免费,成人收费")
age = input("请输入你的年龄:")
age = int(age)
if age>=18:
    print("你已经成年,需要购票")
print("祝你玩的愉快")

if else用法

python 复制代码
print("欢迎来到儿童乐园,儿童免费,成人收费")
age = input("请输入你的年龄:")
age = int(age)
if age>=18:
    print("你已经成年,需要购票")
else:
    print("你不需要购票")
print("祝你玩的愉快")

if elif else用法

判断是互斥且有顺序的,上一个满足后面就不会判断了,空格缩进不可省

python 复制代码
if int(input("请输入身高(cm):"))<120:
    print("免费")
elif int(input("请输入vip等级:"))>3:
    print("免费")
elif int(input("今天几号:"))==1:
    print("免费")
else:
    print("需要购票")

判断语句的嵌套

python 复制代码
if int(input("请输入身高(cm):")) >120:
    print("身高超出免费区间")
    print("如果vip等级大于3,可以免费")
    if int(input("vip等级:")) >3:
        print("免费")
    else:
        print("需要买票")
else:
    print("免费")

练习题

发礼物,限制年龄18-30,且工作时间两年以上或者等级3级以上

python 复制代码
if 18<int(input("请输入年龄:"))<30:
    print("年龄满足")
    if int(input("请输入入职时间:"))>2:
        print("满足条件")
    elif int(input("请输入等级:"))>3:
        print("满足")
    else:
        print("不满足")
else:
    print("不满足")

猜数字游戏案例

三次机会,要有提示猜的数字对应的情况

python 复制代码
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循环语句

条件需提供布尔类型结果,True继续,False结束

空格缩进不能忘

规划好循环终止条件,否则无限循环

求1-100的和

python 复制代码
i=1
sum=0
while i<=100:
    sum =sum+i
    i += 1

print("1-100的和为:",sum)

猜数小游戏

无限次,并输出猜测次数

python 复制代码
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}次")

#第三天

while嵌套循环

表白案例

python 复制代码
i = 0
while i<=100:
    print(f"这是第{i}天进行表白")

    j = 1
    while j<=10:
        print(f"送{j}枝玫瑰")
        j +=1
    print("我爱你")
    i +=1
print(f"第{i-1}天表白成功")

While循环打印九九乘法表案例

使用print语句输出不换行,在括号里加end=' '

\t 制表符,效果等同于键盘按下tab键 使多行字符串进行对齐

python 复制代码
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 待处理数据集:

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

待处理数据集称之为序列类型,其内容可以一个个依次取出的一个类型

统计字母a的个数案例

python 复制代码
name = "hduwdfuweiaaaadhudqwaa"

count = 0
for x in name:
    if x=="a":
        count +=1

print(f"有{count}个a")

range语句

获取一个简单的数据序列

语法:range(num)

获取一个从0开始到num结束的数字序列(不含num本身)

语法2:range(num1,num2)

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

语法3:range(num1,num2,step)

获取一个从num1到num2结束的序列(不含num2本身),数字步长以step为准,默认为1,假设为2则是隔一个取一个

表白案例

python 复制代码
i =1
for i in range(1,101):
    print(f"表白第{i}天")
    for j in range(1,11):
        print(f"送的第{j}朵花")

    print("我喜欢你")
print(f"第{i}天表白成功")

for循环打印九九乘法表

python 复制代码
i =1
for i in range(1,10):
    j = 1
    for j in range(1,i+1):
        print(f"{j}*{i}={j*i}\t", end='')
        j += 1
    i += 1
    print()

continue

中断本次循环,直接进入下一次循环,可用于for循环和while循环,效果一致

只对自己所在循环生效

break

直接终止所在的本次循环

发工资案例

自己写的不知道对不对

20个员工,公司有一万奖金,绩效大于5可领取

python 复制代码
i = 1
sum = 10000
for i in range(1,21):
    import random
    num = random.randint(1, 10)
    while num>=5:
        if sum >= 1000:
            sum -= 1000
            print(f"向员工{i}发放工资1000元,账户余额还剩{sum}元")
        else:
            print(f"员工{i},绩效合格,但工资发完了,下个月再来领取")
        break
    else:
        print(f"员工{i},绩效分:{num}分,低于5,不发工资,下一位")
        continue
    i +=1

函数

定义语法

def 函数名(传入参数):

函数体

return 返回值

使用步骤:先定义函数,后调用函数

参数不需要可以省略

返回值不需要可以省略

python 复制代码
#定义函数
def add(x,y):            #形参
    result = x+y
    print(f"{x}+{y}结果是{result}")
#调用函数
add(1,2)                #实参
python 复制代码
def add(a,b):
    result = a+b
    return result
r=add(5,6)
print(r)

#第四天

None类型

空的,无实际意义,用于声明无内容的变量,使用在函数返回值、if判断、变量定义

函数说明文档

通过多行注释形式,对函数进行说明解释,鼠标悬停在调用函数上会显示说明文档

函数嵌套调用

一个函数里面调用了另一个函数

python 复制代码
def funb():
    print("2")

def funa():
    print("1")

    funb()

    print("3")

funa()

变量

变量作用域指的是变量的作用范围

分为局部变量和全局变量

局部变量是定义在函数体内部的变量,只在函数体内部生效

全局变量在函数外面定义变量

全局变量代码

python 复制代码
num = 200

def test_a():
    print(f"test_a:{num}")

def test_b():
    num = 500
    print(f"test_b:{num}")

test_a()
test_b()
print(num)
python 复制代码
test_a:200
test_b:500
200

global关键字

将函数内定义的变量声明为qu'a

python 复制代码
num = 200

def test_a():
    print(f"test_a:{num}")

def test_b():
    global num              #设置内部定义的变量为全局变量
    num = 500
    print(f"test_b:{num}")

test_a()
test_b()
print(num)
python 复制代码
test_a:200
test_b:500
500

取款机案例

python 复制代码
money =5000000
name =input("请输入姓名")

def query(show_header):
    if show_header:
        print("----------查询余额--------------")
    print(f"{name},你的余额剩余:{money}元")


def saving(num):
    global money
    money +=num
    print("--------------存款----------------")
    print(f"{name},你存款{num}元成功")

    query(False)

def get_money(num):
    global money
    money -= num
    print("--------------取款----------------")
    print(f"{name},你取款{num}元成功")

    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:
    keyboard_input = main()
    if keyboard_input == "1":
        query(True)
        continue
    elif keyboard_input =="2":
        num=int(input("请输入存款金额:"))
        saving(num)
        continue
    elif keyboard_input =="3":
        num=int(input("请输入取款金额:"))
        get_money(num)
        continue
    else:
        print("程序退出")
        break

python数据容器

一个容器可以容纳多份数据,每一份数据称之为1个元素,每一个元素可以是任意类型的数据,如字符串、数字、布尔

容器根据特点不同分为五类

列表、元组、字符串、集合、字典

下标索引

从前往后,从0开始递增

从后往前,从-1开始递减

下标索引取值范围超出范围无法取出,会报错

python 复制代码
my_list = ["haha","jajaja","kakakka"]
print(my_list[0])
print(my_list[1])
print(my_list[2])

print(my_list[-1])
print(my_list[-2])
print(my_list[-3])

my_list = [[1,2,3],[4,5,6]]
print(my_list[1][1])              #第一个[]为0  第二个为1   取德第二个里面的第二个
print(my_list[-2][1])             #第一个[]为-2  第二个为-1   取德第一个里面的第二个
python 复制代码
haha
jajaja
kakakka
kakakka
jajaja
haha
5
2

列表的常用操作

插入、删除元素、清空列表、修改元素、统计元素个数这一系列功能称为列表的方法

查找下标

语法:列表.index(元素)

python 复制代码
my_list = ["haha","jajaja","kakakka"]
index =my_list.index("haha")
print(f"haha下标索引是:{index}")

修改下标索引的值

python 复制代码
my_list[0]="hhhhh"
print(f"修改后的值为:{my_list}")

插入元素

语法:列表.insert(下标,元素)

在指定下标位置插入指定元素

python 复制代码
my_list.insert(1,"best")
print(f"插入后结果是:{my_list}")

追加元素

语法:列表.append(元素)

指定元素追加到列表的尾部

python 复制代码
my_list.append("babab")
print(f"插入后结果是:{my_list}")

语法:列表.extend(其他数据容器)

将其他数据容器的内容取出,依次追加到列表尾部

元素删除

语法1:del 列表下标

语法2:列表.pop(下标)

语法3:列表.remove(元素)

清空列表

语法:列表.clear()

统计某元素在列表的数量

语法:列表count(元素)

统计列表内有多少元素

语法:len(元素)

练习案例

python 复制代码
mylist = [21,25,21,23,22,20]
mylist.append(31)
print(f"追加数字:{mylist}")

mylist.extend([29,33,30])
print(f"追加数字:{mylist}")


print(f"取出第一个元素:{mylist[0]}")

print(f"取出最后元素:{mylist[-1]}")

index = mylist.index(31)
print(f"31下标为:{index}")
python 复制代码
追加数字:[21, 25, 21, 23, 22, 20, 31]
追加数字:[21, 25, 21, 23, 22, 20, 31, 29, 33, 30]
取出第一个元素:21
取出最后元素:30
31下标为:6

#第五天

列表的遍历------while循环

python 复制代码
my_list = ["hde","huidwq9","jioqhih"]

index = 0
while index < len(my_list):
    element = my_list[index]
    print(f"列表元素:{element}")

    index +=1

for循环

python 复制代码
def list_for_func():
    my_list=[1,2,3,4]
    for element in my_list:
        print(f"元素列表有:{element}")

list_for_func()

while和for循环对比:

while可以自定义循环条件,for不可以只可以一个个取出

while可以通过控制条件实现无限循环,for理论上不可以因为被遍历的容器容量不是无限的

while循环适用于任何想要的场景,for适用于遍历数据容器的场景或简单的固定次数循环场景

输出偶数列表案例

python 复制代码
my_list=[1,2,3,4]
even_for = []
for element in my_list:
    if element % 2 == 0:
        even_for.append(element)
        print(f"元素列表有:{even_for}")

even_whlie = []
index=0
while index<len(my_list):
    current = my_list[index]
    if current%2==0:
        even_whlie.append(current)
    index +=1
print(f"元素列有有:{even_for}")

元组

列表可以修改,传递信息不能修改列表就不合适了,元组一旦定义完成,就不可修改,元组也可以封装多个不同类型的元素在内,可以修改内部list的内部元素

使用小括号定义,使用逗号隔开数据,数据可以是不同的数据类型

操作方法:index() 、count() 、len(元组)

特点:支持for循环 、和list基本相同,唯一不同在于不可修改

小案例

python 复制代码
t1 = ("周杰伦",11,["aaaa","bbbb"])
index=t1.index(11)
print(f"{index}")

name = t1[0]
print(name)

t1[2].remove('aaaa')
print(t1)

t1[2].append('ccc')
print(t1)

字符串

字符的容器,一个字符串可以存放任意数量的字符,长度任意,支持下标索引,允许重复字符串存在,不可以修改,支持for循环

字符串替换

语法:字符串.replace(字符串1,字符串2)

将字符串内全部字符串1,替换成字符串2,不是修改字符串本身,而是得到一个新字符串

字符串分割

语法:字符串.split(分隔符字符串)

按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中,字符串本身不变而是得到了一个列表对象

字符串的规整操作

语法:字符串.strip() #去前后首位空格

语法:字符串.strip(字符串) #去前后指定字符串

案例

python 复制代码
t = "iiiiudwh iuhduiewq wduh"
num = t.count('i')
print(num)

new = t.replace(" ","|")
print(new)

list = new.split("|")
print(list)

#第六天

序列切片

不省略下标结束那个不取,省略了取(从头到尾::)

案例

python 复制代码
t = "asdhu shdiqwhd wuhd"
result = t[::-1][5:13]
print(result)


result2 = t[6:14][::-1]
print(result2)

集合

去重,无序,下标索引不支持访问,可以用for循环进行变量,不可以用while

案例去重

python 复制代码
my_list = ["aaa","bbb","ccc","aaa"]
my_set = set()
for i in my_list:
    my_set.add(i)

print(my_list)
print(my_set)
python 复制代码
['aaa', 'bbb', 'ccc', 'aaa']
{'bbb', 'ccc', 'aaa'}

字典

提供基于key检索value的场景实现

可以是任意类型,key不可为字典

key不可以重复,重复添加等于覆盖原有数据

不可以用下标索引

常用操作

升职加薪案例

python 复制代码
my_dict = {
    "A":{
        "部门":"科技部",
        "工资":4000,
        "级别":1
    },"B":{
        "部门":"科技部",
        "工资":3000,
        "级别":2
    },"C":{
        "部门":"科技部",
        "工资":3000,
        "级别":1
    },"D":{
        "部门":"科技部",
        "工资":3000,
        "级别":2
    }
}

for i in my_dict:
    if my_dict[i]["级别"]==1:
        my_my_dict = my_dict[i]
        my_my_dict["级别"] = 2
        my_my_dict["工资"] += 1000
        my_dict[i] = my_my_dict

print(my_dict)

数据容器分类

应用场景

容器通用功能

#第七天

字符串大小比较

从头到尾一位位比较,其中一位大后面就无需比较了

单个字符通过ASCII码表,确定字符对应的码值数字来确定大小

函数的多返回值

python 复制代码
def test_return():
    return 1,"aaa",True
x,y,z = test_return()
print(x,y,z)

函数参数种类

python 复制代码
def user_info(name,age,gender):
    print(f"姓名是:{name},年龄是:{age},性别是:{gender}")

#位置参数 ------ 默认使用形式
user_info('小明',20,'男')


#关键字参数
user_info(name='小王',age=11,gender='女')
user_info(age=10,gender='女',name='潇潇')   #可以不按照参数的定义顺序传参

#缺省参数(默认值)
def user_info(name,age,gender='男'):
    print(f"姓名是:{name},年龄是:{age},性别是:{gender}")

user_info('小天',13)
user_info('小天',13,gender='女')


#不定长参数

匿名函数

使用lambda关键字进行定义

语法:lambda 传入参数:函数体(一行代码)

用于临时构建一个函数,只用一次的场景

函数体只能写一行代码,多行要使用def定义带名函数

文件操作

文件编码

翻译规则,记录如何将内容翻译成二进制,以及如何将二进制翻译回可识别内容

文件读取操作

python 复制代码
f = open("C:/Users/佳美/Desktop/text.txt","r",encoding="UTF-8")
#方式1,读取全部内容
# content = f.read()
# count = content.count("aaa")
# print(content)
# print(count)

#方式2,读取内容一行一行读
count = 0
for line in f:
    line = line.strip()      #去除开头结尾的空格和换行
    words = line.split(" ")
    for word in words:
        if word == "aaa":
            count += 1

print(count)

f.close()

文件写操作

文件追加操作

同上操作,把w换成a

python 复制代码
f = open("C:/Users/佳美/Desktop/text.txt","a",encoding="UTF-8")
f.write("dgwvuivuehahahha")
f.close()
相关推荐
gwf2164 小时前
磨损均衡算法(Wear Leveling)——SSD如何让每块闪存“公平退休“?
运维·数据库·人工智能·python·嵌入式硬件·算法·智能硬件
爱吃提升5 小时前
python 分布式爬虫、爬虫合规与综合实战项目
分布式·爬虫·python
审小匠OpenCPAi5 小时前
银行流水核查怎么自动化?单边匹配、双向勾稽与图聚类异常检测的工程对比
java·前端·人工智能·python·审计
元Y亨H6 小时前
Pandas 解析 Excel 导致的内存溢出(MemoryError)
python·excel
金銀銅鐵6 小时前
[Python] 用 turtle 来绘制瑞典国旗
python
Albert Edison6 小时前
【GUI 自动化测试】Pywinauto 常见操作
自动化测试·python·pywinauto
海兰6 小时前
【高速缓存】RedisVL为文本生成嵌入向量实践指南
人工智能·python·机器学习
2601_955760077 小时前
如何用 Claude Opus 5 API 批量扩展长尾关键词和文章选题
前端·python·搜索引擎
艾斯特_7 小时前
从模型调用到可用聊天应用:会话状态与消息协议
python·ai·aigc
Marst Code7 小时前
Python 3.9 已停止维护!从 3.9 到 3.14 全版本深度对比,生产环境该选哪个?
开发语言·python