小白第一月Python学习笔记

编程入门 行业动态 更新时间:2024-10-09 17:23:25

小白第一月Python<a href=https://www.elefans.com/category/jswz/34/1770117.html style=学习笔记"/>

小白第一月Python学习笔记

前言

        记录一下自己学py的过程。自认为教一个人最好的就是自己刚学完的时候,我还清楚的记得所有初学者会产生的疑惑,所以趁热打铁写了一份教程,但编程环境的配置我就不多赘述了,个人用的Pycharm,可以自己去网上找相关教程配置。

        感兴趣的朋友学习时,一定要边敲边看输出结果,仔细理解注释,知识才不容易溜走。

输出函数_转义字符

print('---输出函数print()---')
# 输出函数print():可输入数据类型包括数,运算式,字符串,默认参数规定不换行输出多个对象
print(2)
print(1+1)
print('good morning')
print('你好')
print('02', 7, 'rain')print('---关键字参数file---')
fp = open('/text1.txt', 'a+')
# 设置变量fp
# 调用函数open以创建/增写的形式(a+)打开文件
# 注意分隔,盘/文件夹/文件
print(0.2, 'rain', file=fp)     # 以关键字形式传递print函数的参数file,规定要读写的文件对象fp
fp.close()                      # 关闭文件print('---转义字符---')
# 转义字符:有些字母或符号有特殊含义(如\ ,'',n),对 与特殊符号相同的 字符串内容进行注释的字符就是转义字符
print('02\nln2')    # \n:换行=>newline
print('02\rln2')    # \r:回车,返回起点覆盖=>return
print('02\tln2')    # \t:水平制表符,补全/增加1个制表位(4个字符)的空位=>tad
print('02\bln2')    # \b:退格,退1格位置,并覆盖邻近字符=>back
# 引号表示字符串内容print(r'---多个\的作用---')
print('http:\\\\www.baidu')  # 转义 输出 转义 输出
print('http:\\\www.baidu')   # 转义 输出 一体字符
print('我说:\“局座高见。\”')       # 转义 转义print('---原字符---')
# 原字符:无效在字符串中的所有转义字符
print(r'\rain')
print(R'\rain')
print(R'\rain\\')
# 字符串不能以奇数个的反斜杠结束

编码_变量_数据类型_注释

# 字节bit:八位二进制(1024进制,千字节KB、兆字节MB、吉字节GB、太字节TB),表示2^8=256种状态
# ASCII字符代码表(二字码表):0~31为非打印控制字符(人脸、方心梅桃、上下左右、音符、雌雄),32~127为打印字符(标点、字母大小写、数字、运算符),形状与含义无关,剩余128预留给国外使用
# GB2312:1980年后推出,表示简体中文,7445个汉字
# GBK:1990年后推出,表示简体和繁体中文
# GB18030:2000年后推出,表示简/繁体中文、维吾尔文、藏文,共17484个字符,每个字符可由1、2、4个字节组成
# Unicode:业界字符表示标准,所有语言用2个字节表示,即16进制
# UTF-8:英文1个字节表示(二字码表),中文用3个字节表示print('''---二进制->str->十进制---''')
# 翻译二进制的字符串函数chr(0b)=>charcode
print(chr(0b100111001011000))
# 编码十进制的字符串函数ord()=>order
print(ord('乘'))# 标识符:对象的命名,只能使用汉字、字母、数字、下划线,不能使用保留字,不能数字开头,严格区分大小写
# 保留字:给任何对象命名都不可用的单词
print('---查看保留字---')
import keyword
print(keyword.kwlist)
# 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except'
#  'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield', 'for', 'from', 'global'
# 'False', 'None', 'True', 'and', 'as', 'import', 'in', 'is', 'lambda', 'nonlocal','finally', 'if'print('---变量---')
# 变量:通过赋值运算符'='对变量名赋值,由标识(存储对象的内存地址),类型(对象的数据类型),值(对象的具体数据)
# 可分别使用内置函数id,type获取,print打印输出
rain = '雨'
print(rain)
print('标识', id(rain))
print('类型', type(rain))
print('值', rain)# 变量的多次赋值:变量名指向新空间,原空间转为内存垃圾
wind = '风'
print(wind)
wind = '巽'
print(wind)print('---数据类型---')
# 数据类型:整数int(2),浮点数float(0.2),布尔bool(True,False),字符串string('thunder')
# 整数:integer,可表示正数、负数、零,十进制(默认),二进制(0b开头),八进制(0o),十六进制(0x)
print('---整数---')
n1 = 2
n2 = -1
n3 = 0
print(n1, type(n1))
print(n2, type(n2))
print(n3, type(n3))
print('十进制', 115)
print('二进制', 0b1101101)
print('八进制', 0o175)  # 不能超过7
print('十六进制', 0x19AF)  # 0~9,A~F# 浮点:由整数部分和小数部分组成,存储不精确性--计算时可能出现小数位数不确定(导入模块decimal即可)
print('---浮点---')
r = 3.1415
print(r, type(r))r1 = 1.1
r2 = 2.2
print(r1+r2)from decimal import Decimal
print(Decimal(str(r1))+Decimal(str(r2)))  # 输入str,输出decimal.Decimal# 布尔:Boolean,表示真假,可转整数(T=1,F=0)进行运算
print('---布尔值---')
t = True
f = False
print(t, type(t))
print(f, type(f))
print(t+1)
print(f+1)# 字符串:不可变字符序列,单双引号定义的字符串必须同行,三引号定义的字符串可跨行
print('---字符串---')
str1 = "嘤嘤"
str2 = '嘤嘤'   # 必须用英文输入引号,长按shift切换单双
str3 = '''嘤嘤
嘤嘤嘤'''
str4 = """嘤嘤
嘤嘤嘤"""
print(str1, type(str1))
print(str2, type(str2))
print(str3, type(str3))
print(str4, type(str4))# 数据类型转换:'+' 可拼接序列,拼接的对象必须是同数据类型,可用函数int、float,bool,str转换数据类型
print('我有'+str(n3)+'个女朋友')
# 一般统一转换成str,因为兼容性强
print(int(r2))  # 即高斯函数
print(float(t), float(n1))  # 整数转换后加’.0‘
# int函数转换的string的内容必须为integer,float函数转换的string的内容必须为number# 注释:内容会被解释器忽略,可用于局部代码invalid
# 单行注释--’#‘开头,换行结束。
'''多行注释--
一对三引号之间的代码
出现在file top时一般用于注释docstring,即描述用途/作用的总注释'''
# 中文编码声明:在file top注释'# coding:(编码表小写,eg.utf-8,gbk)'

