day1

1、python历史。

宏观上:python2 与 python3 区别:
python2 源码不标准,混乱,重复代码太多,
python3 统一 标准,去除重复代码。

2、python的环境。

编译型:一次性将所有程序编译成二进制文件。
缺点:开发效率低,不能跨平台。
优点:运行速度快。
:C,C++等等。

解释型:当程序执行时,一行一行的解释。
优点:开发效率高,可以跨平台。
缺点:运行速度慢。
:python ,php,等等。

3、break:跳出循环    continue:到循环首

day2

1、编码

1bit     8bit = 1bytes
1byte     1024byte = 1KB
1KB      1024kb = 1MB
1MB      1024MB = 1GB
1GB      1024GB = 1TB

  最初是由美国人发明的ascii码,为密码本,后来发明了万国码“unicode”,可是代表汉子要占用4个字节,太大了;

  所以发明了utf-8、utf-16、utf-32,一个字符24为,3字节

    utf-8:最少用一个字节,8位表示一个英文;
        欧洲16位,两个字节

        亚洲24位,3个字节

中国人发明了gbk,一个中文16位去表示,2个字节

    GBK:基于ascii研发的,只能支持中文和英文,不能喝utf-8直接转换

2、逻辑运算:And、or、not

  • 优先级:( )>not>and>or
  • int ——> bool  非零的转换成bool为True  0转换为bool是False
  • bool ——> int  True=1    False=0
  • print(x or y)  x 为 True时(非零为True),返回x  否则返回y
  • print(x and y)  x 为 True时        返回y  凑则返回x
  • print(1 or 2 and 3 or 1 > 2 and 5 )  找找类似这样的规律  “我感觉看到or就行”

day3

1、int

  • *.bit_length()    //求数字转换为二进制最小长度

2、转换

 # bool True False
# int ——> str
i = 1
s = str(i)
# str ——> int //只有数字可以转换
s = ''
i = int(s)
# int ——> bool //非零就是True,0位False
i = 3
b = bool(i)
# bool ——> int // True = 1, False = 0
''' ps:
while True:
pass
while 1: # 效率高
pass
''' # str ——> bool //字符串位空 = False,非空为True

3、str

 # 索引和切片
s = "ABCDESDASDEG" s1 = s[0] # 取出第一个字母(A)
s2 = s[2] # 取出第三个字母(B)
s3 = s[-1] # 取出倒数第一位(G)
s4 = s[-2] # 取出倒数第二位(E)
# 切片:顾首不顾尾 s5 = s[0:3] # 取出ABC
s6 = s[0:-1] # 取出第一个到倒数第二个(ABCDESDASDE)
s7 = s[0:] # 取出全部
s8 = s[:] # 取出全部
# 跳着取[首:尾:步长] s9 = s[0:5:2] # 第0个索引盗第5个索引,跳两个取(ACE) # 倒着取 s10 = s[3::-1] # 取 DCBA
s11 = s[-1::-1] # 逆序取全部
s12 = s[::-1] # 逆序取全部 # 字符串操作
s = 'alex.egon.wusir'
s1 = s.title() # 以字符和数字隔开的,其后的字母大写 返回(Alex Egon Wusir) s = 'alexWUsir'
# 更改大小写
s1 = s.capitalize() # 首字母大写,其它大写的也变成小写
s1 = s.upper() # 全部变成大写
s1 = s.lower() # 全部小写
s1 = s.swapcase() # 大小写翻转
# 居中和制表符
s1 = s.center(20, "#") # 设置一个20的长度,让字符串居中,默认用空格填充两边,可以使用其他符号,如"#"号
s1 = s.expandtabs() # 如果字符串中有“\t”则,在前边的封8进行补位
# 字符串的判断
s1 = s.startswith("al") # 如果是以什么开头,是返回True
s1 = s.startswith("e", 2) # 从第二个字符到最后是不是以”e“开头,是返回True
# 字符串的查找
s1 = s.find("W") # 查找字符串中是否有某个元素,有的话返回索引;没有返回-1
s1 = s.find("U", ) # 从第二个开始进行查找,如果找到返回索引,找不到返回-1
s1 = s.index("U") # 寻找元素,找到返回索引,找不到报错
# 删除空格
s1 = s.strip() # 去除前后的空格
s1 = s.strip("@#$") # 删除字符串中的前后@#$,不论顺序
s1 = s.rstrip() # 删除右侧
s1 = s.lstrip() # 删除左侧
# 统计个数
s1 = s.count("a") # 计数字符串中有几个a
# 分割 str ——> list
s1 = s.split() # 以空格分割为列表
# 公共方法,字典、列表、元组都可以用的
len(s) # 测量总共有几个元素
# 格式化输入
s1 = "我叫{},今年{},爱好{},再说一次我叫{}".format('太白', 20, 'women', '太白')
s1 = "我叫{0},今年{1},爱好{2},再说一次我叫{0}".format('太白', 20, 'women') # 替换
s = '我的敬爱傻傻的啥大事傻傻卡号'
s1 = s.replace("傻傻", '聪明') # 替换全部
s1 = s.replace("傻傻", '聪明', 1) # 替换全部第一个 # is系列
s = "asdla131"
s1 = s.isalnum() # 是不是由字母或者数字组成
s1 = s.isalpha() # 是不是由字母组成
s1 = s.isdigit() # 是不是由数字组成

