【Python】Python基础语法(1)

2023-05-13 13:45:56 浏览数 (1)

Python基础知识

相关视频——Python爬虫编程基础5天速成(2021全新合集)Python入门 数据分析


前言

  • Python是一门解释型、面向对象的高级编程语言。
  • Python是开源免费的,支持交互式、可跨平台移植的脚本语言。
  • Python的设计混合了传统语言的软件软件工程的特点和脚本语言的易用性。
    • 具有如下特性:
    • 开源、易于维护
    • 可移植
    • 易于使用、简单优雅
    • 广泛的标准库、功能强大
    • 可扩展、可嵌入

变量

  • 注释
代码语言:javascript复制
多行注释
```

```
单行注释
# 
  • 变量无需先定义,直接使用即可
代码语言:javascript复制
a = 'ABC'
Python解释器干了两件事
1在内存中创建了一个'ABC'的字符串
2在内存中创建了一个名为a的变量,并把它指向'ABC'
  • print
代码语言:javascript复制
占位符——格式化输入
age = 3
print("我今年%d岁了",age)
  • input——进行输入
  • type(变量名)查看变量的类型
  • 强制类型转换——变量类型(变量)
  • **——次方

条件判断语句

代码语言:javascript复制
c = int(input())
if c > 10:
    print("大于10")
elif c <10:
    print("小于10")
else:
    print("等于10")

通过缩进来告诉编译器这几行代码属于同一个代码段。

引入库

import xxx或者from … import 来导入相应的模块

可以选择全部引入还是引入部分函数。

循环语句

for…in,可以依次把list或者tuple中的元素迭代出来。

代码语言:javascript复制
for i in range(5):
    print(i)
    # 0 1 2 3 4
    
    #从0开始以3为增量(步进值 ),11为限制
for i in range(0,11,3):
    print(i)    
    #0 3 6 9

	#逐个遍历字符串中的每个字母
name = "beijing"
for x in name:
    print(x)
    
    #遍历列表中的每个元素
a = ["aa","bb","cc"]
for i in range(len(a)):
    print(a[i])

while

python没有

代码语言:javascript复制
#计算1到100的和
i = 1
sum = 0
while i <= 100:
    sum  = i
    i =1
print(sum)

python总while可以和else使用,当while条件不满足的时候执行else

代码语言:javascript复制
i =1
while i < 10:
    print(i,"小于10")
    i  = 2
else:
    print(i,"大于等于10") #不满足while执行条件,循环终止。
  • break、continue同其他编程语言
  • pass是空语句,一般用做占位语句,不做任何事情。

字符串

String

  • Python中的字符串可以使用单引号、双引号或者三引号,反斜杠转义特殊字符。
  • Python3源码文件默认以UFT-8编码,所有字符串都是unicode字符串。
  • 支持字符串拼接、截取等多种运算。

三引号,默认保留编写程序时的格式。

代码语言:javascript复制
words = """
123
ABC
A1B2C3
"""

单双引号使用时候区别,有的字符串用到单引号就需要使用转义字符,类似情况同理,使用转义字符。

字符串的截取

代码语言:javascript复制
str = "123ABC"
#访问某一个字符,就当做字符数组使用
print(str[1])
#xx[起始位置:结束位置]
print(str[1:3])
#字符串访问中同样也有步进值
print(str[0:4:2])
#起始位置可以省略,默认为从第一个开始
print(str[:2])
#结束位置可以省略,默认为到最后一个结束
print(str[0:])

字符串的拼接

“xxx” “xxx”

引号前加r取消转义,内容全部保留

代码语言:javascript复制
print(r"123n")

字符串相关函数

略…,现用现查吧。


列表

类似于其他编程语言中的数组。

  • 列表可以完成大多数集合类的数据结构实现。列表中有元素的类型可以不相同,它支持数字、字符串、甚至可以包括列表(嵌套)。
  • 列表是写在方括号[]之间,用逗号分隔开的元素列表
  • 列表索引值以0为开始值,-1为从末尾的位置开始。
  • 列表可以使用 操作符进行拼接。
代码语言:javascript复制
#创建
nameList = []#定义一个空列表
nameList1 = ["小王","小李"]
print(nameList1)#打印全部内容
testList = [123,"ABC"]#怎么定义的,就是什么类型
#遍历
for name in testList:
    print(name)