输入函数_运算符

print('---输入函数input---')
# 可执行输入的交互程序
name = input('还记得你的名字吗?')
print(name)# 加法
n1 = input('输入两个整数求和\n')
n2 = input()
print(int(n1)+int(n2))  # input输入数据类型默认为str,转化为数值才可运算
# 最简优化
print(int(input('输入一个加数'))+int(input('输入另一个加数')))print('---算数运算符---')
# 算数运算符:输入数值(int,float,bool)或计算式,输出value
# 整数四则运算
print(1+2)
print(1-2)
print(1*2)
print(2/1)  # 一定输出浮点数,结果是整数也带.0
# 整除
print(11//2)  # =5
print(11//-2)  # 即高斯函数,向下取整=-6
# 取余
print(11 % 2)  # =1
print(9 % -4)  # 商向下取整=-3,余数=被除数-除数*整除商=-3
print(-9 % 4)  # =3
# 求幂
print(2**3)print('---赋值运算符---')
# 赋值:右式赋左量,支持链式/参数/系列解包赋值,运算符为'='
# # 链式赋值:变量共用id(内存地址),即指向的内存空间相同
a = b = c = 0
# # 参数赋值:x ±= i <=> x = x±i,同理适用于/,*,//,%
a **= 2
# # 系列解包赋值:左右value数量不同则无法解包并报错,但左侧可存在相同变量,按从左到右顺序赋值
a, b, c = 1, 2, 3
a, b = b, a  # 交换变量值:a=2,b=1print('---比较运算符---')
# 比较运算符:输入有值数据/代式,输出bool。其中<,>,<=,>=,==,!=(不等于),比较value;而is,is not,比较id
list1 = [1, 2, 3, 4]
list2 = [1, 2, 3, 4]
# 同值数组id不同,因为数组有专有空间,修改时不同步;但是同值数值的id相同
print(list1 == list2)  # =是赋值运算符,==是比较运算符
print(list1 is list2)
print(1 is 1)
# 集合与元素的值总不相同
list3 = [1]
print(list3 == b, b, list3)print('---布尔运算符---')
# 布尔运算符;输入/输出均为bool,包括and,or,not,&,|,即”与或非“;输入元素和序列,输出bool,包括in, not in,即(不)包含于
t = True
f = False
print(a == 2 and b == 1)
print(a != 2 or b != 1)
print(not b == 1)  # 对bool操作数取反
r = 'rain'
print('r' in r)
print('v' not in r)
print(2 in list1)
print([2, 5] not in list1)print('---位运算符---')
# 位运算符:将int,bool转为二进制进行计算,包括&,|,<<,>>,即按位与,按位或,左移位,右移位
'''
&/|:对两个数据的0b的同位取与/非,得到一个新的0b,并输出十进制int
<</>>:0b位数由左向右降序排列,左移位则高位溢出,低位补零,3<<4 <=> 3*2^4;右移位则反之,3>>4 <=> 3//2^4
'''
print(t | 0x1F)
print(0o17 << 0b10)
print(4//2 >> 1*2)  # '/'输出float# 运算优先级:算术(幂>乘除>加减)>位(移位>与>或)>比较>布尔(与>或)>赋值(=)

列表

print('---list---')
'''
列表:存储多个元素以方便对一组数据整体操作,是二级指针,相当于其他语言的数组
变量:引用一个元素,只存储一个元素,是一级指针
属性:id独立,type为list,值为集合
特点:元素有序排序,索引映射唯一,可存重复数据,任意类型混存,
'''
# 赋值创建
list1 = [2, 2, 'rain', 0.2, True, [1, 0]]
# 引用创建
list2 = list([])# 索引
'''可对str,list使用,用于调出元素。0,1,2……是从左到右的正向索引,-1,-2,-3,……是从右到左的逆向索引
性质:只返回相同元素中第一个(正向)元素的索引所查询元素不存在则报ValueError可在指定区间(start&stop)查找
'''print('---查询---')
print(list1)print('rain'[0])
print(list1[-2])'''
获取多个元素时,称为切片,其结果是原列表片段的拷贝
切片区间无大小限制,但步长不为0
'''print(list1[1:5:2])            # 查询索引range(1, 5, 2)的元素,以列表形式输出
print(list1[1:-1:2])           # 索引-1 == 5,故指令等价
print(list1[1:5])              # 默认步长为1
print(list1[1:5:])
print(list1[:5:2])             # 步长为正,默认start为0
print(list1[:5:-2])            # 步长为负,默认start为-1
print(list1[1::2])             # 步长为正,默认stop为-1
print(list1[1::-2])            # 步长为负,默认stop为0print('---返回索引---')
print(list1)print(list1.index(2))
print(list1.index(2, 0, 2))    # 返回索引range(2)内元素2的索引
print(list1.index(2, -6, -4))  # 仍然正向输入区间,返回值也遵循0-N
print(list1.index(2, 0))       # 返回索引0处元素2的索引print('---判断与遍历---')
print(list1)print(2 in list1)
print(3 not in list1)
for i1 in list1:print(i1, end=' ')print('\n---添加元素---')
# 添加元素(列表id不变):append,extend,insert,切片
list3 = [0, 1, 2]
list4 = ['a', 'b', 'c']
print(list3)
print(list4)list3.append(3)       # 只能在列表末尾添加一个元素
print(list3)
list3.append(list4)   # 把列表整体作为一个元素添加,list4修改时list3同时变化
print(list3)
list3.extend(list4)   # 在列表末尾添加另一列表内的所有元素
print(list3)
list3.insert(1, 'd')  # 在列表指定索引处添加一个元素,后续元素索引+1
print(list3)
list4[1:] = list4     # 把列表索引range(1, 2)的切片替换为list4内的元素
print(list4)print('---删除元素---')
# 删除元素:remove,pop,clear,del
list5 = [0, 1, 2, 0]
print(list5)list5.remove(0)         # 删除一个元素,重复元素只删除第一个(正向),元素不存在则ValueError
print(list5)
list5.pop(1)            # 删除一个指定索引上的元素,索引不存在则IndexError
print(list5)
list4.pop()             # 无指定默认删除最后一个
print(list4)
new_list1 = list4[1:2]   # 切一个删除了无用元素的新表,但id变了
print(new_list1)
list5[1:] = []          # 把列表索引range(1, 2)的元素删除
print(list5)
list5.clear()           # 清空列表,括号必须为空
print(list5)
del list5               # 删除列表print('---修改元素---')
# 修改元素
print(list3)
print(list4)list4[0] = 1                # 修改一个指定索引上的元素
print(list4)
list3[1:5] = [10, 20, 30]   # 修改一个切片范围上的元素,范围不限
print(list3)
print('---排序---')
# 排序:id不变,注意数据类型--sort,sorted
list1 = [2, 0, 1, 1.0, True, False]
print(list1)list1.sort()              # 升序排序:reverse=False('='周围不空格)
print(list1)              # 不支持str/NoneType与num之间的排序,同值时,int<float<bool
list1.sort(reverse=True)  # 降序排序:reverse=True
print(list1)              # 注意,int>float>bool,故相对位置不变list1 = ['小水', '大水', '雨', 'c', 'ab', 'a', 'b', '?', '!']
list1.sort()
print(list1)  # 英文按字母表升序排列,同单词表排序规则;中文转化为拼音,规则同前,但符号<英文<中文'''内置函数:无需载入,直接使用'''
new_list2 = sorted(list1, reverse=bool(0))  # 产生新的排序列表
print(new_list2)# 列表生成式:生成列表的公式,格式为--[元素运算式  for 自定义变量 in 可迭代对象]
list1 = [i**2 for i in range(5)]
print(list1)

更多推荐

小白第一月Python学习笔记

本文发布于:2024-02-13 17:25:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1759679.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:学习笔记   小白第   Python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!