Python基础语法—8小时入门版

Python基础语法—8小时入门版

# =============================
# Author : mikigo
# Time   : 2020/10/10
# =============================

一、Python基础

(一)输入输出

1. print

(1)print("hello world") 括号表示调用函数print,括号内的字符串用引号引起来。

(2)print("hello","world","mikigo") 可接受多个参数。

(3)print(name)不加引号表示调用变量。

(4)print(100+200) 不加引号,表示直接运算。

2. input

(1)input() 输入,光标会等待键盘输入。

(2)input("请输入内容") 括号内建议输入提示信息。

(3)input 输入的值都会被当成字符串,包括数字。

(二)数据类型

1. 整数 int 没有小数点。

2. 浮点数 float :有小数点。

3. 布尔值 bool :True 或 False 。注意首字母大写。

4. 空值 None :空值,但和0有区别。

5. type() 查看数据类型(isinstance)。

(三)变量、表达式

1. 变量赋值

(1)name="mikigo" 表示将 mikigo 这个字符串赋值给变量 name,注意要加引号,不加引号会被认为是一个变量

(2)a,b,c=7,8,9 多元赋值,表示将值一一对应的复制到等号前面的变量,但位置的个数一定要一致。

(3)数据类型的转换

 - str(age) 表示将变量age转换成字符型

 - int(1.5)表示将float转换成int(取整为1)

 - float(6) 表示将int转换成float

2. 表达式

(1)+ - * /

(2)% 表示取余数

(3)// 表示取商数

(4)** 表示次幂 ,比如10**5 表示10的5次幂

(四)字符串 string

1.格式化字符串

(1)%d(data) 表示数字站位

(2)%s(string) 表示对字符串站位

(3)%r 任何类型都可以接收,但字符串最终打印出来有引号。

(4)格式:print("%s = %d" % (age,19))

(5)"mikigo{}".format(("good",))

(6)f"mikigo{good}"

2.字符串操作

(1)字符串相加,比如:"mi" + "ki" > miki

(2)星号相乘,比如:2 * "mi" > mimi

(3)[ ] 表示通过索引截取字符,第 1 个字符索引是 0 ;

(4)[ : ] 表示截取字符串 比如:[2:4] 表示从索引 2 开始,截取到索引 3(不包含 4 );

(5)in 表示 in 后面字符串中是否包含 in 前面的字符,比如:"i" in "miki" >> True;

(6)not in 用法与 in 类似但是取反;

(7)r/R 表示所有字符都按照字面意思来使用。比如:print(r"hello\nmikigo") 换行字符 \n 不起作用,直接输入引号内的字符串。

3.字符串的常见函数方法

(1)len(str) 返回字符串的长度;

(2)count 计数;

- "mikigo".count("mi") 直接跟字符或字符串,则返回字符出现的次数。

- "mikigo".count("i",2,10) 表示在索引2到10之间(不包含10),返回字符出现的次数。

(3)startswith 或 endswith 以什么开始或以什么结束;

- "mikigo".startswith("m") 表示判断是否以字符m开始,> True

- "mikigo".endswith("m") 表示判断是否以字符m结束,> False

(4)find 查找字符或字符串,返回索引位置,如果找不到会返回 -1;

- "mikigo".find("i") 表示找出字符i在字符串中第一次出现的索引位置,> 1

- "mikigo".rfind("i") 表示从右开始找出字符i在字符串中第一次出现的索引位置,> 3

(5)index 用法同 find,区别在于,找不到时会报错;

(6)strip 删除或截掉;

- " mikigo ".strip() 删除前后的空格

- " mikigo ".rstrip("o") 删除右边的字符o

- " mikigo ".lstrip("m") 删除左边的字符m

(7)replace 替换

- "mikigo".replace("i","oo") 表示将字符串中的所有字符i替换称字符串oo

- "mikigo".replace("i","oo",1) 表示将字符串中的字符i替换为oo,只替换一次

(8)join 加入:"miki".join("ab") >> "amikib" 每个字符拆开,加入某个字符或字符串。

(9)split 以分隔符截取

- "mikigo".split("i") 表示以字符i作为分隔符,将字符串进行分隔。

- "mikigo".split("i",1) 表示以字符i作为分隔符,以第1个i作为字符串的分隔符 进行分隔。

