Python的基础---学习笔记(一)

1、输入输出

>>>Name=input()

>>>name

2、数据类型和变量

整数:0xff00

浮点数:1.23e9=12.3e8    0.000012=1.2e-5

字符串:”I’m OK”表示I’m OK    ‘I\’m \”OK\”!’表示I’m “OK”!    \是转义字符,r’’表示’’内部字符串默认不转义,’’’...’’’表示多行内容

布尔值:一个布尔值只有True和False两种值,可以用and,or,not运算

空值:none表示,!=0

变量:a=123,b=’ABC’

常量:PI=3.1415926

除法有两种:一种是/,另一种是//(地板除)

   >>>9/3 =3.0

   >>>10/3=3

   >>>10%3=1

任何数据都看成对象

Python的整数和浮点数没有大小限制,Inf(无限大)

3、字符编码:在计算机内存中,统一使用unicode编码,当需要保存到硬盘或者需要传输的时候,就转换成utf-8编码。用记事本编辑的时候,从文件读取的utf-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把unicode转换成utf-8保存到文件。

Python的字符串:ord(‘A’)=65    ord(‘中’)=20013    chr(66)=’B’     ’u4e2d\u6587’=’中文’

Python的字符类型是str,单位是字符,如果要在网络上传输或者保存到磁盘上,需要把str变成以字节为单位的bytes.   X=b’ABC’

以Unicode表示的str通过encode()方法可以编码为指定的bytes     

例:’ABC’.encode(ascii)     ‘中文’.encode(‘utf-8’)

含有中文的str无法用ASCII编码

在bytes中,无法显示为ASCII字符的字节,用\x##显示

要把bytes变为str,用decode()方法

例:b’ABC’.decode(‘ascii’)

如果bytes中包含无法解码的字节,decode()会报错

如果bytes中只有一小部分无效的字节,可以传入errors=’ignore’

例:>>>b’\xe4\xb8\xad\aff’.decode(‘utf-8’,error=’ignore’)

计算str包含多少个字符,bytes中有多少字节,用len()函数

Python文件开头两句:

#!/user/bin/env python3

# -*- coding: utf-8 -*-

文本编辑代码时必须确保文本编辑器正在使用utf-8 without BOM编码

输出格式化的字符串:

例:>>>’Hi,%s,you have $%d.’%(‘Michael’,10000)

占位符:%d表示整数替换,%s表示字符串替换,%f表示浮点数替换,%x表示十六进制整数

不太确定应该用什么的时候,%s永远起作用,如果%是普通字符,就用%%来表示,转义。

另一种格式化字符串的方法是format()方法,会用传入的参数依次替代字符串之内的占位符{0},{1}......。例:>>>’Hello,{0},成绩提升了{1:.1f}%’.format(‘小明’,17.125)

4、List:集合

list是一种有序的集合,可以随时添加删除其中的元素

例:>>>classmates=[‘Michael’,’Bob’,’Tracy’]

len()函数可以获取list

用索引来访问list中每一个位置的元素,记得索引是从0开始的,也可以用-1做索引

例:>>>classmates[0]   结果:’Michael’

    >>>classmates[-1]   结果:’Tracy’

List是一个可变的有序表,用append()追加元素,用insert()插入元素,pop()删除元素,

例:>>>classmates.append(‘Adam’)

>>>classmates.insert(1,‘Jack’)

Pop()删除末尾元素,pop(i)删除i位置元素。

替换某一个元素,直接赋值给对应索引位置。

例:>>>classmates[1]=’Sarah’

List里面的元素的数据类型也可以不同,也可以是另一个list

例:>>>L=[‘Apple’,123,True,[‘asp’,’php’],’java’],取出php用L[3][1],看成一个二维数组。

5、tuple:元组

是另一种有序列表,但是一旦初始化就不能修改,获取元素与list一样。

因为tuple不可变,所以代码更安全。

tuple的陷阱:定义一个tuple时,定义的时候就要把元素确定下来,但定义只有1个元素的tuple时,需要加一个逗号来消除歧义,显示只有一个元素的tuple时,也会加一个逗号。

例:>>>t=(1,2) 确定元素  >>>t=() 这是空tuple   >>>t=(1) 结果为1   >>>t=(1,)  结果为(1,)

6、条件判断

例:age=20

if age>=6:

   Print(‘teenager’)

elif age>=18:

   print(‘adult’)

else:

   print(‘kid’)

结果:teenager

注意不要少写了冒号,elif是else if的缩写

if语句执行有个特点,是从上往下判断,如果某个判断上是True,把该判断对应的语句执行后,就忽略剩下的elif和else,所以才会出现上面例子中的情况。

if条件还可以简写

例:if x:

      print(‘True’)

只要x是非零数值,非空字符串,非空list等,就判断为True,否则为false

再议input()

birth=input(‘birth:’)

if birth<2000:

  print(‘00前’)

else:

  print(‘00后’)

输入1982,结果会报错,因为input()返回的数据类型是str,不能直接和整数比较,需要用int()函数将str转换成整数,即加一句:birth=int(birth)

7、循环

Python中有两种循环,一种是for in,另一种是while

for in循环依次把list和tuple中的每个元素迭代出来

例:sum=0

for x in [1,2,3,4,5,6,7,8,9,10]:

   sum=sum+x

print(sum)

计算1-100之内整数之和,ranger()函数可以生成一个整数序列,再通过list()函数可以转化为list

例:>>>list(ranger(5))  结果:[0,1,2,3,4]

所以计算1-100整数和的程序可为:

sum=0

for x in ranger(101):

sum=sum+x

print(sum)

while循环,只要条件满足,就不断循环,条件不满足时退出循环

例:计算100以内的奇数之和

sum=0

n=99

while n>0

   sum=sum+n

   n=n-2

print(sum)

8、dict:字典

使用键值对存储,具有极快的查找速度

例:>>>d={‘Michael’:95,’Bob’:75,’Tracy’:85}

>>>d={‘Michael’}

结果;95

把数据放入dict中,除了初始化时指定外,还可以通过key放入,一个key值对应着一个value值,多次对一个key放value,后面的值会把前面的值冲掉。

例:>>>d[‘Adam’]=90

>>>d[‘Adam’]

结果:90

如果key不存在,dict会报错,要避免key不存在的错误,有两种办法:

一:通过in判断key是否存在

二:通过dict的get()方法,如果key不存在,可以返回None,或者自己指定的value

例:>>>’Thomas’ in d   结果:False

>>>d.get(‘Thomas’)

>>>d.get(‘Thomas’)  结果:-1

注意;返回None时候python交互环境不显示结果

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

dict内部存放的顺序和key放入的顺序是没有关系的。

和list比较,dict有以下几个特点:
1:查找和插入的速度极快,不会随着key的增加而变慢;
2:需要占用大量的内存,内存浪费多。

而list相反:
1:查找和插入的时间随着元素的增加而增加;
2:占用空间小,浪费内存很少。

所以,dict是用空间来换取时间的一种方法。dict的key必须是不可变对象,这个通过key计算位置的算法称为哈希算法(Hash)。

要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key

9、set

set也是一组key的集合,但不存储value,没有重复的key

例:>>>s=set([1,1,2,2,3,3])

>>>s  

结果:{1,2,3}

输入是list,显示是{},只是告诉set内部有哪几个元素,显示的顺序不表示set是有序的。重复元素在set中自动被过滤。

通过add(key)可以添加元素,可以重复添加,但是不会有效果

通过remove(key)可以删除元素

set是无序和无重复元素的集合,两个set可以做数学意义上的交集、并集等操作:

例:>>> 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、付费专栏及课程。

余额充值