1 python-基础

1. 数据类型和变量

  • 整数:0,-3, 3330xff00(十六进制)
  • 浮点数:0.4 ,1.23e9(1.23x109) , 0.000012可以写成1.2e-5
  • 字符串:‘a’或“a”,用单引号和双引号括起来,如果字符串中包括单、双引号,用转义字符 \'(\")表示,在命令行模式下换行用'''...''',str类型
  • 布尔值:and,or,not ;  and 与运算 都true为true,or 或运算 都False为false 其余为真, not 非运算 not false = true
  • 空值:none,注意这里none不是0
  • 变量:字母、数字、下划线组成的(且数字不能为首字母)
  • 常量:用大写表示 例如PI=3.14159265359
  • 除法:/(正常的除),//(取整除),%(取余除)

2.字符编码

  • 编码类型:
类型特点大小
ASCII编码支持大小写英文字母、数字和一些符号1字节
UTF-8编码
可变长编码,节约存储空间,ASCII编码可以看做是UTF-8编码的一部分,python中最常用

1-6字节,英文1字节,汉字3字节,生僻字4-6字节

Unicode编码

所有语言统一编码(大小写英文字母、数字和一些符号用ASCII编码,并在前补1字节的0)

2字节,生僻字4字节
  • 编码转换:在计算机内存中,统一用Unicode编码,需要保存或者传输时,先转换成UTF-8编码再保存;浏览网页时,服务器会将动态生成的Unicode编码转换成UTF-8编码再传输到浏览器。
  • python字符串编码:
  1. 采用Unicode编码,支持多语言;
  2. 单字符:获取编码 ord('A') ,结果为65 ;转换成编码chr(65),结果为A;
>>> ord('A')65>>> ord('中')20013>>> chr(66)'B'>>> chr(25991)'文'

如果知道字符的整数编码,可以用16进制直接表示,例如

>>> '\u4e2d\u6587'
'中文'
             3.python字符串转变

由于python字符串是str类型,所以在存储和传输时,要转换成计算机识别的byte类型(一个字符对应着若干个字节);python中的字节用b+'字符串'表示,如b'asc',表示byte类型的字符串'asc','asc'表示str类型的字符串'asc',二者占用字节数不同。

  • byte变成str:b'字符串'.decode()函数
  • str变成byte:'字符串'.encode()函数
  • 只能计算str中字符大小:len('字符串')函数
#!/usr/bin/env python3    # 告诉Linux/OS X系统,这是一个python可执行程序,Windows系统会忽略这个注释
# -*- coding: utf-8 -*-   # 告诉python解释器,采用UTF-8编码读取原文件,否则,在源代码中写的中文输出可能会乱码
>>> b'ABC'.decode('ascii')
'ABC'
>>> 'ABC'.encode('utf-8', errors='ignore')  #可忽略很少的错误
b'ABC'>>> len('ABC')3>>> len(b'ABC'.encode('utf-8'))
申明了UTF-8编码并不意味着你的.py文件就是UTF-8编码的,必须并且要确保文本编辑器正在使用UTF-8 without BOM编码:
  • 格式化

1. 在python中格式化和c语言一样,采用%?占位来表示,%%表示一个%字符,其中%d,替换整数%f-浮点数,%s-字符串,%x-16进制数

>>> 'Hello, %s' % 'world'   #一个占位符可省略括号
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'>>> '%02d-%07.2f' % (3, 3.1415926)   #格式化整数和浮点数还可以指定是否补0和整数与小数的位数:03-0003.14

2. 使用'{0:07.2f},{1}'.format(字符1,字符2)方法

>>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)
'Hello, 小明, 成绩提升了 17.1%'

3. 使用list和tuple

  • list:类似于数组和栈的结合,元素类型可以不同,用[]初始化

>>> list_1 = ['Michael', 1, True]>>> list_1[-1] #取最后一个 倒数第二个为[-2]True
>>> list_1[0]  #从0开始'Michael'
>>> list_2 = ['Michael', ['Bob','Marry'], 'Tracy'] #第二个位置代表list里面包含另一个list,list的嵌套,>>> list_2[1][1]   #可以看作数组
'Marry'
>>> list_2.append['May']    #在list尾部追加'May'>>> list_2 ['Michael', ['Bob','Marry'], 'Tracy','May']
>>> list_2.insert(1,'Jack')  #在list第2个位置插入'Jack'>>> list_2 ['Michael', 'Jack', ['Bob','Marry'], 'Tracy','May']
>>> list_2.pop() #删除末尾元素
>>> list_2.pop(1) #删除第2个元素 >>> list_2  ['Michael', ['Bob','Marry'], 'Tracy'] >>> len(list_2) 3>>> list_1.sort()  #排序 
  • tuple:和list使用方式一样,不同的是tuple用()定义,并且它类似于静态变量,一旦定义后不可更改,因此具有安全性,在python中能定义成tuple不定义成list。tuple可以嵌套list,list里面的内容是可以增删的。
>>> tuple_1 = (1, 2)
>>> tuple_1
(1, 2)
#定义空tuple>>> t = ()
>>> t
()
#定义1个元素,且元素是1 如果不加,则可以看做是(1),会产生歧义,因此加,消除歧义>>> t = (1,)
>>> t
(1,)
#tuple中的list可以改变,并且可以使用list的pop,append和insert函数,但是tuple中只允许使用tuple[][]来查看元素>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2].insert['c']
>>> t
('a', 'b', ['X', 'Y', 'c'])

4.条件判断

  • if-else  只要遇到满足条件就跳出条件语句

if <条件判断1>:
    <执行1>
elif <条件判断2>:
    <执行2>
elif <条件判断3>:
    <执行3>
else:
    <执行4>

5.循环

  • for...in...循环:把list和Tuple中的元素迭代出来

names = ['Michael', 'Bob', 'Tracy']for name in names:    print(name)#结果Michael
Bob
Tracy

sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
    sum = sum + x
print(sum)#结果55
sum = 0
for x in range(101):   #range(101)   生成从0到100的整数 
    sum = sum + x
print(sum)
#结果
5050

  • while循环:只要满足条件,就循环,不满足则退出

#打印100以内的奇数sum = 0n = 99while n > 0:    sum = sum + n    n = n - 2print(sum)

  • 退出循环:break:提前结束循环;continue:提前结束本次循环,继续下一次循环;
  • 当遇到死循环时,Ctrl+c可退出

4. 使用dict和set

  1). dict(字典,dictionary):和map类似,定义了(键-值)对,使用(key-value)存储,用{key1:value1,key2:value2}初始化;
  1. 和list比较,dict有以下几个特点:
  • 查找和插入的速度极快,不会随着key的增加而变慢;
  • 需要占用大量的内存,内存浪费多。

而list相反:

  • 查找和插入的时间随着元素的增加而增加;
  • 占用空间小,浪费内存很少。
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}>>> d['Michael']95
>>> d['Tracy'] = 67   #可以重新根据key赋值 并且key永远是最后赋值的值>>> d['Tracy']67
#判断key是否存在>>> 'Thomas' in d
False
>>> d.get('Thomas')         #返回none 但是在交互界面不显示
>>> d.get('Thomas', -1)     #返回自己定义的值,说明不存在该KEY    
-1

2. 可以使用pop函数 d.pop(key),删除键值对;

2). set:set可以看成数学意义上的无序和无重复元素的集合,定义为 ([1,2,3]),两个set可以做数学意义上的交集、并集等操作:

  • set.add(key):添加元素,也可添加重复项,但是会自动过滤

>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.add(4)
>>> s
{1, 2, 3, 4}

  • set.remove(key):删除元素

>>> s.remove(4)
>>> s
{1, 2, 3}

  • set1&set2 取交集
  • set1|set2 取并集

>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值