day4

1、list

 li = ["alex", [1, 2, 3], "wusir", "egon", "女神"]
# l1 = li[0]
# l2 = li[1] # 增
# 1、增加:list.append //默认增加到最后
# li.append("日天")
# li.append(2)
# 持续添加,想退出按q or Q
# while 1:
# name = input(">>>")
# if name.lower().strip() == "q":
# break
# else:
# li.append(name.strip())
# 2、添加list.extent //增加都最后
# li.extend("123")
# li.extend([1, 2, 3])
# 3、插入:list.insert //按照索引插入
# li.insert(4, "大灰") # 删
# 1、li.pop //按照索引去删除,返回值为删除的元素,为空默认删除最后一个
# print(li.pop())
# 2、li.remove //按照元素删除,元素必须存在,否则报错
# li.remove("egon")
# 3、li.clear //删除所有元素
# li.clear()
# del //删除列表,也可以切片删除
# del li
# del li[0:2] # 改
# 1、直接改索引的值
# li[0] = 'hello'
# 2、切片改,选择切片范围,可以随便改,可大于范围,可小于范围
# li[0:1] = "牛牛牛"
# li[0:2] = [1, "asd", '你好', [1, 2]] # 查
# 1、循环
# for i in li:
# print(i)
# 2、切片
# print(li[0:3]) # 公共方法
# print(len(li))
# print(li.count('egon'))
# print(li.index("wusir")) li = [1, 64, 95, 55, 123] # li.sort() # 正向排序
# li.sort(reverse=True) # 倒序排序
# li.reverse() # 反转
print(li)

list的增删改查

2、list嵌套

 li = ['taibao', '武藤兰', '苑昊', ['alex', 'egon', 89], 23]
# print(li[1][1]) # 找到'藤'
li[0] = li[0].capitalize()  # ‘taibai’的首字母大写
li[2] = li[2].replace("昊", '日天')

3、元祖

 # tu = (1, 2, 3, ['mrxuan', 'qwer', 'zxcvb'], 'egon')
# tu[3][3] = tu[3][3].upper()
# tu[3].append("Q")
# print(tu)

4、字符串和列表的转换以及join的方法运用

 # 列表 --> str    join
s = "-".join(["ni", 'hao', 'ya'])
print(s)
# 字符串转换为列表
li = '我 你 他 哈 her new'.split()
print(li)

5、range的用法

 # range

 for i in range(0, 10):
print(i)
for i in range(10, 0, -2):
print(i)

day5

 # dict