- "mikigo\nhello".splitlines() 或  "mikigo\nhello".splitlines(keepends=False) 表示按行("\r","\n","\r\n")分隔(不包含换行符)。

- "mikigo\nhello".splitlines(keepends=True) 表示以\n换行,且包含换行符。

- 扩展: 多种方式分割字符串  re.split('a|b', 'fdasfweqgasfewaq')

(五)列表(list)

1.list基本操作

(1)列表(list)用[ ]表示,是有序,可变,可指定位置取值的。

(2)列表里面的元素,可以是任意数据类型,包括列表、None、bool

(3)同一列表中可存放不同的数据类型

2.切片

(1)lst[index] 取单个元素,直接跟索引。比如 lst[2],表示取索引 2 的元素;

(2)lst[0:2] 取一个区间。表示取索引 0 到 1 的元素;

(3)lst[0:5:2] 表示按步长 2 去取索引 0 到 4 之间的元素;

(4)lst[-1] 表示取最后一个;

(5)lst[::-1] 表示将一个列表反向排序。

3.list常见的函数和方法

(1)函数

1)len(list) 列表的长度,即列表中元素的个数;

2)max(list) 相同的数据类型取最大值。

(2)方法

1)list.append(obj) 在列表末尾添加新的对象。list.append("ab"),表示在末尾加入字符串 "ab",但 append 一次只能增加一个元素;

2)list.count(obj) 统计某个元素在列表中出现的次数;

3)list.extend(seq) 在末尾追加另一个序列。追加的是一个列表,不能是单个元素。比如 list.extend([123]);

4)list.index(obj) 找出某个元素的第一个索引位置;

5)list.insert(index,obj) 将对象插入到列表(位置,元素);

6)list.pop(index) 删除某个位置的元素(默认删除最后一个)。比如 list.pop(1) 表示删除索引1的元素,且返回元素的值;

7)list.remove(obj) 删除列表中的某个元素的第一个,修改列表本身;

8)list.reverse() 反向排序;

9)list.sort() 重新排序;

10)list.clear() 清空列表;

11)list.copy() 复制列表。

(六)元组(tuple)

定义:以小括号括起来的有序列表,但不能修改。

a = (2,3,4,5)

(七)字典(dict)

1.定义:字典是用大括号括起来,由键值对(key:value)组成的,且是无序的。

2.key 是唯一的,一般赋值为 string,value 可以是任意数据类型

3.常用操作

(1)dt["key"] 根据键读取值

(2)dt["old_key"]="new_value" 根据键修改值

(3)dt["new_key"]="new_value" 新增键值对

(4)len(dt) 返回元素的量(键值对)

4.dict常用方法

(1)key in dict 判断键是否在字典中

(2)dict.items() 返回列表,列表由元组组成,每个元组由一个键值对将键和值拆分为两个字符串组成。

(3)dict.keys() 将所有的键组成一个列表。

(4)dict.values() 将所有的值组成一个列表。

(5)dict1.update(dict2) 将字典2中的键值对添加到字典1中

(6)dict.get(key,default=None) 返回指定键的值,如果值不存在,返回default值。比如:dict.get("name","peter") 如果字典中有name这个键,则直接返回其对应的值,如果没有这个键,则返回"peter"

(7)dict.setdefault(key,default=None) 和get一样会返回指定键的值,但若键不在字典中,会添加成为新的键值对。比如:dict.setdefault("name","peter"),如果字典中有name这个键,则返回其对应的值,如果没有,则会将定义的值,添加到字典中。

(8)dict.pop(key,default=None) 删除键对应的值,key不存在返回default值。

(9)dict.copy() 浅复制

(10)dict.clear() 清除所有元素

二、过程控制

(一)条件语句

1.句式:

if 条件判断:(缩进和冒号)
    print("字符串")
else:
    print("字符串")

2.else 可以不要,语法上没有问题

3.运算符

(1) < , <= , > , >= , == , !=

(2)and , or , not , in , not in, is

(二)循环语句

1.while

while 判断条件:
    语句
else :
    语句

break 终止循环语句

continue 结束本次循环,继续进行下一轮循环。

2.for语句(遍历序列的元素)

for i in [1,2,3,4]:
    print(i)

  • in 后面可以跟元组、列表、字符串,但跟字典时只能取到字典中的键(key)。

  • range(函数)

    • range(3) 表示从索引0,取到索引2(开区间)
    • range(1,4) 表示从索引1,取到索引3
    • range(1,10,2) 表示从索引1,取到索引10,步长为2

