python基础

python
 
一、基础语法
1、注释符:单行(#)、多行('''  """)
2、数值类型:整数int、浮点数float、布尔值Ture 和 False
3、变量命名规范
(1)只能以数字、字母、下划线组成
(2)不能使用数字开头
(3)不能使用python中的关键字:Flase,None,True,and,as,assert,async,await,break,class,continue,def,del,elif,else,except,finally,for,from,global,if,import,in,is,lambda,nonlocal,not,or,pass,raise,return,try,while,with,yield
4、字符串
(1)字符串可以用单、双、三引号表示
(2)字符串转义:   \可以对特殊符号进行转义
                                 \'表示一个'
                                 \"表示一个"
                                 \t表示制表符
 
二、字符串的操作
1、字符串格式化
 
字符串拼接: +
name = input("输入名字:")
money = input("输入金额:")
res = "今年收到"+name+",交来学费"+money+"元,开此收据为凭"
 
format格式化
name = input("输入名字:")
money = input("输入金额:")
res = "今收到{ },交来学费{ }元,开此收据为凭"
print(res.format(name,money))
 
res = "今收到{ },交来学费{ }元,开此收据为凭".format('张三',800)
print(res)
 
传统的%号格式化
%s:表示一个字符串占位符(后面填任意类型的数据都可以)
%d:表示一个整数占位符(后面只能填数值类型的数据,会转换为整数)
%f:表示一个浮点数占位符(后面只能填数值类型的数据)
name = input("输入名字:")
money = input("输入金额:")
res = "今收到{%s,交来学费%s元,开此收据为凭" % (name,money)
 
2、字符串格式化format
可以在{ }中指定填充数据的位置
       res = "今收到{1},交来学费{0}元,开此收据为凭".format('张三',800)
 
格式化小数位数
       res = "今收到{},交来学费{:.3f}元,开此收据为凭".format('张三',800.88888)
 
格式化字符串的长度
        {:^20}:^居中对齐
        {:<20}:<左对齐
        {:>20}:>右对齐
 
3、字符串索引和切片
python中所有的序列类型(字符串、列表、元组)数据都有索引
索引:
        正向索引:从前往后的顺序 ,从0开始数,越往后值越大
        反向索引:从后往前的顺序,从-1开始数,越往后值越小
索引取值:    结果 = 数据[索引值]    
                  s1 = 'abcdefg'
                 res = s1[4]
 
切片:       [start : end]
                结果 = 数据[起始位置索引 : 终止位置的索引]
                切片注意点:取头不取尾 (左闭右开)
加步长的切片: [start : end : length]
                         结果 = 数据[起始位置索引:终止位置的索引:步长]       #起始位置和终止位置不写,默认代表最前面和最后面
 
4、字符串的常用操作方法
format:格式化方法
replace:转换字符串中的内容  
                参数1:需要转换的内容
                参数2:替换之后的内容
                参数3:可以指定替换的次数(默认是替换所有的值)
                s = 'python123java123php123'    
                res = s.replace("123","999",2)         
find:查找指定字符的索引位置(返回查找到的第一个索引)   
join:字符拼接的方法
         a="pyhton" 
         b="java"
         c="php"
         res = ''.join((a,b,c))
split:把一个字符串以分隔符为分割点,分割成多个字符
strip:去除前后指定的字符(默认是去除空白字符)
upper:将字符串中的小写字符转换为大写
lower:将字符串中的大写字符转换为小写
 
三、列表和元组
1、列表   list
列表定义:使用[ ]来表示,每个元素使用逗号隔开
 
列表中的元素是有序的:     
             支持索引取值
             支持切片:切片得到的结果还是一个列表
 
*列表中可以存放任意类型的数据
                                            
2、列表的增删改查
增加数据:
                append:往列表的结尾添加一个元素 
                li = [11,22,33,44]
                li.append(99)
                
                insert:往列表中指定索引位置插入元素
                li =[11,22,33,44]
                li.insert(0,'number')
                *若要在列表最后面指定索引位置插入元素,不能用反向索引-1,它会先转换成正向索引
 
                extend:一次性往列表添加多个元素
                li =[11,22,33,44]
                li.extend([55,66,77])
 
删除数据:
                remove:指定元素进行删除(如果存在多个,则只会删除第一个)
                pop:指定索引进行删除,调用完会返回删除的数据(默认删除的是最后一个)
                clear:清空列表中的所有元素
 
修改数据:通过索引指定位置进行修改
                li =[11,22,33,44]
                li[0] =111 
 
查找数据:  ①通过索引取值
                    li =[11,22,33,44]
                    res = li[2]
                    ②index查找元素对应索引(元素不存在时,代码会报错)
                    li =[11,22,33,44]
                    res = li.index(22)
                    ③count统计某个元素的个数
                    li =[11,22,33,44,22]
                    res = li.count(22)
 
3、列表的复制和排序
copy:可以用来复制列表
        li =[11,22,33,44]
        li2 = li.copy()
 
sort:对列表进行排序 
         升序:li.sort()
         降序:li.sort(reverse = True)
 
4、元组  tuple
元组的定义:使用( )来表示
 
元组中可以存放任何的数据类型
 
元组中的元素是有序的:
            支持索引取值
            支持切片
 
元组中的元素是不可变的(定义了之后,元组内部的元素不能进行添加、删除和修改)
 
元组的查找:
                   ① 通过索引取值
                   ②index:查找指定元素的索引
                   ③count:统计某个元素在元组中的个数
 
5、列表&字符串&元组:统称序列类型
序列的共同特征:
                    ①都有索引值,内部元素是有序的
                    ②支持切片操作
 
都可以通过len()去获取元素的个数
 
数据类型的相互转换
数值: 
        整数:int
        浮点数:float
        布尔值:bool
序列:
        字符串:str
        列表:list
        元组:tuple
 
int和float转换为str
n1=99
n2=88.88
n3=str(n1)
n4=str(n2)
print(type(n1),type(n2),type(n3),type(n4))
 
列表转换字符串
li =[11,22,33,44]
s = str(li)
 
若字符串包含了列表,则用内置函数eval:识别字符串中的有效python表达式(去除字符串两边的引号)
s ='[11,22,33,44]'
li2=eval(s)
 
四、字典&数据类型总结
1、字典的基本使用
数值: int、float、bool
序列:str、list、tuple(有序的、有索引)
 
dic,set(没有下标索引)
 
字典:字典是通过{ }来表示的,每一条数据都是一个键值对(key:value),每个元素之间使用逗号隔开
 
字典的键在同一个字典中是唯一的,不能重复
 
在列表和元组中获取指定的数据只能通过下标索引进行获取
li = ['amim',18,'女']
res=li[0]
 
定义一个字典
dic={"age":18,"name":"amimchan","gender":"女"}
res=dic["name"]
 
2、字典的增删查改
增:
    ①通过键进行赋值
    dic={"name":"amimchan","gender":"女"}
    dic["age"]=18
 
    ②update一次性往字典中添加多个元素
    dic={"name":"amimchan"}
    dic.update(["gender":"女","age":18])
 
改:
    ①通过键进行赋值(有则改,无则增)
    dic={"name":"amimchan","gender":"女"}
    dic["age"]=28
 
删:
    ①pop指定键进行删除(返回删除的元素对应的值)
    dic={"age":18,"name":"amimchan","gender":"女"}
    res = dic.pop("age")
 
    ②popitem删除最后一个加入到字典中的元素。以元组的形式返回键和值
    res = dic.popitem()
 
    ③clear清空字典
    res = dic.clear()
 
查:
    ①通过键查找值,如果键不存在会报错(KeyError)
    res =dic["age"]
 
    ②get:通过键查找值,如果键不存在,不会报错(返回None)
    res =dic.get("age")
    
3、字典的其他方法
 
4、字典三种的定义方法
 
5、集合
集合使用{}来定义
注意点:{}代表空字典;空集合使用set{}来定义
 
集合是可变类型的数据(有增删查改的方法)
 
集合
 
6、python中生成随机数
random:生成随机数的官方库
import random
 
①生成一个随机的整数(指定范围,包含边界值)
res = random.randint(0,3)
 
②生成一个随机的小数(默认是0到1之间)
res = random.random( )
 
③生成一个指定范围的小数
res = random.uniform(10,20)
 
④从列表中随机选择一个数据
li = [11,22,33,44]
res = random.choice(li) 
 
7、数据类型总结
数值: int、float、bool
序列:str、list、tuple
dict、set
 
不可变类型的数据:数值、字符串、元组
可变类型的数据:列表、字典、集合(有增删改查的方法)
 
五、条件判断&while循环
1、控制流程-条件判断
代码执行顺序:从上往下
分支:根据不同的条件,执行不同代码
循环:特定的代码重复执行
 
分支(条件判断)
语法:
   ① if    条件:
                条件成立执行的代码
    price= int(input("请输入考试分数:"))
    if    price>=60:
                print("及格")
 
   ② if    条件:
                条件成立执行的代码
        else:
                条件不成立执行的代码
    price= int(input("请输入考试分数:"))
    if    price>=60:
                print("及格")
    else:
                print("不及格")
        
   ③ if     条件一:
                条件成立执行的代码
        elif    条件二:
                    条件成立执行的代码
        elif    条件三:
                    条件成立执行的代码
        else:
                上面条件都不成立执行的代码
    
 
:后面要换行缩进四个空格(tab键)再写代码
 
2、运算符集合条件判断一起使用
 
其他运算符
①逻辑运算  and(与)、or(或)、not(非)
②成员运算  in:判断里面的成员、not in:判断不是里面的成员
③身份运算  is:判断id一致、is not:判断id不一致  
面试题:== 和 is的区别? 
④赋值运算符  = 赋值、+= 、-=、*= 、/=、%=   
如:n=0
       n += 1
        
3、while循环(条件循环)
如果条件一直成立,则一直循环做条件满足的事情,直到条件不成立,结束循环
语法:
i = 1
while i <=100"
        print ("这是第{}遍hello python".format(i))
        i + 1
 
4、登录的案例(break、continue)
①break强制跳出循环
u='amimchan'
p='123456'
while True:
        user = input("输入账号:")
        pwd = input("输入密码:")
        if user == u and pwd == p
                print ("账号密码正确,登录成功")
                break
        else:
                print ("账号密码错误,请重新输入!")
 
②continue中止当前本轮循环,回到条件判断的地方重新判断条件,接着循环
i < 0
while i <50:
        i += 1
        if i == 25:
            continue
        print ("当前的i为:{}",format(i))
 
5、for循环的介绍
循环遍历
li = [34,66,77,88,99]
for i in li:
    if i >60:
        print("您的成绩为{},及格",format(i))
    else
        print("您的成绩为{},不及格",format(i))
 
六、for循环的使用
1、for循环遍历数据
for i in xxx:
    #循环体
 
①遍历列表
li=[34,66,33,78,66]
for i in li:
    if i > 60:
        print("您的成绩为{},及格".format(i))
    else:
        print("您的成绩为{},不及格".format(i))
 
②遍历字典
for i in dic.valuss():
        print(i)
 
③遍历键和值
for i in dic.items():
        k = i[0]
        v = i[1]
        print("key:",k,"value:",v)
 
2、for循环和range
 
3、for循环的关键
 
七、函数的使用
1、函数的定义
函数可以用来封装独立的功能代码,通过封装可以提高代码的重用率,提高开发效率
1⃣️函数的定义之后不会自动执行
语法:def 函数名():
                    #函数体(写到函数里面的功能代码)
 
2⃣️函数调用:函数名(“参数”)
 
3⃣️函数名的命名规则:(和变量的命名规则一样)    
        函数名推荐下划线命名法,尽量做到见名知意
 
2、函数的参数
1⃣️参数的定义:在函数名后面的括号可以拟定参数
 
2⃣️参数的传递:定义在函数括号后面的参数,需要在调用函数的时候传递进行
 
3⃣️形参和实参
 形参:定义的参数
 实参:调用时传递的参数
 
3、参数传递的方式
调用函数的时候参数传递的类型:
1⃣️位置传参(位置参数)  
     add(11,22)
 
2⃣️指定参数名传参(关键字参数)
     Add(a=11,b=22)
 
3⃣️注意点:两种传参方式混合使用的时候,位置参数在前,关键字参数在后
 
4、参数定义的形式
函数定义的方式:
1⃣️必备参数(必需参数):定义了必须要传,不能多不能少
2⃣️默认参数(缺省参数):调用的时候可以传,可以不传,不传就使用默认值
3⃣️不定长参数(可变参数):调用的时候可以传0个或者多个值
 
八、函数的作用域&内置函数
1、函数的返回值
函数的返回值:关键值return
        函数中没有return,返回值数目=0:返回none
        返回值数目=1:返回object(对象)
        返回值数目>1:返回tuple(元组)
 
1⃣️return后面只有一个数据
def  add(a,b):
        c=a+b
        return c
res = add(11,22) #需要用变量接受函数调用之后返回的值
print(“返回c的结果:”,res)
 
2⃣️return后面有多个数据
def  add(a,b):
        c=a+b
        d=a-b
        return c,d
res = add(11,22)
print(“返回c的结果:”,res)
 
3⃣️当函数执行到return之后,就会结束函数的运行
def  add(a,b):
        c=a+b
        return c
res = add(11,22) #需要用变量接受函数调用之后返回的值
print(“返回c的结果:”,res)
        c=a+b
        return c
        print=c
res = add(11,22) 
print(“返回c的结果:”,res)
 
4⃣️如果函数中有多个分支,每个分支中是否都可以用return (可以)
def  func(a,b,method):
        if  method ==“+”:
            print(“a+b的结果:”,a+b)
            return a+b
        elif method ==“-”:
            print(“a-b的结果:”,a-b)
             return a-b
res=func(11,22,”-“)
 
2、全局变量和局部变量
全局变量:直接定义在python文件(模块)中的变量叫做全局变量,在有效范围(作用域)整个文件内容任何地方都可以使用
局部变量:在函数内部定义的变量叫做局部变量,仅限于该函数内部使用
 
3、global关键字的使用
 
4、函数内部变量引用的优先级问题
如果函数中的局部变量和全局变量同名,在函数内部使用这个变量的时候,优先使用局部变量
函数内部定义局部变量时,尽量不要和全局变量同名
 
5、扩展(匿名函数)
 
 
6、常用的内置函数
 
 
 
 
九、文件操作和模块导入
1、文件的基本操作
内置函数open:
        参数file:传一个文件名(路径)
        参数mode:文件打开的模式
        r:read只读
        w:write写入
        a:add追加
        参数encoding:指定编码格式
 
操作文件的步骤:
1、打开文件:使用内置函数open
 
2、进行操作(读或者写)
        读:read方法
 
3、关闭文件
        close方法
 
 
posted @ 2022-10-11 21:56  amim  阅读(51)  评论(0编辑  收藏  举报