My way to Python - Day02
2024-10-19 03:34:49
本节课内容:
基本数据类型
基本数据类型的扩展
作用域:
一个变量只要存在内存里,就可以用。(只要声明了,就可以使用。)
# 在后面写函数(面向过程)的时候,需要额外添加一个条件:栈。
name = {'nm':123}
for item in name:
# 首先判断,有没有下一个
item = 元素
print item ## 此处可以打印出字典里最后一个值,但是这种使用方法是违规的。在写代码的时候不要使用这种方法。
三元运算(三目运算)
result = 值1 if 条件 else 值2
如果条件为真:result = 值1
如果条件为假:result = 值2
eg:
name = 'sb' if 1==1 else '2b'
进制
二进制
八进制
十进制
十六机制
PyCharm用法:
创建project
配置解释器
创建文件
执行:
断点,
run,
在调试过程中如果需要调试类似于raw_input的断点话,会在需要用户输入交互时,会hang住,等待用户输入。
python基础
python中的一切事物都是对象,对象是基于类来创建的。
类 → 对象
对象,方法,类对象指针。
在由类创建对象的时候,不单单会创建对象包含的元素,还会包括一个"类对象指针"指向这个类所包含的方法。
查看某个对象所包含的方法
# 终端中
通过type(对象名)查看对象的类型
dir(类名) #快速查看类中提供的所有方法,会看到两种方法:两端带有下划线,两端没有下划线:
__方法__:#内置方法,执行方式可能不止(至少)一种
方法:#非内置方法(普通方法),执行方式只有一种:对象.方法
help(类名) #查看类中提供的方法的详细内容
help(类名.方法名) #查看类中某个方法的内容
# PyCharm中
输入类名,按下ctrl鼠标左键点击类名,就会跳转到类的定义的源码
如下图:
类中的方法
dir(类名) #快速查看类中提供的所有方法,会看到两种方法:两端带有下划线,两端没有下划线:
__方法__:#内置方法,执行方式可能不止(至少)一种
方法:#非内置方法(普通方法),执行方式只有一种:对象.方法
内置方法
可以把"+"加号当作一种语法,最终会被解析为__add__的方式:
加法的执行方式:
绝对值(__abs__)的执行方法:
int类型类型的创建,创建是指定进制
常用方法,及其等价的书写方式
__divmod__ # 取商和余数,返回值是一个元组。
divmod
# 在做页面分页展示的时候会用到
__div__ # 取商
__mod__ # 取余数
__float__ # 把数子转换为float类型
__floordiv__ #地板除
//
getattribute # 面向对象的概念,用来传参数。例如li.append之所以可以通过"."(点号)的方式调用,就是缘于此。
__init__构造方法,
repr # 用来转换为解释器可读的信息
str #用来转换为人类可读的信息
数字的内置方法,知道就可以了。因为有更好的替代方法。
PyChar 中迅速定位方法的简要的目录(index)
##字符串 ##
非常重要
expandtabs:
将tab转换为空格,默认一个tab将转为8个空格。可以通过参数指定tab键代指的空格的个数。
name = 'stephen'
name.find('s') # 如果找到,则返回找到的第一个匹配的子序列的下标
# 如果不存在,返回-1
name = "I am {0},age {1}"
# 这种情况下,赋值是有顺序要求的:
name.format('alex',73)
name = "I am {ss},age {dd}"
# 这种情况下,下面的两种赋值方式的效果是等价的:
name.format(ss='alex',dd='84') <====> name.format(dd='84',ss='alex')
通过列表和字典进行字符串的赋值
name.format(*list)
name.format(**dict)
find index的区别
在查找不到的时候:
find会返回None值,不会输出错误。
index会报错
判断是否是否中类型的数据
isalpha
isdigit
isalnum
islower
isupper
istitile # 是否是标题,可以通过title方法进行转换,
大小写转化:
lower
upper
swapcase
对齐:
center
ljust
rjust
分割:
partition
rpartition
替换:
replace
strip
lstrip
rstrip
splitlines # 按换行符分割
translate:
做转换,先做对应关系,后面的参数是要删除的字符的集合。
''' translate 用于做转换,先做对应关系,后面的参数是要删除的字符的集合 ''' #代码块 import string intab = "aeiou" outtab = " trantab = string.maketrans(intab, outtab) str = "this is string example....wow!!!" print str.translate(trantab, 'xm') #程序输出结果 th3s 3s str3ng 21pl2....w4w!!!
__contains__ # 是否包含
字符串相乘:
name='alex'*4
列表
append
del # del xx[下标]
count # 出现的次数
extend # 列表的扩展,可以做列表类似的"相加"
index # 找到某个字符首次出现的位置
insert # 插入到指定位置
pop # 弹出,出栈。
删除并返回指定下标的值,如果没有指定,默认删除并返回最后一个。
remove # 删除指定的值,只删除第一个匹配的值。
reverse # 反转
sort # 排序
# 数值,按数字比较
# 字母,按ASCII码进行比较
# 中文,按Unicode进行比较
元组
元素不能被修改,不能被删除,增加,修改类型。
元素的元素可以被修改
字典
clear # 清除
copy # 浅拷贝
get #
几种不同通过key获取value的方式及其区别:
>>> dict = {'} #创建一个字典,只包含一个键值对。 >>> >>> dict['k1'] ' >>> dict['k2'] #使用这种方式引用不存在的key,会报错。 Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'k2' >>> >>> dict.get('k1') ' >>> dict.get('k2') #使用这种方式引用不存在的key,不会报错。会得到一个返回值:None。 >>> >>> print dict.get('k2') None >>> print dict.get('k2','No Such Key') #也可以只用这种方式,添加一个当key不存在的时候的返回值。 No Such Key >>>
所有不可变的元素都可以单做字典的key
字符串
数字
类的实例
▷ 日期,元组 虽然可以用作字典的key,但是不要使用。
▷ 列表不可以被用作key,因为列表是可变的。
判断一个值是否是某种数据类型
type(xx) is dict
type(xx) is str
type(xx) is float
批量创建具有相同value的字典(键值对)的方法:
fromkeys([1,2,3],'t')
fromkeys([1,2,3],[])
haskey
b =
1 in b
循环字典:
for k,v in b.iems:print k,v
for k in b:print k,b[k]
pop
popitem # 随机删除,尽量不要用
setdefault # 如果值存在,返回值;不存在,创建,并设置初始值。不能重复创建。
update 字典的整合
# key存在,则更新value
# key不存在,则创建
copy # 浅copy
import copy
f=copy.deepcopy(c)
集合:
应用场景:CMDB,自动的资产更新。
set 去重
&
|
^
issuperset
issubset
pop # 随机删除
remove # 指定删除,需要指定值
update # 将一个集合加进来,union。
最新文章
- HTML5_05之SVG扩展、地理定位、拖放
- 浅谈android中的目录结构
- 使用HTML5的十大原因
- NGINX的奇淫技巧 —— 3. 不同域名输出不同伺服器标识
- 第六篇、微信小程序-form组件
- live555源码研究(一)------live555MediaServer的启动过程和基本类图
- 快速排序 javascript实现
- IS-A 和 HAS-A
- mysql5.5修改字符编码
- 201521123092,《java程序设计》第1周学习总结
- hdu 3436 线段树 一顿操作
- BootStrap格栅系统
- Android为TV端助力 集成第三方播放器,实现全屏播放
- keil折叠代码
- 20175325 《JAVA程序设计》实验二《JAVA开发环境的熟悉》实验报告
- __attribute__ ((default)) 和 __attribute__ ((hidden))
- iOS - UITableView reloadData滚动到顶部无效问题解决
- 在windows如何操控一些屌炸天的linux命令[利刃篇]
- Winio驱动在64位windows下无法使用的解决方法
- Java 利用poi生成excel表格
热门文章
- SQL Server 创建链接服务器
- Android学习之Activity之间的数据传递
- [C#][Database]C#通过ODBC以自定义端口连接数据库
- 删除作业计划出错(DELETE语句与 REFERENCE约束"FK_subplan_job_id"冲突。)
- mysql 常用语法
- Linux中的常见配置文件
- javascript取消disabled属性
- CSS的一些思考(一)
- web后台获取不到session中的值(loading sessions from persistent storage),后改用JS传值
- CI练手下,找找感觉