一、pip指令

win+R打开命令窗口
pip install 安装某个包
pip uninstall 卸载某个包
pip install 某个包 -i http://douban.com/simple 用镜像下载更快

二、注释

单行注释

多行注释
‘’’
‘’’

三、变量类型

int
long
float
complex
布尔类型
String
List(列表)
Tuple(元组)
Dictionary(字典)

四、列表,字典,元组

# 列表
name_list=['周杰伦','科比']
print(name_list)

# 元组
age_tuple=(18,19,20,21)
print(age_tuple)

# 字典
# 非常重要,scrapy框架的使用
# 格式
# 变量的名字={key:value,key1:value1}
person={'name':'阿斯顿','age':18}
print(person)

五、查看数据类型

a=1
print(type(a))

六、变量命名规范

标识符由字母,下划线和数字组成,且数字不能开头
严格区分大小写
不能使用关键字

七、数据类型转换

1、转换为int类型

a='123'
b=int(a)
print(type(b))

b=1.23
c=int(b)
print(type(c))

a=True
print(int(a))

a='123'
b=int(a)
print(b)

2、转换为浮点数

# 爬虫的时候大部分获取的都是字符串
a='12.34'#转换不了int类型
print(type(a))
b=float(a)
print(b)

c=999
print(float(c))

3、转换为字符串

a=80
print(type(a))
b=str(a)
print(b)
print(type(b))

a=1.2
print(type(a))
b=str(a)
print(b)
print(type(b))

a=True
print(type(a))
b=str(a)
print(b)
print(type(b))

输出结果

<class 'int'>
80
<class 'str'>

<class 'float'>
1.2
<class 'str'>

<class 'bool'>
True
<class 'str'>

4、转换为布尔型

#非零即1
a=1
print(bool(a))

a=2
print(bool(a))

a=-1
print(bool(a))

a=0
print(bool(a))

a=0.0
print(bool(a))

print("-------------------")
#字符串中有内容,转换完了之后都是True
a='萨达'
print(bool(a))

a=''
print(bool(a))

print("-------------------")
#只要列表有数据,就是True
a=['阿斯顿','啊撒旦']
print(bool(a))

a=[]
print(bool(a))

print("-------------------")
#只要元组有数据,就是True
a=('asd','asd')
print(bool(a))

a=()
print(bool(a))

print("-------------------")
#只要字典有数据,就是True
a={'name':'asdas'}
print(bool(a))

a={}
print(bool(a))

a={'':''}
print(bool(a))

输出结果

True
True
True
False
False
-------------------
True
False
-------------------
True
False
-------------------
True
False
-------------------
True
False
True

八、运算符

在这里插入图片描述

1、赋值运算符

python所特有写法

d,f,r=0,2,3
print(d)
print(f)
print(r)

2、比较运算符

在这里插入图片描述

3、逻辑运算符

在这里插入图片描述

4、逻辑运算符性能优化

# and的性能优化,当and前面的结果是false的情况下,那么后面的代码就不会执行了
a=36
a>10 and print("hello")

# or的性能优化,只要一方为true,那么结果就是true,当前面为true,后面就不执行了
b=38
b>39 or print("world")

九、输入输出(格式化输出%s,%d)

# and的性能优化,当and前面的结果是false的情况下,那么后面的代码就不会执行了
a=36
a>10 and print("hello")

# or的性能优化,只要一方为true,那么结果就是true,当前面为true,后面就不执行了
b=38
b>39 or print("world")

password=input("请输入你的密码:")
print("我的密码是:%s"%password)

十、if…else…语句

age=19
if age>18:
    print("你好")

gender=True
if gender==True:
    print("你是男性")
    
#input返回的是字符串类型
age=input("请输入你的年龄:")
if int(age)>18:
    print("您已成年!")

score=int(input("请输入分数"))
if score>=90:
    print("优秀")
elif score>=80:
    print("良好")
else:
    print("不及格")

十一、for循环

# i是字符串中一个又一个字符的变量
# s是代表的要遍历的数据
s="china"
for i in s:
    print(i)

# range方法的结果是一个可以遍历的对象
# range(5)方法的结果,左闭右开区间1-4
for i in range(1,6):
    print(i)

for i in range(1,10,3):#间隔3个输出
    print(i)

