Python 基础

2019-10-14  本文已影响0人  定格r

1.有中文的时候要定义编码,不然会报错

#coding=utf-8

2.单行注释用 #
多行注释用 " " "

new="这是一个全局变量"  #注释

" " "
这是多行注释
" " " 

3.不用定义变量数据类型,它会根据你赋值的数据类型自动给变量定义数据类型

a="aassscbu"  # a就是字符串类型

4.引入文件
例如引入 :stand.py 文件

import stand

一、变量与赋值

1.变量命名规范。
   1.1 记住不能做什么:不能用关键字,开头不能用数字,不能用操作符。
   1.2 怎么搭配最合理:没事别乱用大写。清晰。尽量不要用拼音。用拼音的话用全称。

2.赋值
   2.1 记住动态特性。

   2.2 多重赋值。

a,b,c = "str1","str2",4

   2.3 删除变量

del  a   #或者
del  a,b,c

3.如何确定变量的数据类型

a = 1
type(a) #int类型

二、常用的数据类型

int 整型
boolean 布尔
string 字符串
list 列表
tuple 元组
dict 字典

数据类型的可变和不可变

不可变类型:int , string , tuple
可变类型:list , dict

1> 变量之赋值一切皆为引用,动态性与动态类型之为何不再动态

a="1234"
a+1    # 报错,不会动态转换 a 的数据类型,除非 强制类型转换
int(a)+1   #  正确   1235
a="1234ccc"
int(a)   #  报错  不能进行类型转换,因为 c 不是纯的数字

2> 互相转换之 int , bool

bool(1==1)  # 结果   true
a=bool(1==1)    # a 可以引用 bool 值的结果

注意:

1.len 需注意

问题:


image.png

问题描述:一个中文 ascii 默认三个字节

解决方法:

  1.把 ascii 变为 unicode 码

a = u "哈"
print  len(a)   # 1

  2.用 decode 方法

a = "哈哈哈"
g=a.decode(utf-8)
print len(g)    # 3

1.修改字符串 replace

修改字符串中的某个值

image.png

2.查找字符串 find

格式:变量.find("查找的值",从第几位开始)


image.png

如果返回的是 -1 :表示没找到,返回的是 0 以上的值,指的是找到了
返回的值是索引值

单引号,双引号的使用注意:

单引号里面有单引号需要转义字符
单引号里面有双引号不需要转义字符

image.png

二、列表

1.特征

2.添加操作:

+:生成一个新的列表

Extend 接受参数并将该参数的每个元素都添加到原有的列表中,原地修改列表而不是新建列表


image.png

Append :添加任意对象到列表的末端


image.png

Insert: 插入任意对象到列表中,可以控制插入位置。


image.png

4. 修改:

修改列表本身只需要直接赋值操作就行。

A = [1,2,3]

A[0]=’haha

5.删除操作:

Del :我们通过索引删除指定位置的元素。

Remove:移除列表中指定值的第一个匹配值。如果没找到的话,会抛异常。

Pop:返回最后一个元素,并从list中删除它。

6 列表推导式:

[expr for iter_var in iterable]

1首先迭代iterable里所有内容,每一次迭代,都把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表。

比如我们要生成一个包含1到10的列表

[x for x in range(1,11)]

Range(1,11)

image.png image.png

[expr for iter_var in iterable if cond_expr]

2加入了判断语句,只有满足条件的内容才把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表。

要生成包含1到10的所有奇数列表。

range(1,11,2)
image.png
[x for x in range(1,11) if x % 2 == 1]

7 排序翻转:sort,reverse

a = [33,11,22,44]

这个方式直接修改原列表。他的返回值为none,所以

b = a.sort()

print b 输出的内容是None

我们直接输出a列表变量


image.png

小技巧之再议删除

1.del 删除列表对象的引用

2.del [ : ] 清空列表对象里的元素

image.png

切片取值: a[ x : x ]

image.png

三、元组

1.特点:

1 有序的集合

2 通过偏移来取数据

3 属于不可变的对象,不能在原地修改内容,没有排序,修改等操作。

tuple 类型转换

那为什么有列表还要有元组呢?

元组不可变的好处。保证数据的安全,比如我们传给一个不熟悉的方法或者数据接口,
确保方法或者接口不会改变我们的数据从而导致程序问题。

def info(a):
    '''一个我们不熟悉的方法'''
    a[0] = 'haha'
   
a = [1,2,3]

info(a)

print a   # ['haha',2,3]

2. 集合:

集合是没有顺序的概念。所以不能用切片和索引操作。

1 创建集合。set():可变的 不可变的frozenset():


image.png

2 添加操作: add,update (区别:add 整体加入,update 是分开加入)


image.png

3 删除 remove

image.png

4 成员关系 in,not in


image.png

6 交集,并集,差集 & | -


image.png

7 set去重 列表内容元素重复

image.png

四、字典

字典是无序的,它不能通过偏移来存取,只能通过键来存取。

字典 = {'key':value} key:类似我们现实的钥匙,而value则是锁。一个钥匙开一个锁

特点:

1.内部没有顺序,通过键来读取内容,可嵌套,方便我们组织多种数据结构,并且可以原地修改里面的内容,属于可变类型。

2.组成字典的键必须是不可变的数据类型,比如,数字,字符串,元组等,列表等可变对象不能作为键.

创建字典。{},dict()

info = {'name':'lilei', 'age': 20}

info  = dict(name='lilei',age=20)

添加内容 a['xx'] = 'xx'

比如

 info['phone'] = 'iphone5'

修改内容

  1. a['xx'] = 'xx' ,
info['phone'] = 'htc'

2.update 参数是一个字典的类型,他会覆盖相同键的值

info.update({'city':'beijing','phone':'nokia'})
image.png

删除 del,clear,pop

del info['phone'] 删除指定的某个元素

info.clear() 删除字典的全部元素

info.pop('name') 通过键去删除,返回值,并删除这个键值
列表的 pop()方法 通过下标索引值去删除

in 和 has_key() 成员关系操作

判断是否在键值是否在这个字典里

比如:

1 phone in info

2  info.has_key('phone')

方法

get:从字典中获得一个值

info.get('name')

info.get('age2','22')  #还可以设置它的返回值是 22
image.png
上一篇下一篇

猜你喜欢

热点阅读