三、函数

(一)定义

函数是可重复使用的,具有一定功能的代码段。

def 函数名(参数1,参数2,····)

def add(a,b):
  c = a + b
  print(c)

(二)返回值

调用函数后,将执行结果返回给调用者。

def add(a,b):
    c = a + b
    return c

>>x=add(1,2) # 返回一个c的值赋给x,如果返回值有多个,而变量只有1个,则会生成一个元组。也可以用多个变量对应多个返回值,即多元赋值。

(三)参数

1、位置参数(形参)
def func(name, age):
    print(name, age)

位置参数时根据位置顺序传入函数,调用函数时必须与定义时的参数数量一致。

2、默认参数
  • def func(name, age=18): print(“a未被定义”) # 参数在定义的时候就赋值的

  • 默认参数在调用的时候如果不传入,则会使用默认参数,如果给传递了参数,则值会被覆盖。

3、可变参数
def func(*args):
    sum = 0
    for n in args:
        sum = sum + n
        return sum

>>func(1,2,3,···) 传入的参数数量可变,会自动组装称一个元组,如果传入0个参数,结果时返回一个空元组。

  • 如果传入的参数是一个元组,调用的时候在函数括号内加*号(参数解构)

    tp=(1,2,3,4)

    resule = add(*tp)

4、关键字参数(键和值)
def func(**kwargs):
    print(kwargs)

>>func(name=“peter”) # 结果是打印一个字典{“name”:“peter”}

  • 如果传入的参数是一个字典,调用的时候在函数括号内加**

    >>dct = {“eat1”:“酸辣粉”,“eat2”:“螺狮粉”}

    >>func(**dct)

5、组合参数

顺序为位置参数,可变参数,默认参数,关键字参数

def func(name, age, *args, gender=’男’, **kwargs)

四、类(class)

(一)类的实例

1.类的实例是对象,一个实例包含属性(有什么)和方法(能做什么)。

2.类的声明:class 类名(): 类名单词首字母大写,如果是多个单词,单词与单词之间不空格,直接挨着写,但每个单词首字母需要大写。

3.定义类的属性和方法

class Person():

    def __init__ (self, name, age):
        self.name = name
        self.age = age
        
    def run(self, food):
        print("%s都%d岁了,天天吃%s" % (self.name, self.age,food))

(2)方法调方法或方法调属性等,内部调用都要加self。 ②

(3)调用外部变量时,不加self。

(4)调用

① 实例化:x = Person("peter",18)

② print(x.name) 调用类的属性

③ print(x.run("肉"))

(二)继承

子类继承父类的属性和方法

class Student(Person):  #继承时括号内直接写父类的类名
    pass #完全继承父类的属性和方法。

class Student(Person):

    def __init__(self,name,age,cno)
        Person.__init__(self,name,age)  
        self.cno = cno #在父类的基础上新增属性,需要先将父类指定进来。否则新增属性会将父类的属性覆盖。
        
    def run(self):
        r = Person.run(self)
        return r  # 在父类的基础上新增方法,需要先指定父类的方法。

方法重新定义后,调用的时候,默认先去调用子类的方法,然后再去调用父类的方法。

(三)访问限制

1.访问限制可以使,类内部的属性和方法,不能外部随便访问。用法是在属性或方法前面加双下划线,表示私有属性。

2.访问限制,不能被外部随便访问,但可以被内部调用,私有属性可以用方法调用,私有方法,可以定义其他方法调用。

class Person():
    def  __init__(self,name):
        self.__name = name
        
    def  __eat(self,food):
        return "%s爱上吃%s"% (self.__name,food)

(四)编码规范

1.缩进,4个空格的缩进,空格和tab不能混用(tab仅在编辑器中可使用)。

2.类名的单词以大写字母开头。

3.函数和类的属性命名以小写,用下划线连接

4.所有的命名都应采用有意义的英文单词,多单词由下划线连接。

五、模块

(一)引入模块

(1)import 后面直接跟模块名或类或函数。

import time

(2)from 路径 import 类或函数 #路径最好用绝对路径。

from model.A import add

(二)安装三方库

(1)sudo pip3 install pymysql(三方库名) # 在命令行直接输入即可。

