python基础知识《一》

python基础知识《一》

目录

基本对象类型

python除法应注意:

优先级

字符串:

格式化输出

列表

元组:

字典:

集合:


 

  • 基本对象类型

    id()函数:id(3)  查看整形数3的物理地址

   Python可直接进行大整数计算

   type()函数:type(3) 查看类型

   “对象有类型,变量无类型”

>>> x=3
>>> x
3
>>> x=3.0
>>> x
3.0
>>> 

但Python在处理浮点数时会出现溢出问题。

python除法应注意:

>>> 5/2
2.5

除法取商

>>> 5//2
2

模块使用:

可以避免Python随意近似问题

>>> import decimal
>>> a=decimal.Decimal("10.0")
>>> b=decimal.Decimal("3")
>>>  a/b
 

直接分数化

>>> from fractions import Fraction
>>> Fraction(10,3)
Fraction(10, 3)

余数

基本表示:

>>> 5%2
1

函数表示:

>>> divmod(5,2)
(2, 1)

学会查看函数属性:

>>> help(divmod)
Help on built-in function divmod in module builtins:

divmod(x, y, /)
    Return the tuple (x//y, x%y).  Invariant: div*y + mod == x.
#四舍五入
>>> round(1.2345,2)
1.23

math使用:

>>> import math
>>> math.pi
3.141592653589793

基本math

>>> dir(math)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']

优先级

运算符	描述
**	指数(最高优先级)
~、+、- 	按位翻转,一元加号和减号(最后两个的方法名为+@和-@)
*、/、%、//	乘、除、取模和取整除
+、-	加法、减法
>>、<<	右移、左移运算符
&	位与
^、|	位运算符
<=、<、>、>=	比较运算符
<> == !=	等于运算符
= %= /= //= -= += *= **=	赋值运算符
is    is not	身份运算符
in    in not	成员运算符
not  or  and	逻辑运算符

字符串:


#字符串表示“” ‘’两种表示方法:
#注意字符串内部有‘号时处理方法
print('what\'s you name')
print("what's you name")

字符串链接:

x="py"+"thon"
print(x)
#强制转换
y=123
print(x+str(y))
#repr()函数和str()函数一样

转义字符

转义字符	描述
\(在行尾时)	续行符
\\	反斜杠符号
\’	单引号
\”	双引号
\a	响铃
\b	退格(Backspace)
\e	转义
\000	空
\n	换行
\v	纵向制表符
\t	横向制表符
\r	回车
\f	换页
\oyy	八进制数yy代表的字符,例如:\o12代表换行
\xyy	十进制数yy代表的字符,例如:\x0a代表换行
\other	其它的字符以普通格式输出

输入

name=input("who?")
print(name)

原始字符串:

#两种处理方式:
'''
方式一:反斜杠
方式二:r开头
'''
print('c:\\x')
dos=r'c:\x'
print(dos)

 索引与切片:

lang="study python"
print(lang[0])
print("study python"[0])
print(lang.index('p'))
print(lang[0:5])
print(lang[0:5])
print(lang[0:])
print(lang[:])
print(lang[:5])
#注意[0:5]是前面0到4个位置的字符

1,字符串的拼接

>>>s='hello'*2                                         用乘法重叠
>>>print(s)
hellohello

>>>s='hello'+'world'                                   用加号拼接
>>>print(s)
helloworld

>>>a='world'                                           用join 拼接
>>>s=''.join(a)
>>>print(s)
world


2,字符串的统计

>>>s='asjbsbjjdj'
>>>len(s)                        len() 统计字符串个数(也可以统计元组、列表、集合等)                      
 10
 
>>>print(s[0])                   s[n] 提取字符串中单个字母或元素,n是第几个,从头开始左到右,以0开始排列,0、1、2、3...
a  
>>>print(s[-1])                  倒序表示,从结尾提取 右到左,以-1开始,-1、-2、-3....
j

    

3,字符串切片 提取

切片(取其中某段) 变量[开始:结束:步进],中括号[]定义切片,列表、元组、集合等都可以适用 如: s=‘abcdefghijklmn’

>>>s = 'abcdefghijklmn'  
>>>s[0:4]                        包括起始值(元素)不包括结束值,默认步进值为1 ,
'abcd'
>>>s[0:6:2]                      设置步进值为2 提取
'ace'

>>>s[4:]                          当一边没有指定时,就取到边界
'efghijklmn'
>>>s[:4]
'abcd'

>>>s[1:-1]                         从结尾提取,下标从-1开始
'bcdefghijklm'
>>>s[-8:]
'ghijklmn'
>>>s[:-8]
'abcdef'
>>>s[:]                            表示全选
'abcdefghijklmn'
>>>s[::-1]                         使其中的元素 倒叙排列
'nmlkjihgfedcba'



4,字符串切割

split()切割功能,切割后 形成的是列表。
1,按照特定内容切割,‘’引号里可以是空格、字符(默认是空格)
2,可以指定切割次数
3,可以从右面切割
4,按行切割,换行符切割

>>>t='I love you more than I can say'
>>>t.split(' ')                                              按空格切割
['I', 'love', 'you', 'more', 'than', 'I', 'can', 'say']
>>>t.split('o')                                              按字符o切割
['I l','ve you m','re than I can say']

>>>t.split(' ',3)                                    按空格切割 并指定切割次数,3次
['I','love','you','more than I can say']
>>>t.rsplit(' ',2)                                   从右面开始切割,切割2次
['I love you more than I','can','say']

>>>l='''江畔何人初见月
        江月何年初照人
        人生代代无穷已
        江月年年望相似'''
>>>l.splitlines()                                     splitlines()  按行切割
['江畔何人初见月','江月何年初照人','人生代代无穷已','江月年年望相似']

    

5,字符串的删除

1,strip()默认删除行首或者行尾的空白符(包括’\n’, ‘\r’, ‘\t’, ’ ')
2,切片提取进行删除

>>>s=' ---anj123kks+++ '
>>>s.strip()                            删除两边的空白
'---anj123kks+++'
>>>print(s.strip())                     测试打印的结果
---anj123kks+++

>>>s.lstrip()                           删除左边的空白字符   
'---anj123kks+++ '
>>>s.rstrip()                           删除右边的空白字符
' ---anj123kks+++'

>>>s.strip().strip('-+')                删除两边的空白和‘- +’字符
'anj123kks'

>>>s[4:13]                              使用切片删除不需要的字符
'anj123kks'
>>>s[4:6]+s[11:13]                      切片和拼接删除
'anks'

   

6,python中find() 函数查找字符串下标位置

从一个字符串s中查找另一个字符串或字符第一次出现的下标位置,找不到返回 -1.

>>>s='abcdedjcjdlslk'
>>>s1='abc'
>>>s.find(s1)                       返回第一次出现abc的位置下标0
0
>>>s.find('j')                      返回第一次出现 j 的位置下标6
6
>>>s.find('j',2)                    从下标位置2开始查找,找到返回第一次出现的位置下标
6
>>>s.find('j',7)                    从下标位置7开始查找
8
>>>s.find('j',10)                   从下标位置10开始查找,没有返回-1
-1
--------------------- 

格式化输出

print("I like {1}  {0}".format("python","study"))

print("I like {0:6}  {1:}".format("python","study"))
data={"name":"xxx","age":10}
print("{name} is {age}".format(**data))

#print 'hello %s and %s' % ('df', 'another df')
#print 'hello %(first)s and %(second)s' % {'first': 'df', 'second': 'another df'}

列表

#列表
#基本:
a=['12','45','xxxyz']
print(a)
#索引切片
print(a[1])
print(a[2][0:4]) #0为物理地址,4为位置
print(a[-1])
print(a[-3:-1]) #注意-1
print(a[::2])
print(a[::1])
print(a[::])
#反转
print(a[::-1])
print(a[2][::-1])
print(list(reversed(a)))

列表基本操作:
1.创建列表

    用方括号([])来表示,用逗号(,)分离元素

    bicycles=['trek','cannodale','redline','specialized']

2.访问元素

    bicycles[i]  -1表示末尾,-2表示次末尾...

3.修改元素的值

    bicycles[i]='XXX'

4.添加元素

    列表末尾:bicycles.append('XXX')

    列表任意位置:bicycles.insert(n,'XXX')  n表示位置

5.删除元素

    知道元素位置:del bicycles[i]

    知道元素的值:bicycles.remove['XXX']

    删除第i个元素并获取该元素的值:a=bicycles.pop(i)      pop()表示末尾

6.列表排序

    永久修改原始列表的顺序:bicycles.sort()

    反序修改原始列表的顺序:bicycles.sort(reverse=True)

    不修改原始列表的顺序:bicycles.sorted()

    反序不修改原始列表的顺序:bicycles.sorted(reverse=True)

    反转原始列表顺序:bicycles.reverse()

7.列表长度

    len(bicycles)

8.遍历列表

    for bicycle in bicycles:

        print(bicycle)

    bicycle为自定义的变量名,bicycles为列表名

9.range()函数

    range(a,b,c)表示从a到b,间隔为c:a,a+c,a+2c,...,b-c-1

10.list()函数

    numbers=list(range(1,6))

    numbers:[1,2,3,4,5,6]

11.列表解析

    squares=[value**2 for value in range(1,11)]

    squares:[1,2^2,3^2,....,11^2]

12.列表切片

    A[x:y]:第x到y之间的元素,不包括A[y]

    A[x: ]:第x到末尾

    A[ :y]:开头到第y

    A[ : ]: 全部元素

常用函数:
1.len(list)

列表元素的个数

2.max(list)\min(list)

返回列表元素最大值\最小值

3.list(seq)

元组转换为列表

4.list.append(obj)\list.pop(obj=list[-1])

末尾添加对象\移除对象,默认最后

5.list.extend(seq)

末尾添加一个列表,扩充

PS:4、5两个方法的效率远大于用运算符‘+’来实现

6.list.index(obj)

从列表中找出某个值第一个匹配的引索,没有找到对象抛出异常

7.list,count(obj)

计数

8.list.remove(obj)

移除列表中第一个匹配的元素

9.list.reverse()

求逆序,注意这里没有返回值,得到list的逆序

10.list.sort([func])

排序,可选参数,若无参数得到小到大排列顺序。只能同类型进行比较

11.list.clear()

清空

12.list.copy()

复制

元组:

t=1,"12",["123",12],(1234)
print(t)
#元组是用()包括的
#切片与索引
print(t[2])
print(t[2][1])
#所有在列表中修改的方法在元组中均有效

字典:

1.创建和使用字典

字典由多个键及其对应的值组成,字典中的键是唯一的,但值是不唯一的。

这里写图片描述

2.dict方法:

(1)将列表转换为字典

这里写图片描述

(2)创建字典

这里写图片描述

3.同样,字典与序列一样,也有很多操作:

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

 

(4)get用于访问键值所对应的值。如果键不存在,默认返回为None

这里写图片描述

(5)has_key 用于查找字典中是否含有给出的键。d.has_key(k)相当于k in d。

这里写图片描述

(7) keys和iterkeys

keys返回字典项中的键,iterkeys返回一个迭代器对象

这里写图片描述

(8)pop:获取到键,并将键从字典中删除

这里写图片描述

(9) popitem:弹出随机的项,因为字典项没有顺序而言,所以是随机的删除

这里写图片描述

(10)setdefault:用来设置相应的键值。当键不存在时,返回默认值,并更新键值。如果键存在,则返回对应的值。

这里写图片描述

 

(11)update用来通过一个字典项更新为另一个字典项

这里写图片描述

(12)values和itervalues:以列表的方式返回字典中的值

这里写图片描述
这里写图片描述

集合:

#集合
a=set(['a','b','c','d'])
b=set(['c','d','e','f'])
c=set(['a','b'])
#判断
print(a==b)
print(c<a)#判断子集
print(a>a)#判断超集
#运算
#并:
print(a|b)
#交
print(a&b)
#差
print(a-b)#a相对b的差
#对称差集
print(a.symmetric_difference(b))#除去ab共有的,剩下的元素

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值