"""
数据类型划分:可变数据类型,不可变数据类型
不可变数据类型:元组,bool,int,str 可哈希
可变数据类型:list,dict,set 不可哈希
dict key:必须是不可变数据类型 可哈希
dict value:任意数据类型 dict 优点:
二分查找
存储大量的关系数据
特点:
无序的
""" # dic = {
# 'name': ['大猛', '小孟'],
# 'py9': [{'num': , 'avg_age': }],
# True: ,
# (, , ): 'wuyiyi',
# : '二哥'
# } # dic1 = {'age': , 'name': 'jin', 'sex': 'male'} # 增
# 、 索引修改
# dic1['high'] = # 没有键值对,添加
# dic1['age'] = # 如果有建,则值覆盖
# 、setdefault 键值对有的话,不做任何改变,没有则添加
# dic1.setdefault('weight', ) # 删
# 、pop 返回key的value
# print(dic1.pop('name'))
# 如果没有则会报错; 可以在逗号后边添加一个参数,则不会报错
# dic1.pop('aa')
# dic1.pop('aa', None) # None可以自定义写其他的,设置的参数将会成为pop的返回值
# dic1.popitem() # 随机删除一个键值,返回一个删除键值元组
# del dic1['name'] # 删除
# del dic1 # 删除字典 # 改
# dic1 = {'age': , 'name': 'jin', 'sex': 'male'}
# dic = {'age': , 'name': 'alex', 'sex': 'male'}
# dic1.update(dic) # 将dic的字典更新到dic1,有的话覆盖,没有则增加 # 查
# print(dic1.keys()) # 所有的key
# print(dic1.values()) # 所有的value
# print(dic1.items()) # 所有字典的键值
# for i in dic1:
# print(i)
# for i in dic1.keys():
# print(i)
# for i in dic1.values():
# print(i)
# for k, v in dic1.items():
# print(k, v)
# print(dic1['name'])
# print(dic1['name1']) # 报错
# print(dic1.get('name1')) # 不报错
# print(dic1.get('name1', '没有这个键')) # 果果没有key则会返回后边的str
# dic1.clear() # 清空字典 # print(dic1)

dict的增删改查

小知识汇总

# = 赋值    == 比较     is 比较内存地址    id(内容):输出内存地址

# 数字, 字符串  定于小数据池,节省内存空间

# 数字的范围:-5 -- 256之间的数字 会开辟一个内存空间

# 字符串:

  1. 不含有特殊字符
  2. s * 20 还是同一个地址,s * 21 以后都是两个,s为一个字符
编码:
ASCII
A:00000010 8位 一个字节
unicode
A:00000000 00000001 00000010 00000100 32 位 四个字节
中:00000000 00000001 00000010 00000100 32 位 四个字节
utf-8
A: 0010 0000 8位 1个字节
中: 00000001 00000010 00000100 24 位 三个字节
gbk
A: 00000110 8位 一个字节
中: 00000010 00000110 16位 两个字节 1、个个编码之间的二进制,是不能互相识别的,会产生乱码。
2、文件的储存、传输,不能使unicode(只能是ytf-8 utf-16 gbk gbk2313 ASCII)等 python3:
str 在内存中是用unicode编码。
bytes类型:
    
        对于英文:
str : 表现形式:s = "alex"
编码方式:010101010 unicode
bytes: 变现形式:s = b"alex" b代表bytes类型
编码方式:000101010 utf-8 gbk.....
对于中文:
str : 表现形式:s = "中国"
编码方式:010101010 unicode
         
                 s = 'alex'
s1 = b'alex'
print(s,type(s))
print(s1,type(s1))
            bytes:  变现形式:s = b"x\e91\e91\e91\e01\e21\e31\e32"    b代表bytes类型
编码方式:000101010 utf-8 gbk.....
           s = '中国'
s1 = b'中国'
print(s,type(s))
print(s1,type(s1))
 s1 = "alex"
# encode 编码, str ——> bytes
s2 = s1.encode('utf-8')
s2 = s1.encode('gbk')
s10 = "中国"
s11 = s10.encode('utf-8')
s11 = s10.encode('gbk')
 