#长度
length = len(testList)
#常用的方法
#增加
#在末尾追加一个元素
nameList.append("添加一个数据")
#扩展,将另一个列表中的数据逐一添加到末尾
nameList.extend(nameList1)
#insert
nameList.insert(1,"数据")
#删除
#指定下标删除元素
del nameList[1]
#删除末尾元素
nameList.pop()
#指定数据元素删除-多个匹配内容只会删除找到的第一个
nameList.remove("元素名字")
#修改
nameList[1] = "我是新的数据"
#查找
findName = input("查找内容")
if findName in nameList:
    print("找到了")
else
    print("没有")
#指定范围查找指定内容,找到返回下标,左闭又开
nameList.index("查找内容",0,3)
#统计某个元素出现几次
nameList.count("元素")
#反转
nameList.reverse()
#排序-升序
nameList.sort()
#排序-降序
nameList.sort(reverse=True)
#嵌套
#有三个元素的空列表,其中的每个元素都是一个空列表
schoolNames = [[],[],[]]
SecondNames= [['赵','钱'],['孙','李']]

#例子-将元素随机分配
import random
office=[[],[],[]]
names = ["A","B","C","D","E","F","G","H"]
for name in names:
    index = random.randint(0,2)
    office[index].append(name);

元组

  • 类似于list,不同之处在于元组的元组不能修改,写在小括号里。
  • 元组的元素不可变,但可以包含可变对象。
代码语言:javascript复制
#创建元组
tupTest = (50)
#多数操作同List
tup1 = (12,13,14)
#元组中的元素不能被修改的
#增——将两个元组链接到一起在一起
tup2 = ('a','b')
tup = tup1   tup2
#删除
del tup#删除了整个元组变量

字典

  • 字典是无序的对象集合,使用键-值(key-value)存储,具有极快的查找速度。
  • 键(key)必须使用不可变类型。
  • 同一个字典中,键(key)必须是唯一的。
代码语言:javascript复制
#创建
info = {"name":"快乐的威猛先生","age":18}
#访问不存在的键,不报错方法
info.get("test")#不存在默认返回None
#可以设定找不到的默认返回值
info.get("gender","m")#m为默认返回值
#增
newID = input()
info["ID"] = newID
#删除
del info["name"]#删除了整个键值对
del info#删除整个字典,在内存中清除这个变量
#改
info["age"] = 19
#拿到所有的键,列表形式
info.keys()
#拿到所有的值
info.values()
#拿到所有的对儿, 每个键值对是与元组形式
info.items()
#遍历key value
for key,value in info.items():
    print("key=%s,value=%s"(key,value))
#使用枚举函数拿到列表元素及其下标
mylist = ["a","b","c","d"]
for i,x in enumerate(mylist):
    print(i,x)

集合

  • 和字典类似,也是一组key的结合,但不存储value。key不能重复。
  • 集合是无序的,重复的元素在set中自动被过滤。去重操作。

略…


函数

把具有独立功能的代码块组织为一个小模块。

代码语言:javascript复制
#函数的定义
def myfunction():
    print("---MyFunction---")
#函数的调用
myfunction()
#带参数的函数
def add2Num(a,b):
     return a b
#返回多个值
def test(a,b):
    return a 10,b 10
#接收
tmp1,tmp2 = test(10,20)

文件操作

代码语言:javascript复制
#打开文件
f = open("test.txt","w")
f.write("hello python")
f.close()
r = open("test.txt","r")
tmp =r.read(6)#读6个
#read方法读取指定的字符,开始定位于文件头部,随着指定往后移动
print(tmp)
#全部读完,放到列表中
tmp2=r.readline()
#每次读一行
tmp3=r.readline()
r.close()
#删除重命名等操作在os这个库中,删除时注意路径
import os
os.rename("test.txt","text2.txt")

异常处理

代码语言:javascript复制
#可能发生问题的代码块
try:
    f = open("123.txt", "r")
#捕获处理异常
except (IOError,NameError)as result:#异常类型想要被捕获,需要一致。逗号分隔多种异常
    #捕获异常后指定的内容
    pass
    #result获取异常描述
    print(result)
import time
#try---finally,和嵌套
try:
    r = open("123.txt","r")#这里出现问题会直接跳出,到 except
    try:
        while True:
            content = r.readline()
            if(len(content) == 0):
                break
            time.sleep(2)
            print(content)
    finally:
        r.close()
        print("文件关闭")
except Exception as result:
    print(result)
finally:
    #无论有没有异常都会被执行
    print(123)

0 人点赞