# 应用场景,会爬取一个列表给我们
# 循环一个列表
a_list=['asd','as','asds']
for i in a_list:
    print(i)
#遍历列表中的下标
for i in range(len(a_list)):
    print(i)

十二、字符串的高级方法(len,find,startwith,endwith,count,replace,split,upper,lower,strip,join)

在这里插入图片描述

s="china"
print(len(s))
print("--------------------")

s1="china"
print(s.find("c"))#返回字符串中第一次出现的位置
print("--------------------")

#是以特定字符出现在开头结尾吗
s2="china"
print(s2.startswith("c"))
print(s2.endswith("a"))
print("--------------------")

#统计字符出现的个数
s3="aaabb"
print(s3.count("a"))
print("--------------------")

#替换字符串
s4="cccdd"
print(s4.replace("c","d"))#将c替换成d
print("--------------------")

#字符串分割
s5="1#2#3#4#5"
print(s5.split('#'))
print("--------------------")

#转换成大小写
s6='china'
print(s6.upper())
s7='CHINA'
print(s7.lower())
print("--------------------")

#去空格
s8="     a    "
print(len(s8))
print(len(s8.strip()))
print("--------------------")

#拼接,将这个字母一个个的都插入到字符的后面
s9='h'
print(s9.join('hello'))

输出结果

5
--------------------
0
--------------------
True
True
--------------------
3
--------------------
ddddd
--------------------
['1', '2', '3', '4', '5']
--------------------
CHINA
china
--------------------
10
1
--------------------
hhehlhlho

十三、列表的高级方法(增、删、改、查)

1、增加数据(append,insert,extend)

# 在列表的最后添加数据append
food_list=['q','r']
food_list.append("蘑菇")
print(food_list)

# insert,第一个参数是要插入的下标
char_list=['a','b','c','d']
char_list.insert(2,'p');
print(char_list)

# extend,将列表整个的插入到后面
num_list=[1,2,3]
num1_list=[4,5,6]
num_list.extend(num1_list)
print(num_list)
['q', 'r', '蘑菇']
['a', 'b', 'p', 'c', 'd']
[1, 2, 3, 4, 5, 6]

2、删除数据

# 删除 del
#爬取的数据中,有我们不想要的可以删除掉
a_list=[1,2,3,3]
print(a_list)
del a_list[2]
print(a_list)
print("-----------------")

# pop()删除最后一个元素
b_list=[5,6,7,8]
print(b_list)
b_list.pop()
print(b_list)
print("-----------------")

# remove()删除指定的元素,好像只能删除第一次出现的额位置
c_list=[1,2,3,3]
print(c_list)
c_list.remove(3)
print(c_list)
[1, 2, 3, 3]
[1, 2, 3]
-----------------
[5, 6, 7, 8]
[5, 6, 7]
-----------------
[1, 2, 3, 3]
[1, 2, 3]

3、修改数据

#通过下标来修改
city_list=['1','2','3','4','5']
city_list[4]=0
print(city_list)
['1', '2', '3', '4', 0]

4、查找数据

num_list=['5','9','23','5']
num=input("请输入数字:")
if num in num_list:
    print("存在")
else:
    print("不在")

ball_list=['篮球','排球']
ball=input("请输入球类:")
if ball not in ball:
    print("不在")
else:
    print("在")
请输入数字:6
不在
请输入球类:排球
在

十四、元组的高级方法(注意:元组的元素是不能被修改的!)(好像只有查找的操作可以)

a_tuple=(1,2,3)
print(a_tuple)
print(a_tuple[2])
# 元组的元素是不能被修改的!
# 如果定义只包含一个元素的元组,需要在后边加一个逗号
b_tuple=(1,)
print(b_tuple)
(1, 2, 3)
3
(1,)

十五、字符串、列表、元组的切片操作

s="hello,world"
# 字符串的第四个元素
print(s[4])
#左闭右开
print(s[0:5])
#从起始开始,一直到最后
print(s[1:])
#从下标为0的索引开始,一直到第二个参数为止,左闭右开区间
print(s[:4])
#hello,world,从下标为0的位置开始,到下标为7的位置结束,每次增长2个长度,左闭右开
print(s[0:7:2])
o
hello
ello,world
hell
hlow

十六、字典的高级方法(增、删、改、查、遍历)

1、增加数据

