python基础2

  • 2019 年 10 月 9 日
  • 筆記

一:格式化输出
1:n换行
2:t空四格
3:格式化字符串:format strings
4.%s代表字符串占位符,输出字符串
5:%d是数字占位符
6:%f 浮点数
eg:
age:%d 代表你只能输入数字***input接收的所有输入默认都是字符串格式!所以这时要把字符串转换为数字:
str(yourstr)

二:基本运算符:
算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算
其他的不说了 今天我们来看看重难点:
逻辑运算符和按位运算符
1.按位运算符
& 与 两值都为1,则唯1,否为0
| 或 两值中有一值为1,就为1
^ 异 两对应的二进位相异时,为1

2.逻辑运算符
and 布尔 与
or 布尔 或
not 非

3.计算两个表达式同时成立的真值:
&& ||

4.***
逻辑运算符 and:具有短路功能:即前一个成立,不看后一个。
按位运算符 &:不具有短路功能。

5.运算符优先级:

 

三:初识编码:
电脑的传输,储存实际上都是01010101010
最早的密码本:ASCII 涵盖了英文字母大小写,特殊字符,数字。
ASCII只能表示256种可能,太少。
创办了万国码 Unicode
32位表示一个字符
万国码升级为:utf-8(16.32)
gbk是中国人自己发明的:一个中文用两个字节,最少十六位去表示。
单位之间的转换:
8bit = 1byte
1024byte = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
1024TB = 1PB
1024TB = 1EB
1024EB = 1ZB
1024ZB = 1YB
1024YB = 1NB
1024NB = 1DB
常⽤到TB就够了

四:基本数据类型2
(补充上篇博客)
1.int。数字:主要用于运算。
2. bool。判断真假:True, False.
3.str。简单少量的储存数据,并进行相应的操作。name = ‘alex’,
4.tuple(元组)。只读,不能更改。(1,’alex’)**元组中的列表可以增删改。
5. list(列表):大量有序数据,[1,’ses’,True,[1,2,3],{‘name’:’jinxin’}]*可以增删改。
6. dict(字典):键值对(key-value)大量数据,且是关联性比较强的数据 {‘name’:’jinxin’,’age’:18,’name_list’:[‘张三’,’李四’]}
sets(集合):元素不能重复。example_set={1,2,’s’}

数字int
1.1:十进制二进制转换
十转二
整数:
除二取余,逆序排列
小数:
乘二取整,顺序排列

 

 

二转十
1. 要从右到左用二进制的每个数去乘以2的相应次方,小数点后则是从左往右
例如:二进制数1101.01转化成十进制

1101.01(2)=1*20+0*21+1*22+1*23 +0*2-1+1*2-2=1+0+4+8+0+0.25=13.25(10)
所以总结起来通用公式为:
abcd.efg(2)=d*20+c*21+b*22+a*23+e*2-1+f*2-2+g*2-3(10)
2.按权相加法
即将二进制每位上的数乘以权,然后相加之和即是十进制数。
其余还有十六进制,他们之间的相互转化以后详解。
1.2:int操作方法
python给咱们提供了一种方法:bit_length()就是帮助你快速的计算整数在内存中占用的二进制码的长度

字符串
3.1:字符串的索引和切片
索引即下标
切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)。
a = ‘ABCDEFGHIJK’
print(a[0:3]) 输出:ABC
print(a[:3]) 从开头开始取0可以默认不写
print(a[2:5])
print(a[:]) #默认到最后
print(a[:-1]) # -1 是列表中最后一个元素的索引,但是要满足顾头不顾腚的原则,所以取不到K元素
print(a[:5:2]) #加步长 输出:ACE
print(a[-1:-5:-2]) #反向加步长 输出:KIG
print(a[::-1])列表反转 输出:KJIHGFEDCBA
3.2:字符串常用的操作方法
1.数字符串中的元素出现的个数。
 ret3 = a1.count(“a”,0,4) # 可切片
 print(ret3)
2.首字母大写 captize
3.全小写lower
4.全大写upper
5.通过元素找索引,找不到-1 find
6.通过元素找索引,找不到报错 index***找出某个值第一个匹配项的索引位置
7.大小写翻转 swpcease
8.len()长度 通用方法
9.replace(old,new,count默认)替代
       name=’alex say :i have one tesla,my name is alex’
  print(name.replace(‘alex’,’SB’,1))
10.isdigit()返回bool值
11.startwith endwith 判断开头结尾
12.count计数 某个元素在字符串中出现的次数
13.title首字母大写
14.center()居中
15.strip()删除首尾 Istrip rstrip删除左右的
16.format格式化输出
  format的三种玩法 格式化输出
  res='{} {} {}’.format(‘egon’,18,’male’)
  res='{1} {0} {1}’.format(‘egon’,18,’male’)
  res='{name} {age} {sex}’.format(sex=’male’,name=’egon’,age=18)
17.split 以什么分割,最终形成一个列表此列表不含有这个分割的元素。
   ret9 = ‘title,Tilte,atre,’.split(‘t’)
   print(ret9)
   ret91 = ‘title,Tilte,atre,’.rsplit(‘t’,1)
   print(ret91)
18.is系列
  name=’taibai123′
  print(name.isalnum()) #字符串由字母或数字组成
  print(name.isalpha()) #字符串只由字母组成
  print(name.isdecimal()) #字符串只由十进制组成