(2)在 pycharm 里面,点击 file,选择 setting,选择 Project,选择 Project Interpreter,在右上角点 + 号,输入库名即可安装。

(3)如果是需要下载的三方库,下载后查看文件包里面的 readme 文件,根据描述进行安装。

六、异常处理

(一)try语句

(1)try … except…except 表示当程序运行错误后,被 except 捕捉到,返回一个可定义的信息,且不会影响后续语句的执行。每个 except 后面跟不同的返回信息。

try:
    print(a)
    10/0
except NameError:
    print("a未被定义")
except ....

(2)try …except…finally 同(1)一样,但 finally 后的语句,无论是否发生异常,都会执行。

(3)try…except…else 同(1)一样,但 **else ** 后的语句,是在没有发生异常的情况才会执行。

(二)抛出异常

① raise NameError(“这是一个名称错误”)

(三)常见的异常

① AssertionError assert(断言)语句失败。

② AttributeError 试图访问一个对象没有的属性,比如foo.x,但是foo没有x这个属性。

③ IOError 输入/输出异常,基本上是无法打开文件。

④ ImportError 无法引入模块或者包,基本上是路径问题。

⑤ IndentationError 语法错误,代码没有正确对齐。

⑥ IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]。

⑦ KeyError 试图访问字典里不存在的键。

⑧ Kerboardinterrupt Ctrl+C被按下,主要针对无限循环。

⑨ NameError 使用一个还未被赋值予对象的变量。

⑩ SyntaxError 代码非法,代码不能解释。

⑪ TypeError 传入对象类型与要求的不符。

⑫ UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另一个同名的全局变量,导致你以为正在访问它。

⑬ ValueError 传入一个调用者不期望的值,即使值的类型是正确的。

⑭ FileNotFoundError 试图打开一个不存在的文件或目录。

七、文件读写

(一)以读的形式打开,并能写(r+)

>> f = open("test.txt","r+")
>> f.write("xxx")
>> f.flush()
>> f.close()

2.光标会放在文件开头,输入的输入会覆盖开头

(二)以写的形式打开,并能读(w+)

>> f = open("test.txt","w+")
>> data = f.read()
>> print(date)

2.若文件已存在会将其覆盖,若文件不存在,会新建文件。

(三)追加模式(a+)

>> f = open("test.txt","a+")

2.光标在文件的末尾,写入会追加到末尾,若文件不存在,会新建文件。

with open("test.txt","a+",encoding="utf-8") as f:
    f.write("我是中文")
    f.flush()

如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!

😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓

1️⃣零基础入门

① 学习路线

对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述

2️⃣国内外Python书籍、文档

① 文档和书籍资料

在这里插入图片描述

3️⃣Python工具包+项目源码合集

①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

4️⃣Python面试题

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

上述所有资料 ⚡️ ,朋友们如果有需要的,可以扫描下方👇👇👇二维码免费领取🆓

相关推荐

  1. Python基础入门 --- 8.文件

    2024-03-21 13:06:02       18 阅读
  2. Python 48小时速成 8】函数

    2024-03-21 13:06:02       17 阅读
  3. Python语言基础(简单入门

    2024-03-21 13:06:02       14 阅读
  4. Python基础入门语法与数据类型

    2024-03-21 13:06:02       41 阅读
  5. Python基础语言 一 》— Echo

    2024-03-21 13:06:02       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-21 13:06:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-21 13:06:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-21 13:06:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-21 13:06:02       20 阅读

热门阅读

  1. vue3自定义指令

    2024-03-21 13:06:02       16 阅读
  2. 5.2.6、【AI技术新纪元:Spring AI解码】Amazon Bedrock

    2024-03-21 13:06:02       21 阅读
  3. IDEA启动提示Downloading pre-built shared indexes

    2024-03-21 13:06:02       20 阅读
  4. 事务acid

    2024-03-21 13:06:02       17 阅读
  5. 第二十五章 Web Gateway 管理页面概述 - 可用选项

    2024-03-21 13:06:02       18 阅读
  6. python视频处理工具

    2024-03-21 13:06:02       20 阅读
  7. 驱动安装问题导致进入不了ubuntu

    2024-03-21 13:06:02       19 阅读
  8. 判断是否为闰年?【C语言】

    2024-03-21 13:06:02       17 阅读
  9. 测试临时保存内容

    2024-03-21 13:06:02       19 阅读