person={'name':'老马'}
print(person)
#给字典添加一个新的key和value
person['age']='18'
print(person)
{'name': '老马'}
{'name': '李四', 'age': '18'}

2、删除数据

# del:删除指定的元素
person={'name':'张三','age':18}
print(person)
del person['age']
print(person)
# del也可以删除整个字典,但是不能输出了,会报错
del person

# clear:清空字典,但是保留字典对象,可以输出,保留了字典结构
person2={'name':'李四','age':99}
person2.clear()
print(person2)
{'name': '张三', 'age': 18}
{'name': '张三'}
{}

3、修改数据

person={'name':'张三','age':19}
# 修改之前
print(person)
#修改name为李四
person['name']='李四'
print(person)
{'name': '张三', 'age': 19}
{'name': '李四', 'age': 19}

4、查找数据

person={'name':'啊撒旦','age':21}
print(person['name'])
print(person['age'])

# print(person['sex'])#访问不存在的key也是会报错的
# print(person.name)#这样写是会报错的

print(person.get('name'))
print(person.get('age'))

print(person.get('sex'))#访问不存在的key的时候,会返回None值
啊撒旦
21
啊撒旦
21
None

5、字典的遍历(很重要)

person={'name':'李四','age':87,'sex':'男'}
# 1、第一种方法,遍历字典的key.# keys()可以获取字典所有key的值
for key in person.keys():
    print(key)
print('------------')
# 2、第二种方法,遍历字典的value.# values()可以获取字典所有的value值
for value in person.values():
    print(value)
print('------------')
# 3、遍历字典的key和value
for key,value in person.items():
    print(key,value)
print('------------')
# 4、遍历字典的项/元素
for item in person.items():
    print(item)
name
age
sex
------------
李四
87------------
name 李四
age 87
sex 男
------------
('name', '李四')
('age', 87)
('sex', '男')

十七、函数

1、函数的定义和调用

def f1():
    print("99")
    print("777")
    print("887")
    
f1()

2、函数的参数

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

# 位置参数
sum(1,2)

#关键字传参
sum(b=98,a=97)

3、函数的返回值

def buyIceCream():
    return '冰激凌'

print(buyIceCream())

def sum(a,b):
    c=a+b
    return c 
print(sum(123,456))

十八、文件

在这里插入图片描述

1、文件的打开和关闭

# open(文件的路径,模式)
# open函数可以打开一个已经存在的文件
# 模式: w 可写  r 可读

# 文件的打开
fp = open('test.txt', 'w')
fp.write("helllo")

f=open('demo/text.txt','w')
f.write('asdsadsadsa')

#文件的关闭
f.close()
fp.close()

2、文件的读写

#如果文件存在,会先清空原来的数据,然后再写
fp=open("test.txt",'w')
fp.write('hello\n'*5)
fp.close()

#如果模式变为了a,会执行追加的操作
fp=open("test.txt",'a')
fp.write('hello\n'*5)
fp.close()

#读数据
fp=open('test.txt','r')
#默认情况下是一字节一字节的读
content=fp.read()
print(content)
fp.close()

print('------------------')
#一行一行的读取,但是只能读取一行
fp=open('test.txt','r')
content2=fp.readline()
print(content2)
fp.close()

fp=open('test.txt','r')
content2=fp.readlines()#返回的是一个链表
print(content2)
fp.close()

3、文件的序列化和反序列化

在这里插入图片描述

#序列化

#必须导入json文件!!!
import json
#默认情况下,对象是无法写入到文件中,如果想写入到文件中,必须使用序列化的操作
# 序列化的两种方式
#一、dumps()
fp=open('test.txt','w')
name=['zs','ls']
name=json.dumps(name)#将python对象转换为json字符串
fp.write(name)
fp.close()

#二、dump
fp=open('test.txt','w')
name=['zs','ls']
# dump相当于把下面这两步合并了
# name=json.dumps(name)
# fp.write(name)
json.dump(name,fp)
fp.close()

# 反序列化,两种方法
# loads
fp=open('test.txt','r')
content2=fp.read()
result=json.loads(content2)
print(result)
print(type(result))

# load
fp=open('test.txt','r')
result=json.load(fp)
print(result)
print(type(result))

4、文件的异常处理(try…except)

在这里插入图片描述

try:
    fp=open('uuu,txt','r')
    fp.read()
except FileNotFoundError:
    print("文件不存在")
Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