前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【学习笔记】Python基础

【学习笔记】Python基础

作者头像
Livinfly
发布2022-10-26 16:10:17
5130
发布2022-10-26 16:10:17
举报
文章被收录于专栏:Livinfly

关于


该学习笔记为本人学习Bilibili上尚硅谷的教程的记录.

注释

单行注释

代码语言:javascript
复制
# 注释内容

快捷键 : ctrl + /

多行注释

代码语言:javascript
复制
  '''
      注释内容
  '''

变量


常用变量

int

代码语言:javascript
复制
a = 12
  • float
代码语言:javascript
复制
b = 1.2
  • boolean
代码语言:javascript
复制
gender_1 = True
gender_2 = False
  • string
代码语言:javascript
复制
#单引号、双引号(单个中不能混用,就近匹配)
s0 = 'Hello python'
s1 = '"zzz"'  # Yes
s2 = ''sss'' # No
s3 = ""zzz"" # No
  • list 列表
代码语言:javascript
复制
name_list = ['Amy', 'Bob']
  • tuple 元组
代码语言:javascript
复制
age_tuple = (18, 19, 20, 21)
  • dict 字典
代码语言:javascript
复制
# xxx = {key:value, ...}
person = {'name':'小明', 'age' : 18}

查看类型及命名规则、规范


查看变量

数据有类型,变量没有类型

代码语言:javascript
复制
xxx = '???'
print(type(xxx))
命名规则、规范

字母+下划线+数字,且不能数字开头 严格区分大小写 不能使用关键字

  • 驼峰命名
    • 小驼峰
      • userLoginFlag
    • 大驼峰
      • FirstName
  • 下划线
    • user_login_flag

类型转化

代码语言:javascript
复制
float --> int 只取整数部分
True ---> 1
False --> 0
字符串有非法字符转不了,如:
    a = '1.64'
    b = int(a) # NO
    c = float(a) # Yes
    
    z = str(y)

结果转为Bool是False:

  1. 0
  2. 0.0
  3. ''
  4. []
  5. ()
  6. {}
格式
代码语言:javascript
复制
x = int(a)

运算符


算数运算符

代码语言:javascript
复制
+, -, *, /
// 整除
%  取余
** 幂

** > */%// > +-

字符串的+为拼接 字符串的乘法, 将字符串重复几次 +号两端格式一样

赋值运算符

代码语言:javascript
复制
b = c = 20
d, e, f = 3, 4, 5 # 逗号分隔

复合赋值运算符

代码语言:javascript
复制
a += 3
# *=, -=, /=, //=, %=, **=

比较运算符

代码语言:javascript
复制
# 返回bool
# ==, != (<> -- python2), <, <=, >, >=

逻辑运算符

代码语言:javascript
复制
and, or, not

# 性能优化

# and(短路与)
36 > 10 and print('111')#输出111
36 < 10 and print('111')#不输出
# 前面是false,后面就不执行了

# or(短路或)
# 同理,or前面是true,后面就不执行了

输入输出


输出

代码语言:javascript
复制
#普通输出
print('xxx')
print('xxx' + str(xx))

#格式化输出
# %s, %d
name = '小明', age = 18
print('aaaa%s, bbbb%d' % (name,age))

输入

