python学习笔记(一)

Python学习笔记(一)

一、Python基础:

1.数据类型

  • 整型
    没有大小限制,可以处理任意大小的整型数据,精确运算。
  • 浮点型
    很大或很小的浮点数需要用科学计数法表示,运算可能四舍五入。如123000000,表示为1.23e8。
  • 字符串
    有单引号'或者双引号"括起来的任意文本。和其他语言一样,\为转义字符,还包括\n\r等其他特殊意义的字符。当引号里面有很多东西需要转义的时候,可以用r''表示''引号内部的字符全部不转义。
  • 布尔值
    可以直接用true或者false表示,也可以通过andornot来运算 ,对应的意义是与、或、非。
  • 空值
    空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

此外,Python还提供了列表、字典等多种数据类型,还允许创建自定义数据类型

2.变量

变量在程序中用一个变量名表示,变量名必须是大小写英文、数字和_的组合,且不能用数字开头。变量无需声明类型(动态语言的特点)

注意:在Python中除法有两种:

    >>>10/3  
    3.3333  

/除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数
还有一种除法是//,称为地板除,两个整数的除法仍然是整数
另外Python中也有%,求余

3.字符编码

在Python 3版本中,字符串是以Unicode编码的。
对于单个的字符,Python提供了ord()函数获得字符的整数表示,chr()函数把编码转换成对应的字符。
由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干字节。如果要在网络上面传输或者保存到磁盘,则需要把str变成以字节为单位的bytes
Python对应bytes类型的数据用带b前缀的单引号或双引号来表示,例如:

x = b'ABC'

需要注意的是'ABC'b'ABC'的区别,前者是str,后者是bytes
以Unicode表示的str可以通过encode()方法科比编码为指定的bytes,例如:

>>> 'ABC'.encode('ascii')
b'ABC'
>>> 'ABC'.encode('utf-8')
b'ABC'

bytes转变成str,可以通过decode()方法

>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'

len()函数可以用来计算str的字符数,也可以计算bytes的字节数。
为了避免乱码问题,应当始终坚持使用UTF-8编码对strbytes进行转换。

由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;

第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。

在Python中,采用的格式化方式和C语言是一致的,用%实现,举例如下:

>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Chenlx', 1000000)
'Hi, Chenlx, you have $1000000.'

在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。
其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数:

>>> '%2d-%02d' % (3, 1)
' 3-01'
>>> '%.2f' % 3.1415926
'3.14'

有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%:

>>> 'growth rate: %d %%' % 7
'growth rate: 7 %'

4.list和tuple

List

list是一种有序的集合,可以随时添加和删除其中的元素。和java里面的类似。

>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']

常用的几个方法:

  • len() 获得list元素的个数
  • append() 往list中追加元素到末尾
  • insetr() 元素插入到指定的位置
  • pop() 删除list末尾的元素
  • pop(i) 删除指定位置的元素,i为索引

把某个元素替换成别的元素,可以直接赋值给对应的索引位置
如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素

tuple

tuple和list非常类似,但是tuple一旦初始化就不能修改,我们从称为元组。
因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
创建tuple和创建list不同之处是用( )替代了[ ]
uple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,比如:

>>> t = (1, 2)
>>> t
(1, 2)

如果要定义一个空的tuple,可以写成():

>>> t = ()
>>> t
()

只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:

>>> t = (1,)
>>> t
(1,)

tuple不可变是指tuple的每个元素,指向永远不变

5.条件判断

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

注意点:在使用input()用户输入的时候,若要进行条件判断,需要进行类型转换。

6.循环

for…in

把集合中的每个元素迭代出来

sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
    sum = sum + x
print(sum)

range()函数,可以生成一个整数序列
list()函数,可以转换为list

>>> list(range(5))
[0, 1, 2, 3, 4]
while循环

只要条件满足,就不断循环,条件不满足时退出循环。例子:

sum = 0
n = 99
while n > 0:
    sum = sum + n
    n = n - 2
print(sum)
break

break语句可以提前退出循环

n = 1
while n <= 100:
    if n > 10:
        break 
    print(n)
    n = n + 1
print('END')
continue

continue语句,跳过当前的这次循环,直接开始下一次循环

n = 0
while n < 10:
    n = n + 1
    if n % 2 == 0: # 如果n是偶数,执行continue语句
        continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行
    print(n)

7.dict和set

dict

Python内置字典,相当于java里面的Map,保存键-值对。

d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}

len()函数可以求字典的长度

len(d)

可以简单地使用 d[key] 的形式来查找对应的 value

>>> print d['Adam']
95

如果key不存在,会直接报错:KeyError。有两种解决办法:
一是先判断一下 key 是否存在,用 in 操作符:

if 'Paul' in d:
    print d['Paul']

二是使用dict本身提供的一个 get 方法,在Key不存在的时候,返回None:

>>> print d.get('Bart')
59
>>> print d.get('Paul')
None

三大特点:

在一个dict中,key不能重复
存储的key-value序对是没有顺序的
作为 key 的元素必须不可变

dict的更新:直接赋值,后面的赋值可以覆盖前面的值。

d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
d['Adam'] = 100  

dict的遍历:利用for...in

d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
for key in d:
    print key,':',d[key]  

要删除一个key,用pop(key)方法,对应的value也会从dict中删除。

set

set是一个元素没有重复,而且是无序的集合。
创建一个set,需要调用 set() 并传入一个 list,list的元素将作为set的元素:

s = set([1, 2, 3]
print(s)
{1, 2, 3}  

访问 set中的某个元素实际上就是判断一个元素是否在set中,用 in 操作符判断

>>> s = set(['Adam', 'Lisa', 'Bart', 'Paul'])  
>>> 'Bart' in s
True

遍历set:for...in

s = set(['Adam', 'Lisa', 'Bart'])
for name in s:
    print (name)  

add(key)添加元素到集合,如果元素已经存在,不会有任何效果
remove(key)删除元素,如果元素不存在,则会报错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值