python基础学习(一)

举报
坠入极夜的夏 发表于 2024/04/18 20:49:52 2024/04/18
【摘要】 python基础学习(一){字符串格式化.数据类型,运算符,推导式(简化生成数据),函数编程,模块}

python基础学习(一)

编码相关

文件存储时,使用某种编码,打开时就需要使用相同的编码,否则就会乱码。字符底层存储时本质上都是0101010101010101。 字符和二进制的对应关系(编码):

- ascii编码,256中对应关系。
- gb2312,gbk,中文和亚洲的一些国家【中文是2个字节】
- unicode,ucs2/ucs4,包括现在发现的所有文明。
- utf-8编码,【中文是用几个字节?3字节】
python

data = "中"
res = data.encode('utf-8')
print(res) # b'\xe4\xb8\xad'
data = "国"
res = data.encode('gbk')
print(res) # b'\xb9\xfa'

计算机中的单位

/字节/KB/MB/GB

字符串格式化

a1 = "我是{},年龄{}".format("马X祺", 22)

a2 = "我是%s,年龄%d" % ("丁X鑫", 22,)

name = "XX少年团"
time = 20XX
a3 = f"name:{name},time:{time}"
print(a1)
print(a2)
print(a3)

数据类型

常见数据类型:['int', 'bool', 'str', 'list', 'tuple', 'dict', 'set', 'float', 'None']
    --转换为布尔值为False:'None', 0
    --转换为布尔值为Turn:'int', 'bool', 'str', 'list', 'tuple', 'dict', 'set', 'float'
    --可变:'list', 'dict', 'set'
    --不可变:'int', 'bool', 'str', 'tuple', 'float', 'None'
    --可哈希:'int', 'bool', 'str', 'tuple', 'float', 'None'
    --不可哈希:'list', 'dict', 'set'
    --字典的键/集合的元素必须是可哈希的类型('list', 'dict', 'set'不能座位字典的键和集合元素)
主要数据类型:
    --str:
        --独有功能::split/lower/start switch/split/strip/join
        	str不可变,在执行大部分功能时,不会对原数据字符串进行修改,而是生成新的内容
        --公共功能:取长度(len)/索引(仅获取)/切片(仅获取)/for循环/判断是否包括
    --list(列表):
        --独有功能:append/insert/remove/pop...
        	list可变,很多功能都是对原字符串进行修改
        --公共功能:取长度(len)/索引(可以修改原数据)/切片(可以修改原数据)/for循环/判断是否包括
    --dict:
        --独有功能:get/keys/items/values
        --公共功能:取长度(len)/索引/for循环/判断是否包括(判断键时效率很高)

运算符

一般:
    1>10 and 1<10  # --->turn or false
特殊逻辑运算(整体结果取决于谁,结果就等于谁):
    a1 = 1 and 2	# --->2
    a2 = [] or 10	# --->10
    a3 = "原神" or [] # --->"原神"

推导式(简化生成数据)

data = []
for i in range(10):
    data.append(i)
    
data = [i for i in range(10) ]
data = [i for i in range(10) if i<5 ]	# --->[0,1,2,3,4]

函数编程

函数基础知识:
	--定义
	--参数:
		--概念:位置传参/关键字传参/参数默认值/动态参数(*args/**kwargs)
	--返回值:
        --函数中一但遇到return就立即返回,且后续代码不执行,且默认返回值(None)
函数进阶知识:
    --python中是为函数为作用域
    --全局变量and局部变量:
        --建议:
            --全局变量大写,局部变量小写,用_链接.
    		--在局部变量中使用global关键字,global作用:说明该局部变量是引用全局的,而不是在局部内新建的
内置函数('python内自带提供的函数'):
    --bin/hex/odc/max/min/divmod/sorted('数字可以排序,中文,标点排序依据unicode编码')/open('文件操作')
文件操作:
    --基本操作:打开,操作,关闭;为了防止忘记关闭文件,可以用with
    --打开文件时的模式:
        -r/rb,[读时文件不存在,报错]
        -w/wb,/清空写	 [文件不存在时,会自动新建]
        -a/ab,追加	  [文件不存在时,会自动新建]
        [如果路径(目录)不存在,全报错]
        os.makedirs/op.path.exsits	[判断是否存在,不存在新建路径(目录)]

模块

模块的分类:
    --自定义模块:
        --os.path:导入模块时,python会到那个目录去找模块
        --不要与python内置模块or第三方模块同名
        -- import/form xx import xx
    --内置模块:
        time/datetime/json/re/random/os...
		查看当前目录夏所有文件:os.listdir("获取一级目录")/os.walk('获取所有目录')
        --时间模块:时间戳/daretime/字符串	# 三者可以互相转化
        --json模块:
            --JSON本质时字符串,有一些自己的格式要求,PS:无元组/无单引号
            --json.dumps序列化时,只能序列化python常用数据类型
        --re模块:
            --元字符:
             	 .  匹配除换行符以外的任意字符
                \w 匹配字海或数字或下划线
                \S 匹配任意的空白符
                \d 匹配数字
                \n 匹配一个换行符
                \t 匹配一个制表符
                \^ 匹配字符串的开始
                \$ 匹配字符串的结尾
                \W{大写} 匹配非字母或数字或下划线
                \D 匹配非数字
                \S{} 匹配非空白符
                a|b 匹配字符a或字符b
                () 匹配括号内的表达式,也表示一个组
                [ ...] 匹配字符组中的字符
                [^...] 匹配除了字符组中字符的所有字符
            --量词:
                * 重复零次或更多次
                + 重复一次或更多次
                ? 重复零次或一次
                {n} 重复n次
                {n,} 重复n次或更多次
                {n,m} 重复n到m次
            --贪婪匹配&惰性匹配:
                .* 贪婪匹配
                .*? 惰性匹配
    --第三方模块:
        requests/openpyxl/python-docx/flask/bs4
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。