代码语言:javascript
复制
# 读入的是字符串
account = input('请输入账号‘)

流程控制


if - else - elif

代码语言:javascript
复制
a = 2
if a > 18:
    print('Yes')
elif a > 5:
    print('No')
else:
    print('error')

for

代码语言:javascript
复制
# 字符串
s = 'China'
for i in s:
    print(i)
# range(5)
for i in range(5):
    print(i)
# 0, 1, 2, 3, 4

# rawnge(1, 6)
# 1,...,5

# range(1, 10, 3)
# 1, 4, 7

# list

# 遍历元素
for i in a_list:
    print(i)
# 遍历下标
for i in range(len(a_list)):
    print(a_list[i])

数据类型常用方法


字符串

代码语言:javascript
复制
#获取长度 
a = len(s)

#返回第一次出现的位置
a = s.find('a')

#判断开头结尾,返回Bool
a = s.startswith('c')
a = s.endswith('n')

#出现次数
a = s.count('a', 2, 5) # [2, 5) 区间参数可加可不加

#替换
s.replace('c', 'd', 3) # old, new, max times

#切割
s = '1#2#3$4'
a = s.split('#') # a -- list

#大写
s2 = s1.upper()
s3 = s1.lower()

#去除 - 只能去除开头和结尾,中间不去
s = s.strip() #去空格
s = s.strip('0') 

s = s.strip('12') #'21'也去..

#拼接

a = 'a'
s = a.join('hello')
# s = 'haealalao'

列表

crud

字符串
代码语言:javascript
复制
# append - 在最后添加
food_list.append('xxx')

# insert - 想要插入的位置
# ['a', 'c', 'd']
char_list.insert(1, 'b')
# ['a', 'b', 'c', 'd']

# extend
# list1->list1 + list2
list1.extend(list2)
列表
代码语言:javascript
复制
# [index] - 修改
city_list[2] = 'xxx'

# in - 判断是否在list中
# not in
if 'apple' in food_list:
    print('yes')

# 删除

# del [index]
del aList[2]
# pop 删除最后一个元素
aList.pop()
# 根据元素的值删除
aList.remove(3)
元组

元组的元素不能修改

代码语言:javascript
复制
aTuple = (5) # int
aTuple = (5,) #tuple
aTuple = (1, 2, 3, 4)
#访问, index
print(aTuple[2])
切片

字符串、列表、元组都支持

代码语言:javascript
复制
s = 'hello world'
print(s[0])
# hell [a,b)
print(s[0:4])
print(s[1:]) # 从1开始
print(s[:4]) # 到4结束
print(s[0:6:2]) # step
字典
代码语言:javascript
复制
#定义
man = {'name':'ming', 'age':28}
#访问
print(man['name'])
#引用不存在的key,报错keyerror
print(man.get('name'))
# 查询不存在的sex返回None
print(man.get('sex'))

# 修改

man['name'] = 'hong'
# 不能用get

# 添加

# new key value
man['sex'] = 'male'

# 删除

# del - 1.删指定某一元素 2. 删字典

del man['age']
del man

# clear - 清空字典,但保留字典对象

man.clear()

# 遍历

# 遍历key
# xxx.keys(),所有key的值
for x in man.keys():
    print(x)

# 遍历value
for x in man.values():
    print(x)

# 遍历key和value
for key, value in man.items():
    print(key,value)

# 遍历项/元素
for x in man.items():
    print(x)

函数

代码语言:javascript
复制
# 定义函数
def f1():
    print('hello')
# 调用函数
f1()
# 含参函数

def sum(a, b): # a,b - 形参
    c = a+b
# 位置传参
sum(1, 2) # 1, 2 - 实参
# 关键字传参
sum(b = 200, a = 100)

# 返回值
def sum(a, b):
    return a+b
print(sum(1, 2))

局部变量和全局变量

函数内部定义的作用范围只有在函数内部 函数外部定义的作用范围都可以 在满足需求的前提下,选择作用域最小的

文件

代码语言:javascript
复制
# open(path, mode)
# 不能创建文件夹
# w 可写(覆盖), r 可读, a追加,r+读写(文件指针在文件开头,w+读写(覆盖)
# rb以二进制格式打开只读,类似的wb,ab,rb+,wb+,ab+

# 打开
# a.txt, ./a.txt, ../a.txt
open('a.txt', 'w')

fp = open('a.txt', 'w')

# 写数据
fp.write('hhh')

# 读数据
fp = open('a.txt', 'r')
# 默认是一字节一字节的读,效率比较慢
content = fp.read()
# 读取一行
content = fp.readline()
# 读取多行,读完(返回列表)
content = fp.readlines()

# 关闭 - 内存不一样
fp.close()

序列化和反序列化

因为对象无法直接写入到文件中,所以要进行序列化再写入

代码语言:javascript
复制
对象 --> 字节序列 --- 序列化

字节对象 --> 对象 --- 反序列化
代码语言:javascript
复制
fp = open('a.txt', 'w')
nameList = ['ming', 'hong']

# 序列化1 - dumps()
# 将python对象变为json字符串
# 在时使用scrapy框架时,会返回对象

# 引入json模块
import json

names = json.dumps(nameList) # 字符串

fp.write(names)

# 序列化2 - dump

import json

# 相当于把上面的两部合并了
json.dump(nameList, fp)

# 反序列化1 - loads()
# 将json字符串变为python对象
content = fp.read()

res = json.loads(content)

# 反序列化2 - load

import json

# 读的是文件
res = json.load(fp)

fp.close()

异常

代码语言:javascript
复制
# try:
#      可能出现异常的代码
# except [异常的类型]:
#      提示

try:
    fp = open('a.txt', 'r')
    fp.read()
except FileNotFoundError:
    print('404 not found')
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年07月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于
  • 注释
  • 变量
    • 常用变量
      • 查看类型及命名规则、规范
        • 查看变量
        • 命名规则、规范
      • 类型转化
        • 格式
    • 运算符
      • 算数运算符
        • 赋值运算符
          • 复合赋值运算符
            • 比较运算符
              • 逻辑运算符
              • 输入输出
                • 输出
                  • 输入
                  • 流程控制
                    • if - else - elif
                      • for
                      • 数据类型常用方法
                        • 字符串
                          • 列表
                            • 字符串
                            • 列表
                            • 元组
                            • 切片
                            • 字典
                        • 函数
                          • 局部变量和全局变量
                          • 文件
                            • 序列化和反序列化
                            • 异常
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档