Python基础(Day 2)(数值 字符串 布尔 列表)

知识点总结:

#声明字符串
s = 'abc'

#声明列表
l = [1,2,3,4,'aaa']

#声明字典
d = {'name':'Tom','age':20}

#声明元组
t = (1,2,3,4,'aaa')

1 数值型

#声明赋值
age = 20

#表达式
2.2+3.0

#占位符
>>> '{0}'.format(20)
'20'

>>> '3+2={0}'.format(5)
'3+2'=5

>>> f = 3.33333
>>> 'f={0}'.format(f)
'f=3.33333'
>>> 'f={0:.2f}'.format(f)
'f=3.33'

#字典结合占位符
>>> d
{'name': 'Tom', 'age': 20}
>>> '姓名:{0},年龄:{1}'.format(d.get('name'),d.get('age'))
'姓名:Tom,年龄:20'

#数值型比较
>>> score = 60.3
>>> score>= 60
True

#不等于
>>> score != 60
True

#除法
>>>
>>> 10 / 4
2.5
>>> 10 //4
2
>>> 10 // 4.0
2.0
>>> import math
#向下取整
>>> math.floor(3.4)
3
>>> math.floor(3.9)
3
>>> math.floor(-3.4)
-4
>>> math.floor(-3.9)
-4

#去小数
>>> math.trunc(3.1)
3
>>> math.trunc(3.9)
3
>>> math.trunc(-3.9)
-3
>>> math.trunc(-3.4)
-3

#四舍五入
>>> round(3.14)
3
>>> round(3.94)
4
>>> round(-3.94)
-4
>>> round(-3.14)
-3

#解决精度问题
>>> import decimal
>>> decimal.Decimal('1.1')+decimal.Decimal('2.2')
Decimal('3.3')

>>> 1.1+2.2
3.3000000000000003

整型性质:无限精度,仅受限于计算机配置内存

进制

  • 二进制 0b开头
  • 八进制 0o开头
  • 十六进制 0x开头

进制转换

  • 二进制 bin()
  • 八进制 oct()
  • 十六进制 hex()

2 字符串常规操作

#字符串声明
''
""
'''内容说明,可生成文档'''

#转义字符
>>> 'what's your name?'
  File "", line 1
    'what's your name?'
          ^
SyntaxError: invalid syntax
>>> 'what\'s your name?'
"what's your name?"

#换行
\n
#光标回退
\b
#制表符
\t

#不转义方法,在字符串前加 r
>>> path = 'c:\abc\xyz.txt'
  File "", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 6-7: truncated \xXX escape
>>> path = r'c:\abc\xyz.txt'
>>> print(path)
c:\abc\xyz.txt

#字符串基本操作
#长度
>>> name = 'tom'
>>> len(name)
3

#字符串拼接
>>> 'abc'+'ddd'
'abcddd'
>>> 'OK'*9
'OKOKOKOKOKOKOKOKOK'
>>> print('-'*30)
------------------------------

#字符串打印
>>> s = 'hello'
>>> for c in s:
...     print(c)
...
h
e
l
l
o

>>> for c in s:
...     print(c, end=' ')
...
h e l l o >>>

#字符串按位置取字符
>>> s[0]
'h'

#字符串按下表截取
>>> s = 'afasfafassd'
#包前不包后
>>> s[0:4]
'afas'
>>> s[0:6]
'afasfa'
>>> s[1:6]
'fasfa'
#从尾端截取
>>> s[-1]
'd'
>>> s[-2]
's'
>>> s[-2:-4]
''
>>> s[-4:-1]
'ass'
>>> s[:]
'afasfafassd'
>>> s[::2]
'aaffsd'
>>> h = 'hello'

#字符串截取间隔2
>>> h[::2]
'hlo'
>>> h[:]
'hello'

#字符串不能直接相加int
>>> 'ok'+3
Traceback (most recent call last):
  File "", line 1, in <module>
TypeError: can only concatenate str (not "int") to str

#字符与ASCII转换
>>> ord('c')
99
>>> ord('a')
97
>>> chr(75)
'K'

#字符串不可直接赋值替换
>>> h[1] = 'a'
Traceback (most recent call last):
  File "", line 1, in <module>
TypeError: 'str' object does not support item assignment

#字符串替换方式
>>> h.replace('e','a')
'hallo'
>>>

#字符串转列表后替换
>>> s = 'hello'
>>> l = list(s)