19.sort(方法用于在原位置对列表(字符串)进行排序)
20. reverse (方法将字符串中的元素反向存放)。

 

五:列表的增删改查以及嵌套
定义:
列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型.比如JS中的数 组, java中的数组等等. 它是以[ ]括起来, 每个元素用’ , ‘隔开而且可以存放各种数据类型:
5.1列表的创建
1.list1=[2,3’gda’]
2.list2=list() #空列表
list3=list(iterable) # 可迭代对象
3:列表推导式(后面的课程会讲到)
l1 = [i for i in range(1,5)]
print(l1) # [1, 2, 3, 4]
5.2列表的索引切片(同上面的字符串切片一样)
5.3列表的增加
# append 追加,给列表的最后面追加一个元素 追加序列的时候追加整体
l = [1, 2, ‘a’]
l.append(666)
print(l) # [1, 2, ‘a’, 666]

# insert 插入在列表的任意位置插入元素,加指定的元素
l = [1, 2, ‘a’]
l.insert(1,’大白’)
print(l) # [1, ‘大白’, 2, ‘a’]

# extend 迭代着追加,在列表的最后面迭代着追加一组数据,拆开。
l = [1, 2, ‘a’]
l.extend(‘太白a’)
print(l)
5.4列表的删减
# pop 通过索引删除列表中对应的元素,该方法有返回值,返回值为删除的元素
l = [‘太白’, ‘alex’, ‘WuSir’, ‘女神’]
ret = l.pop(1)
print(ret,l) # alex [‘太白’, ‘WuSir’, ‘女神’]

# remove 通过元素删除列表中该元素
l = [‘太白’, ‘alex’, ‘WuSir’, ‘女神’]
l.remove(‘alex’)
print(l) # [‘太白’, ‘WuSir’, ‘女神’]

# clear 清空列表
l = [‘太白’, ‘alex’, ‘WuSir’, ‘女神’]
l.clear()
print(l) # []

# del
#按照索引删除该元素
l = [‘太白’, ‘alex’, ‘WuSir’, ‘女神’]
del l[2]
print(l) # [‘太白’, ‘alex’, ‘女神’]

# 切片删除该元素
l = [‘太白’, ‘alex’, ‘WuSir’, ‘女神’]
del l[1:]
print(l) # [‘太白’]

# 切片(步长)删除该元素
l = [‘太白’, ‘alex’, ‘WuSir’, ‘女神’]
del l[::2]
print(l) # [‘alex’, ‘女神’]
5.5列表的更改
# 按照索引改值
l = [‘太白’, ‘alex’, ‘WuSir’, ‘女神’]
l[0] = ‘男神’
print(l) # [‘男神’, ‘alex’, ‘WuSir’, ‘女神’]

# 按照切片改值(迭代着增加)
l = [‘太白’, ‘alex’, ‘WuSir’, ‘女神’]
l[1:3] = ‘abcdefg’
print(l) # [‘太白’, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘女神’]

# 按照切片(步长)改值(必须一一对应)
l = [‘太白’, ‘alex’, ‘WuSir’, ‘女神’]
l[::2] = ‘对应’
print(l) # [‘对’, ‘alex’, ‘应’, ‘女神’]
5.6列表的排序
sort
list1=[1,3,2,5,770,654]
list1.sort()正序排序
print(list1)
list.sort(reverse True)倒序排序
list1.reverse()反向排序
5.7列表的嵌套
list1=[‘lxx’,’wan’]
print(list1[1][2])#打印出list中的n
name=list1[0].capitalize()
print(name)#将list中的第一个字符串中的首字母大写
list1[0]=name
print(list1)#打印出修改过后的列表
list1[1]=list1[1].replace(‘w’,’lj’)
print(list1)#替换

 

六:元组
定义::俗称不可变的列表,又被成为只读列表,元祖也是python的基本数据类型之一,用小括号括起来,里面可以放任何数据类型的数据,查询可以,循环也可以,切片也可以.但就是不能改.
6.1:元祖的切片操作和以上的同理
6.2:index:通过元素找索引(可切片),找到第一个元素就返回,找不到该元素即报错。
6.3:count: 获取某元素在列表中出现的次数
6.4:len长度

七:字典
定义:字典是Python语言中的映射类型,他是以{}括起来,里面的内容是以键值对的形式储存的:

Key: 不可变(可哈希)的数据类型.并且键是唯一的,不重复的。

Value:任意数据(int,str,bool,tuple,list,dict,set),包括后面要学的实例对象等。

 在Python3.5版本(包括此版本)之前,字典是无序的。

 在Python3.6版本之后,字典会按照初建字典时的顺序排列(即第一次插入数据的顺序排序)。

 当然,字典也有缺点:他的缺点就是内存消耗巨大。
7.1:创建字典的几种方式
# 方式1:
dic = dict(((‘one’, 1),(‘two’, 2),(‘three’, 3)))
# dic = dict([(‘one’, 1),(‘two’, 2),(‘three’, 3)])
print(dic) # {‘one’: 1, ‘two’: 2, ‘three’: 3}

# 方式2:
dic = dict(one=1,two=2,three=3)
print(dic) # {‘one’: 1, ‘two’: 2, ‘three’: 3}

# 方式3:
dic = dict({‘one’: 1, ‘two’: 2, ‘three’: 3})
print(dic) # {‘one’: 1, ‘two’: 2, ‘three’: 3}