day1-6 字符串、列表、元组、字典、类型转换的更多相关文章

  1. Python第三天 序列 5种数据类型 数值 字符串 列表 元组 字典 各种数据类型的的xx重写xx表达式

    Python第三天 序列  5种数据类型  数值  字符串  列表  元组  字典 各种数据类型的的xx重写xx表达式 目录 Pycharm使用技巧(转载) Python第一天  安装  shell ...

  2. Python第三天 序列 数据类型 数值 字符串 列表 元组 字典

    Python第三天 序列  数据类型  数值  字符串  列表  元组  字典 数据类型数值字符串列表元组字典 序列序列:字符串.列表.元组序列的两个主要特点是索引操作符和切片操作符- 索引操作符让我 ...

  3. python字符串 列表 元组 字典相关操作函数总结

    1.字符串操作函数 find 在字符串中查找子串,找到首次出现的位置,返回下标,找不到返回-1 rfind 从右边查找 join 连接字符串数组 replace 用指定内容替换指定内容,可以指定次数 ...

  4. python 字符串,列表,元组,字典相互转换

    1.字典 dict = {'name': 'Zara', 'age': 7, 'class': 'First'} 字典转为字符串,返回:<type 'str'> {'age': 7, 'n ...

  5. python字符串/列表/元组/字典之间的相互转换(5)

    一.字符串str与列表list 1.字符串转列表 字符串转为列表list,可以使用str.split()方法,split方法是在字符串中对指定字符进行切片,并返回一个列表,示例代码如下: # !usr ...

  6. Python数据类型-布尔/数字/字符串/列表/元组/字典/集合

    代码 bol = True # 布尔 num = 100000000; # 数字 str = "fangbei"; # 字符串 str_cn = u"你好,方倍" ...

  7. Python自动化开发 - 字符串, 列表, 元组, 字典和和文件操作

    一.字符串 特性:字符串本身不可修改,除非字符串变量重新赋值.Python3中所有字符串都是Unicode字符串,支持中文. >>> name  = "Jonathan&q ...

  8. Python 整数 长整数 浮点数 字符串 列表 元组 字典的各种方法

    对于Python, 一切事物都是对象,对象基于类创建!! 注:查看对象相关成员var,type, dir 一.整数 如: 18.73.84 每一个整数都具备如下需要知道的功能: def bit_len ...

  9. Python笔记【5】_字符串&列表&元组&字典之间转换学习

    #!/usr/bin/env/python #-*-coding:utf-8-*- #Author:LingChongShi #查看源码Ctrl+左键 #数据类型之间的转换 Str='www.baid ...

  10. python_字符串&列表&元组&字典之间转换学习

    #!/usr/bin/env/python #-*-coding:utf-8-*- #Author:LingChongShi #查看源码Ctrl+左键 #数据类型之间的转换 Str='www.baid ...

随机推荐

  1. tp框架中的一些疑点知识-7

    mysqli是用面向对象的,所以用箭头对象语法, 而mysql是用C语言面向过程写的, 所以用的都是php全局函数 式的写法. tinkle: 叮叮当当的响; (口语)一次电话, i will giv ...

  2. Git误操作 git reset强制回滚 恢复commit方法

    参考: 找回Git中丢失的Commit Git误操作 git reset强制回滚 恢复commit方法 使用Git时,常有误操作,在Commit之后又执行了git reset --hard HEAD强 ...

  3. hihoCoder 1233 : Boxes(盒子)

    hihoCoder #1233 : Boxes(盒子) 时间限制:1000ms 单点时限:1000ms 内存限制:256MB Description - 题目描述 There is a strange ...

  4. Java 静态方法不能重写但可以被子类静态方法覆盖

    强调 静态方法是属于类的,只存在一份,会被该类的所有对象共享.不可以被重写. 静态方法可以被子类继承,但是不可以被子类重写 class door{ } class wood_Door extends ...

  5. js try catch 的使用,容错处理

    tag: js try catch 的使用,js容错处理 网友回答: try{ //正常执行 }catch(e/*你感觉会出错的 错误类型*/){ // 可能出现的意外 eg:用户自己操作失误 或者 ...

  6. 20. --erg--=--org--=--urg-- 做,工作 (词20、21)

    词汇速记21

  7. linux 基本命令2(12月27日笔记)

    1.ifconfig 作用:用于操作网卡相关的指令 简单语法:#ifconfig      (获取网卡信息)   2.reboot 作用:重新启动计算机 语法1:#reboot             ...

  8. Java 基础功底

    Java 基础语法特性: 首先了解并做好Java Web 开发环境配置(包含 JDK 的配置)是非常必要的.其中 CLASSPATH 的值开始必须包含 ".",否则用 javac ...

  9. IDEA @Autowired 出现红色下划线 报红

    例如: 解决方法:

  10. ORA-00604的解决方法

    分类: Oracle 从错误的角度可以推出:应该是表空间不足   根据查看表空间的使用情况: select b.file_name 物理文件名, b.tablespace_name 表空间, b.by ...