初学python

一、python的基础语法
1、高级语言分为编译型和解释型。

编译型:效率高,直接编译成机器语言。例如c,c++
解释型:先变为字节码,由解释器转化为机器语言。例如Java,Python等。

2、python解释器

Cpython、ipython、pypy、jython、lronpython

3、python语法

python续行使用\,在末尾输入\就可以在下一行继续书写。

4、python类型

它是强类型的,动态的语言。动态即自由,相对于静态语言的不可改变类型,动态几乎都可以改变类型。强类型意味它不同类型之间不可以自动转化。需要强制转化。

5、进制、运算符、优先级和补码
进制:各进制之间的转化。

bin() 转化为二进制
oct()转化为八进制
int()转化为二进制
!!! 注意 所有的方法转化后都是字符串,给人看的.
计算机内部是二进制操作,所以,我们只需要操作int类型就行.
hex()转化为16进制
:二进制转化8进制(每三位算一个8进制位数)
101 111 转化八进制为:0o57(5是101的十进制)(7是111的十进制)
:二进制转16进制(每四位算一个16进制位数)用0x表示,方法同上。
:转化二进制用0b表示。

运算符

算数运算符
+ ,-, *, \,%,**(这个是平方)
位运算符
&(与,按位相与,除了真真为真其他都为假)
|(或,除了假假为假,其他都为真)
~(非,表示取反)
^(异或,除了相同为假,不同为真,暂时没搞懂用法)
同或(和异或相反)
<<(左移)
>>(右移)
例如 ~ 12 等于-13为什么?如下

12的二进制为 1100,补码为 0000 1100
~12就为1111 0011,这是在计算机中的存储方式。变为人类理解的数字就是1111 0011的补码。
1111 0011反码为 1000 1100 补码为1000 1101 最高位为1表示负数。所以等于-13
原码,反码,补码(需理解)

个人理解:人类语言和计算机语言有所差异,注意分清人类语言和计算机语言的区别。
计算机中都是以补码的方式存储运算的。人类则是看原码。

python运算符

and, or,not,
赋值运算符 =

成员运算符 in, not in
身份运算符is, not is

6、内存管理和if循环
引用计数

垃圾回收机制清除引用计数为0的值。但是一些常量如0,1等并非自己不用引用计数就为0.

if判断语句和for,while循环语句
真值表

在这里插入图片描述

二、线性数据结构
1、数字处理函数

:round()函数:四舍六入五取偶。
:当一个数为x.5时,取离这个数最近的一个偶数。其他情况和四舍五入相同。
:math模块:math.ceil(x) 向上取整。math.floor()向下取整。//为向下取整。
pow(x,y)求x的y次方。sqrt(x)一个数的开方。bin(x),otc(x),hex(x)把十进制x生成二进制、八进制、十六进制。
:type()判断类型,其中可以做隐式类型转换。type(x)== int 类型比较
:isinstance(x,类型)。返回true或者false。和type不同的是它可以判断子类。例如:isinstance(True,int)返回True,因为True代表1。

2、列表
!!!注意列表遍历可以倒着走,如:

正着遍历:range(1,10) 取[1,2,3,4,5,6,7,8,9]
倒着遍历:range(9,0,-1) 取[9,8,7,6,5,4,3,2,1,]
:enumerate方法
for i, j in enumerate(list):
出现索引 i 和值 j
:列表查询
list.index(value,[start,end])在某个范围内索引,找到第一个就返回。
count()函数,返回某个元素的出现的次数。
:列表插入。
list.append()尾部追加。
list.insert(index,x)在某处插入元素x,索引可以超界
list.extend()可以加一个可迭代对象。例如extend(range(5))

!注意,以上方法返回none,就地修改。

:列表去除两边中括号的方法。
print(*list()),就可以打印里面的值。
:+>list,连接操作,如 [3,5,2]+[2,67]
产生新的列表,原列表不变如果不赋值,引用计数为0.本质上调用add()方法
list()*n 相乘 同上。
:列表copy
有深copy和浅copy。copy.deepcopy()为深copy,浅copy可能会带来一个修改时,另一个也会修改的问题。
:元素删除
list.remove(value),移除某个值,仅移除找到的一个值,返回none。
list.pop(index),弹出索引处的值,返回这个值。不指定,弹出最后一个值。
clear()清除所有元素,剩下一个空列表。
:列表排序
list.reserve(),列表反转,返回none
sort(),列表排序,返回none。函数内可以加一个参数key,key=function,指定用什么方法排序。当列表中元素类型不一样时,可以使用list.sort(key=int等类型)来转换排序。也可以加入reserve=true来反转。

!!!注意 ,浅拷贝易出现问题,列表中有引用类型时,copy后,其中一个变,另一个也变。

列表内有列表时copy,列表内有列表做乘法时如[[2]]*n,这些都会出现浅copy的问题。
:随机数
random 函数取随机数 random.randint()前后都包括 random.randrange()不包括后面的内容。例如:random.randint(1,3) 包括3,random.randrange(1,3) , 不包括3
random.choice(list()),随机选择一个数据。
random.shuffle(list()),重新打乱顺序。
random.sample(list(),x) , 从列表中选择x个元素,但是元素不会重复取出。
注意!!和random…choice()重复执行两次是不同的。它执行两次会出现重复元素。sample不会

3、元组

:元组是不可变对象,但是其内的引用类型内容可以改变,因为引用类型存的是地址。
如,tuple[][]可以赋值。定义方式是用() !!注意在定义单个元素的元组时,这样定义:tuple=(x,)需要加逗号。元组和列表相同,也会出现浅拷贝问题。
: 元组可以相加
:命名元组 namedtuple,暂时不理解。

4、字符串

:使用f前缀可以在字符串内写入变量,如:x=2,s1=“{x}” s1="2"必须要加{}
:join用法。“符号”.join(可迭代对象)。注意,当是整形时,需要用到map函数
“符号”.join(map(str,可迭代对象)) 特殊符号要注意。
:字符串分割,split和partition
list.split()不加参数是按照空格切割,注意,立即返回一个列表。
rsplit()从右向左切,内可加参数maxsplit=x,最大切割数。
splitlines()按照换行符切割。加参数true,保留换行符。
partition()只切一刀,保留切割符号。返回的是一个三元组。
:upper()转换大写,lower()转换小写,swapcase()大小写转换。
str.center(参数1为长度大小,参数2为字符填充,默认是空格填充)居中
zfill(只有长度大小),向右对齐。前面填充0
capitallize()首个字母大写。
ljust左对齐,rjust右对齐。用法同居中。
:字符串判断
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值