>>> l[0] = 'a'
>>> l
['a', 'e', 'l', 'l', 'o']
>>> s = ''.join(l)
>>> s
'aello'

#字符串分割成列表
>>> url = 'www.baidu.com,www.qq.com'
>>> url.split(',')
['www.baidu.com', 'www.qq.com']
>>> l = url.split(',')
>>> l
['www.baidu.com', 'www.qq.com']

#字符串查找
>>> l[0].startswith('www')
True
>>> l[0].endswith('cn')
False
>>> l[0].endswith('com')
True
>>> l[0].find('du')
7

#多个引用同时声明方式
>>> a,b = 1,2
>>> a
1
>>> b
2

#引用交换
>>> a,b = b,a
>>> a
2
>>> b
1

>>> '{0} => {1}'.format(a,b)
'2 => 1'

#顺序格式化
>>> '{} => {}'.format(a,b)
'2 => 1'

#指定参数格式化
>>> '{name} => {salary}'.format(name='Tom',salary=3000.00)
'Tom => 3000.0'

#转大写
>>> url.upper()
'WWW.BAIDU.COM,WWW.QQ.COM'

3 布尔值

#注意首字母大写
>>> 3>2
True

#类型为bool
>>> type(True)
<class 'bool'>

#实现于int
>>> isinstance(True,int)
True

#boolean 与 int等价关系
>>> True == 1
True
>>> False == 0
True

#可与int做逻辑操作
>>> result = 3 + True
>>> result
4

4 列表list

  • 任意对象集合
  • 通过索引下标访问
  • 可变长度
  • 属于可变序列

list常规操作

# list 拼接
>>> [1,2,3]+[4,5,6]
[1, 2, 3, 4, 5, 6]
>>>
# str to list
>>> l = list('helloword')
>>> l
['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'd']

# 判断list中是否包含w
>>> 'w' in l
True

#循环打印
>>> for c in l:
...     print(c)
...
h
e
l
l
o
w
o
r
d

#指定末尾符打印
>>> for c in l:print(c,end='')
...
helloword>>> for c in l:print(c,end='|')
...
h|e|l|l|o|w|o|r|d|>>>

# list内操作赋值到res
>>> l = [1,2,3,6,9]
>>> res = []
>>> for i in l:
...     res.append(i**2)#平方
...
>>> res
[1, 4, 9, 36, 81]
>>> l
[1, 2, 3, 6, 9]

# 赋值list方法2
>>> l1 = [i**2 for i in l]
>>> l1
[1, 4, 9, 36, 81]

# 将str视为list遍历
>>> [c*3 for c in 'CODE']
['CCC', 'OOO', 'DDD', 'EEE']
>>> l = [1,2,3]
>>> l[1:2]
[2]

# list替换赋值
>>> l[1:2] = [4,5]
>>> l
[1, 4, 5, 3]

# list乘,增加元素而非增加list
>>> ['abc']*3
['abc', 'abc', 'abc']

# 元素追加
>>> l
[1, 4, 5, 3]
>>> l.append(7)
>>> l
[1, 4, 5, 3, 7]

# 拓展集合
>>> l.extend([8,9,0])
>>> l
[1, 4, 5, 3, 7, 8, 9, 0]

# 元素排序
>>> l.sort()
>>> l
[0, 1, 3, 4, 5, 7, 8, 9]

# 元素顺序翻转
>>> l.reverse()
>>> l
[9, 8, 7, 5, 4, 3, 1, 0]

# 弹出尾部元素
>>> l.pop()
0
>>> l
[9, 8, 7, 5, 4, 3, 1]
>>> l.pop()
1
>>> l
[9, 8, 7, 5, 4, 3]

# 删除指定下标元素
>>> del(l[0])
>>> l
[8, 7, 5, 4, 3]

# 获取指定下标元素
>>> l.index(3)
4
>>> l[3]
4

# 统计元素出现个数
>>> l.count(7)
1
>>> l
[8, 7, 5, 4, 3]

# 创建相同内容不同对象list(拷贝)
>>> l3 = l[:]

# 修改l 不影响l3
>>> l.pop()
3
>>> l
[8, 7, 5, 4]
>>> l3
[8, 7, 5, 4, 3]
>>> id(l3)
2553626214536
>>> id(l)
2553626215624

# 创建相同内容不同对象list(拷贝),方法2
>>> l4 = l.copy()
>>> id(l4)
2553626214600

你可能感兴趣的:(Python基础学习,Python,基础)