1.Sql导入数据方式:(1)软件选择导入,分隔符类型,直接导入java
(2)写入代码导入python
二、Hadoop下载安装:官网下载安装mysql
三、HDFSlinux
HDFS的可靠性:建立了多份数据备份,放置在了其余计算机节点中,读取速度也很快。android
结构:NameNode(元数据 内存)和DataNodes(文件内容 磁盘)程序员
运行机制:(1)一个名字节点和多个数据节点算法
(2)故障检测sql
计算机网络shell
1 电路交换与分组交换的区别是什么?优劣对比?apache
答:先介绍基本概念:
概念:必须通过创建链接(占用通讯资源)--->通话(一直占用通讯资源)--->释放链接三个步骤的交换方式称为电路交换。
优势:高效
缺点:分组在路由器存储转发须要时延。
2 电路交换、报文交换和分组交换
3 计算机网络的定义
4 相关概念
5 网络各分层的功能
6 体系结构
网络体系
1.网络体系具备一系列的规范来管理介质访问、物理寻址、计算机与传输介质的交互。在决定网络体系时,其实是在决定如何设计网络访问层。
2.网络体系包含对物理网络的定义,以及该物理网络上定义的通讯规范。
OSI的七层协议体系结构
7、应用层|
6、表示层|
5、会话层|
4、传输层|
3、网络层|
2、数据链路层|
1、物理层|
从上而下提供端到端的服务。
巧记:应示、会传、网数理
TCP/IP
TCP/IP:在Internet和不少其余网络上使用的网络协议簇。
TCP/IP的特性
TCP/IP体系结构
应用层(各类应用层协议如TELNET/FTP/SMTP等)|
传输层(TCP或UDP)|
网际层IP|:寻址与发送
网络接口层|
五层协议的体系结构
5、应用层(HTTP/FTP/SMTP)|
4、运输层(TCP/UDP)|
3、网络层(ICMP/IGMP/IP/RARP/ARP)|
INTERNET控制消息协议——ICMP
2、数据链路层|
1、物理层|
巧记:应运而生网络、数据+物理。
7 各层次简介
复用:就是多个应用层进程能够同时使用下面运输层的服务。
分用:运输层把收到的信息又分别交付给上面应用层中相应的进程。
多路复用/多路分解
1.多路复用是指把多个来源的数据导向一个输出,而多路分解是把从一个来源接收的数据发送到多个输出。多路传输/多路分解让TCP/IP协议栈较低层的协议不比关心哪一个程序在传输数据。与应用程序相关的操做都由传输层完成了,数据经过一个与应用程序无关的管道在传输层与网际层之间传递。
2.多路复用是指两个或多个用户共享公用信道的一种机制。经过多路复用技术,多个终端能共享一条高速信道,从而达到节省信道资源的目的,多路复用有频分多路复用(FDMA),时分多路复用(TDMA),码分多路复用(CDMA)几种。
运输层有如下两种协议:
传输控制协议TCP(Transmission Control Protocol)
面向链接的,数据传输的单位是报文段,可以提供可靠的交付。
TCP数据格式:
用户数据报协议UDP(User Datagram Protocol)
无链接的,数据传输单位是用户数据报,不保证可靠的交付,只能提供“最大努力的交付”。
8 数据链路层
9 MAC地址的概念以及做用
10.物理寻址
1.网络访问层须要把逻辑IP地址与网络适配器的固定物理地址相关联。
2.物理寻址是由介质访问控制(MAC)子层负责的。
3.TCP/IP使用地址解析协议(ARP)和逆向地址解析协议(RARP)把IP地址关联到网络适配器的物理地址。ARP和RARP为用户提供的逻辑IP地址与局域网上使用的硬件地址创建了一个对应关系。
11 MAC地址和IP地址的区别
12 MAC帧格式
其中类型表示的是上一层使用的是什么协议,以便把收到的Mac帧交给上一层的这个协议。
13 网际层:寻址与发送
网际协议IP
14 IP
IP寻址:
1.划分网络ID和主机ID的最初方案是使用地址分类。
2.A类:0.0.0.0~127.255.255.255
B类:128.0.0.0~191.255.255.255
C类:192.0.0.0~223.255.255.255
D类:224.0.0.0~239.255.255.255
E类:240.0.0.0~247.255.255.255
规定首字节不能是12七、0、255,主机各位不能同时为0和1
15 ARP协议的用途、算法,在哪一层会使用arp?
16 如何实现透明传输?
17 路由表的内容是什么?
18 UDP的首部格式
19 三次握手+四次断开
TCP如何保证可靠性:
TCP的可靠性是经过顺序编号和确认(ACK)来实现的。TCP在开始传送一个段时,为准备重传而首先将该段插入到发送队列之中,同时启动时钟。其后,若是收到了接受端对该段的ACK信息,就将该段从队列中删去。若是在时钟规定的时间内,ACK未返回,那么就从发送队列中再次送出这个段。TCP在协议中就对数据可靠传输作了保障,握手与断开都须要通信双方确认,数据传输也须要双方确认成功,在协议中还规定了:分包、重组、重传等规则;而UDP主要是面向不可靠链接的,不能保证数据正确到达目的地。
20 FTP和TFTP的区别:
21 以太网
1.以太网是目前使用最普遍的局域网技术,是当今现有局域网采用的最通用的通讯协议标准。
2.在典型的以太网上,所有计算机共享同一个传输介质。以太网使用成为载波侦听多路访问/冲突检测(CSMA/CD)的方法,来判断计算机什么时候能够把数据发送到访问介质。经过CSMA/CD,全部计算机都监视传输介质的状态,在传输以前等待线路空闲。若是两台计算机尝试同时发送数据,就会发生冲突,计算机就会中止发送,等待一个随机的时间间隔,而后再次尝试发送。
3.传统以太网在中低负载状况下运行良好,但在大负载状况下会因为冲突的增多而影响性能。在现代以太网中,像网络交换机这样的设备会对流量进行管理,减小冲突的发生,从而让以太网的运行更具效率。
22交换机:每台计算机也是经过一条线路链接到交换机。可是,交换机知道应该把接收到的数据发送到哪个端口。大多数交换机把端口与所链接设备的物理地址关联起来。当一个端口所链接的计算机发送数据帧时,交换机会查看帧的目的地址,把帧发送到目的地址相关联的端口
23 访问过程
浏览器输入网址以后的过程
1应用层:客户端浏览器经过DNS解析到www.baidu.com的IP地址220.181.27.48,经过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,而后经过TCP进行封装数据包,输入到网络层。
HTTP访问服务器
2传输层:在客户端的传输层,把HTTP会话请求分红报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。而后使用IP层的IP地址查找目的端。
3.客户端的网络层不用关心应用层或者传输层的东西,主要作的是经过查找路由表肯定如何到达服务器,期间可能通过多个路由器,这些都是由路由器来完成的工做,经过查找路由表决定经过那个路径到达服务器,其中用到路由选择协议。
4.客户端的链路层,包经过链路层发送到路由器,经过邻居协议查找给定IP地址的MAC地址,而后发送ARP请求查找目的地址,若是获得回应后就可使用ARP的请求应答交换的IP数据包如今就能够传输了,而后发送IP数据包到达服务器的地址。无论网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终仍是必须使用硬件地址。每个主机都设有一个 ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。若有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,而后经过局域网将该 MAC 帧发往此硬件地址。
Linux知识点
linux 操做系统概述
1.常见操做系统
- 服务端操做系统 : linux、unix、windows server
- 单机操做系统 : windows(dos 、ucdos、win9五、win9八、win2000、xp、vista、win七、win8)
MAC 、linux(ubuntu)
- 移动操做系统 Android、IOS 、Windows phone
2.linux操做系统介绍
- 为何要学习linux操做系统
1. 大部分服务端都采用linux ,JEE部署到服务器中
2. 一些企业和学校采用linux研发和教学
3. 不少嵌入式开发 用linux
4. 云计算、大数据 是集群网 linux : centos
- 特色
1. 开放、开源、多用户的网络操做系统
2. 基于unix(unix-->minix-->linux(linus :林纳斯 芬兰 )),能够定制内核
3. 假如了GNU组织(自由软件组织 ,copyLeft) ,经过GPL(通用公共许可) 许可对外发布
- linux组成
1. linux内核(linus 团队管理)
2. shell :用户与内核交互的接口
3. 文件系统 : ext三、ext4 等 windows 有 fat32 、ntfs
4. 第三方应用软件
- linux操做系统版本
1. 内核版本 (linus 团队管理) 3.8
2. 发行版本 :一些软件公司之内核为基础,再添加一些软件和文档造成发行版本
- red hat : rhel ,centos
- debian : debian,ubuntu(桌面)
- android
二.安装linux系统
vmware安装 : 建立虚拟机的软件
vitual box :oracle 公司提供
虚拟机安装
直接安装
建立虚拟机
安装ubuntu镜像
打开虚拟机镜像: 虚拟机+操做系统(ubuntu)
打开*.vmx 文件
用户名 itcast 密码 123
三.linux系统环境
默认有6个命令交互通道和一个图形界面交互通道,默认进入到的是图形界面通道
命令交互模式切换:ctrl+alt+f1—f6
图形交互界面 ctrl+alt+f7
1.图形界面交互模式
- terminal: 图形界面的命令终端,它是图形界面交互通道的延伸,要依赖于图形界面
2.命令交互模式
命令提示符:
itcast@ubuntu:~−itcast:用户名−ubuntu:主机名− :路径,假如当前的路径正好是该用户存放数据的根目录,则显示 −−itcast:用户名−ubuntu:主机名− :路径,假如当前的路径正好是该用户存放数据的根目录,则显示 − :用户的类型 $表明普通用户 # 表明 超级用户
3.linux文件系统
- 目录结构
- 文件权限分析
w :可写 r: 只读 x:可执行 - :无权限
文件权限
1. 字符表示法
drwxr-xr-x
第一个字符 :文件的类型 - :普通文件 d:文件夹 c :串口文件 l :链接文件
2-4 字符 : 该文件的属主用户的权限
5-7 字符 : 与属主用户同一组的其余用户的权限
8-10 字符 : 不一样组的其余用户的权限
2. 数字表示法
-rw-r--r-- :文件的默认权限 644
drwxr-xr-x : 目录的默认权限 755
4、linux的经常使用命令
1.注销、关机、重启
- 注销 :logout :登出 、exit
- 关机 :
shutdown - h 时间
- h :关机
- 时间 :
1. now :立刻
2. 12.30 :指定具体时间
3. 3 :几分钟之后
sudo : superuser do :由超级用户来执行该命令
要配置sudo 命令 : 受权 哪些用户能执行哪些命令
由超级用户配置 sudo
/etc/sudoers
sudo shutdown -h now 当前帐号:itcast
- 重启 :
shutdown -r 时间
-r :restart
2.linux基本命令 :文件操做命令
1. ls : 查看目录内容
- l :查看详细信息
- a :查看全部文件(隐藏)
man :manual : 手工,帮助 ,帮助命令,比如windows help
命令: man ls
2. mkdir :建立目录
Desktop:
- java
- JEE : aa.txt bb.txt
- Android
3. cd 切换目录
- cd .. 记得要加空格
- cd ./java 进入当前目录的子目录
- cd ../xxx 进入上一级目录的子目录
tab :自动补全
4. touch :建立一个空白的普通文件
touch aa.txt
5. echo :把内容重定向到指定的文件中 ,有则打开,无则建立
6. cat、more :查看文件内容
- cat :查看文件内容
- more :分页查看文件内容,按空格键换页
7. cp、mv、rm
- cp :复制
cp bj.txt ./java/jee
- mv :剪切、重命名
1. 剪切 :mv aa.txt ../android/
2. 重命名 :假如剪切的文件 存放在同一个目录中 ,则是重命名
mv bb.txt cc.txt
- rm :删除文件或者文件夹
-f : 假如要删除的文件不存在,也不提示
-i : 删除前提示 ,默认不删除,要删除,输入y
-d : 删除空白目录
-r :递归删除
8. wc :word count :统计字符数
154 233 3418
- 154 :行数
- 233 :单词数
- 3418 :字符数
命令: wc bj.txt
9. ln :建立链接文件
- 默认建立的是硬链接,比如复制 ,可是两个文件会同步
命令:ln ./java/android/aa.txt aaa
- s :建立的是软链接
10. pwd :查看当前目录的绝对路径
11. 管道命令 |
命令: ls -la | wc
12. 重定向
- > :覆盖模式
命令: echo "ww">aaa
- >>:追加模式
命令: echo "ww">>aaa
13. passwd :设置密码 ,ubuntu默认 root帐号是没有开启 ,只要设置root密码便可开启
sudo passwd root
14. su 切换目录
su root
root用户切换到其余帐号不须要密码
3.linux 系统命令
1.stat :查看文件的详细信息
stat bj.txt
2.who与whoami
who : 查看在线的用户
whoami :查看当前本身的用户
3.hostname : 显示主机名
hostname
4.uname :显示系统信息
-a :显示完整的系统信息
5.top :显示当前耗时的进行的信息 ,每3秒刷新一次
cltr+c 中断
6.ps :显示当前进程的快照
- axu
7.du :显示文件的大小信息
8.df :磁盘使用状况 disk free
9.ifconfig :查看或者配置网卡信息 ,比如windows 的ipconfig
ipv4:32位 2-32次方 ipv6 128位 是 ipv4 2-96次方倍数
设置虚拟机ip地址:
1. 设置vmware的链接方式
- 共享宿主机的ip地址,在网上邻居找不到
- 桥接方式,须要单独设置ip,能够在网上邻居查找
2. 图形界面设置ip地址
edit connection --》ipv4--》manual(手工设置)--》add (ip地址,子网掩码)
3.命令方式设置ip地址
静态设置ip:
sudo ifconfig eth0 192.168.15.122 netmask 255.255.255.0
10.ping 测试与目标主机链接状况
11.clear : 清除屏幕 windows: cls
12.man :帮助命令
man 命令
13.kill :杀死进程
kill pid
14.netstat :网络链接详细信息
15. useradd
- 查看用户信息
sudo cat /etc/passwd
itcast:x:1000:1000:UbuntuA,,,:/home/itcast:/bin/bash
- itcast:用户名
- x :密码 :已经加密 ,密码存放在 /etc/shadow
- 1000: 帐号id ,userId
- 1000: 组id ,group id
- UbuntuA,,, :帐号描述
- /home/itcast :该帐号存放文件的默认位置 ~
- /bin/bash:该用户的shell脚本的解析方式 ,sh 、bash、rbash
- 建立用户
sudo useradd lijun -d /home/lijun -s /bin/bash
-d :指定该用户的home 路径
- s :该用户的shell解析方式
步骤:
1. 建立 /home/lijun 目录
2. 执行 useradd 命令
3. 用 passwd 设置密码
4. su 切换用户
5、打包、压缩文件
windows : zip、rar
linux :gz ,bzip,zip
1.tar :打包、拆包命令
tar - cxzjvf <打包后的文件> <欲打包的目录>
- c :建立的一个归档文件 ,即打包文件夹
- x :拆包
- z :以gzip 格式压缩,默认压缩倍数 6倍 (0-9)
- j :以bzip2格式压缩
- v :显示打包或者拆包的文件信息
- f : 后面紧接一个 归档文件
- 打包文件
tar -cvf news.tar ./java 摘要
- 拆包文件
tar -xvf news.tar
2.gzip 、bzip2 压缩与解压
1. 压缩文件
gzip news.tar
2. 解压文件
gzip -d news.tar.gz
-d :解压
3.打包及压缩
- 打包及压缩
tar -czvf news.tar.gz ./java
- 拆包及压解缩
tar -xzvf news.tar.gz
6、软件管理
windows : .exe 安装 、卸载
安装: mysql.exe cc.exe
卸载 : 该软件惟一的标识 ,包名 alibaba
android : *.apk 卸载 包名
red hat :*.rpm
ubuntu : 对debian的升级 *.deb 格式
1.安装软件
- dpkg :debian package
离线安装:
安装 : sudo dpkg - i <文件名>
-i :install
命令:sudo dpkg -i ./tree_1.6.0-1_i386.deb
卸载 : sudo dpkg - r <包名>
-r :remove
命令:sudo dpkg -r tree
- apt-get :advance package tools
对dpkg命令的升级,在线安装
安装 : sudo apt-get -install <包名>
卸载 : sudo apt-get -remove <包名>
2.vim 软件 :比如记事本 ,可是比记事本要强大
1. 安装vim
2. 使用vim
操做模式:
1. 通常模式 ,默认进入的通常模式,该模式不能编辑文档 ,只能查看
按 i(insert) 进入 插入模式
2. 编辑模式、插入模式
该模式能够编辑文档,按esc 退出插入模式,进入到通常模式
3. 命令模式 :在 通常模式中按:进入命令模式
- q: 安全退出,当没有操做该文档,则直接按q退出vim
- q!:当修改了内容,可是不想保存,则q!强制退出
- wq :保存退出
- set number 显示行号
- set nonumber 取消行号显示
7、搭建Java服务器,而且实现远程安全访问linux系统
1.经过ssh实现安全远程访问linux系统
ssh :secure shell
加密:
1. 对称加密 (加密密钥与解密密钥相同)
des 、aes
2. 非对称加密(加密密钥与解密密钥不一样)
RSA :公钥、私钥
数字摘要:
md5 \sha1
1. 查看是否安装了ssh服务端与客户端
sudo apt-cache policy openssh-client openssh-server
2. 安装ssh 服务端与客户端软件
sudo dpkg -i ./ssh/*
3. 经过windows ssh客户端来访问linux服务端
- putty :远程登陆
- winscp433setup.exe :文件传输
2. 安装jdk
进入 root用户
实现步骤:
1. jdk 存放在哪里 /opt
2. 把软件拷贝到/opt
3. 绿色软件,解压
4.设置环境变量
vim /etc/profile
export JAVA_HOME="/opt/jdk1.6.0_39"
export PATH="$JAVA_HOME/bin:$PATH"
5. 刷新配置 ,让配置生效
source /etc/profile
6. 编写Demo.java,测试
-javac Demo.java
- java Demo
3. 安装tomcat
步骤:
1. 安装在哪里 /opt
2. 拷贝、解压
tar -xzvf apache-tomcat.tar.gz
3. 运行
- ./startup.sh
- ./shutdown.sh
4. 安装Eclipse
步骤:
1.安装在/opt
2. 拷贝、解压
cp eclipse.tar.gz /opt
tar -xzvf eclipse.tar.gz
重点:
1.linux系统环境
命令交互通道
命名提示符
2. linux 目录结构、文件权限
drwxr-xr-x
3. linux 命令
- 开关机
- 文件操做
- 系统命令
1. top 2. who 3. ifconfig 4. ping 5. kill 6. man 7.clear 8.netstat
4. 软件管理
- dpkg :离线 .deb .rpm .apk
- apt-get :在线
5. 压缩解压
tar -cxgzvf 打包后的文件 要打包的文件
6. vim 的使用
三种模式
7. ssh理解 secure shell
8. java开发环境搭建
Python 知识点
Python是一个面向对象的解释型的交互式高级脚本语言:Python被设计成一种高可读性的语言,由于它大量地使用了英语中的单词做为关键字,并且不像其余语言使用标点符号构成复杂的语法结构,Python的语法结构很是少。
Python是一种面向对象的语言:即Python是支持面向对象的,支持在对象中进行代码封装。
Python是一种解释型语言:即Python程序是在运行时由解释器解释执行的,于是不用事先编译源程序。这一点和Perl和PHP相似。
Python是一种交互式语言:即你可以在Python提示符下直接交互式地编写你的程序。
Python是初学者的语言:Python是一种很是适合初学者的语言,它支持多种类型的应用程序的开发,如简单的文本处理、www浏览器应用程序开发、游戏开发等等。
1)什么是Python?使用Python的优势有哪些?缺点有哪些?
Python是一种面向对象的解释性的交互式语言,带有对象、模块、线程、异常和内存自动管理的机制。
使用Python的优势有:简单、易学、轻即可移植、可扩展、可读性、具备多种内建数据类型、开源等等。
使用Python的缺点有:运行速度慢,代码不能加密(解释性语言,发布python应用只能发布源代码,不像C发布编译后的应用文件)
2)什么是PEP 8?
PEP 8是一种编码规范,是一系列关于如何让Python代码更加具备可读性的编码建议。
3)什么是序列化(pickling)和反序列化(unpickling)?
序列化:将在内存中的变量转为可存储或传输的过程。应用JSON传输,序列化为统一格式json
反序列化:与序列化的过程相反
Pickle模块容许咱们将Python对象转换成一个string表示的信息,而且可使用dump函数将其保存到一个文件中去,这样的过程称为序列化。而使用文件中保存的对象信息重构Python对象的过程称为反序列化。
4)Python是如何被解释执行的?
Python是一种解释型语言,它能够直接从源代码运行程序。程序员编写的源代码首先转变成一种中间语言代码,而后再被转换成可以直接执行的机器语言代码。
5)Python是如何进行内存管理的?
Python内存空间是以Python私有堆的形式进行管理的。全部的Python对象和数据结构都存放在一个私有堆中。解释器能够访问私有堆,而程序员不能够。
将Python堆空间中的内存分配给Python对象的工做是由Python内存管理器完成的。而内核API则会提供给程序员一些相关的工具来完成涉及到内存的编码工做。
Python还内置垃圾回收器,从而进行回收释放内存到堆空间。
6)可以找到程序中的bug进行静态分析的工具备哪些?
PyChecker是一种可以发现Python源代码中的bug并对其中的代码风格和复杂度进行警告的静态分析工具。另一种工具是Pylint,它可以验证模块是否知足编码标准。
7)什么是Python装饰器?
用来装饰一个函数从而使这个函数在不修改自己的函数定义外,动态产生额外的功能;装饰函数的入参为须要被装饰的函数。装饰器本质上是一个返回函数的高阶函数
一个Python装饰器是咱们在符合Python语法的同时又方便地对函数作的一些特定的修改。
8)列表、元组、集合、字典的区别是什么?
列表:元素可变(任何数据类型),有序(可索引),append/insert/pop;
元组:元素不可变,但元素中的可变元素是可变的;有序(可索引);并且元组能够被散列,例如做为字典的键。
集合:无序(不可被索引)、互异
字典:无序,键值对(key:value),key惟一不可重复
9)怎样理解字典和列表?
它们是一种用来建立可变对象的语法结构,数据容器。
dic插入、查找速度比list快,不会随key的增长而增长,但list会随着元素的增长而增长(偏移量)
10)参数是如何经过值或者引用传递的?
python中确切说应该是“传对象引用”的方式,引用对象传递。 一切皆对象,参数皆引用
若是函数收到的是一个可变对象(好比列表、字典)的引用,则可修改对象的原始值==至关于“引用传递”方式;
若是函数收到的是一个不可变对象(好比数字、字符、元组),就不能直接修改原始对象指向的值==至关于“值传递”方式;
11)Python提供哪些内置类型?(原文有语法错误,根据我的理解翻译)
分为可变类型和不可变类型。
可变类型:
列表
集合
字典
不可变类型:
字符串
元组
数字
12)Python中的命名空间是什么?
名字到对象的一个映射;
一个对象拥有一个ID(内存地址)、一个类型、一个值,但能够有不一样的名字,好比:a=1,b=a,a和b指向同一个对象;
命名空间就是用来映射这个关系的;
13)Python中的lambda表达式是什么?
lambda表达式是一个匿名函数,省去了对函数命名,因此叫匿名函数。一般用做代码行内的嵌入函数。
14)为何Python中的lambda表达式没有声明?
Python中的lambda表达式没有声明是由于它只是用来建立一个新的函数对象,而且在运行时才返回值给对象。
15)Python中的pass是什么意思?
pass是Python中的空操做语句,或者说,它是一个复杂语句中的一个空间占位符,只是用来表示空白,什么都不用写。
16)Python的迭代器是什么?
迭代器是用来迭代可迭代对象的,好比包含一组元素的列表。 iter()生成迭代器对象,next()依次访问迭代器对象的下一个值
17)Python中的unittest是什么?
unittest是Python中的单元测试框架。它支持共享的测试创建、自动测试、关闭测试、汇集测试等等。
18)什么是切片?
从一组序列中截取一段序列的机制,好比列表、元组、字符串等类型中选择一个范围中的元素。
19)Python中的生成器是什么?
一种特殊的迭代器,用关键字yield表示,它特殊的地方在于运用在函数中函数体没有return返回,而是使用关键字yield返回值,yield每返回一次,函数状态挂起 。这种函数叫作生成器函数,被调用时返回一个生成器对象;
20)Python中的docstring是什么?
docstring是一个py文件、函数、类开头部分的用'''编写的一段注释文档和说明,经过help函数可查看该文档说明。
docstring是Python中产生文档的方式,它能够为Python中的函数、模块和类产生说明文档。
21)Python中如何拷贝一个对象?
使用标准库的copy模块:copy.copy()浅拷贝,copy.deepcopy()深拷贝
copy.copy()浅拷贝:拷贝了对象,但拷贝对象的值仍然是指向原对象的值(至关于引用),修改拷贝对象的元素,则被拷贝对象的值也会被修改
copy.deepcopy()深拷贝: 不只拷贝了对象,同时也拷贝了对象中的元素,得到了全新的对象,与被拷贝对象彻底独立;但这须要牺牲必定的时间和空间。
22)Python中负的索引是什么意思?
Python中可使用整数和负数进行索引。对于正索引,0是第一个,1是第二个,以此类推。对于负索引,-1是最后一个,-2是倒数第二个,以此类推。
23)怎样将一个数字转换成字符串?
使用内置函数str()便可。若是想要八进制或者十六进制的形式,可使用oct或者hex函数。
24)xrange和range的区别是什么?
xrange返回一个xrange生成器对象,而range返回一个list对象。
生成很大数列的时候,range会使用和其范围大小相同的内存;相比xrange的性能要高不少
25)Python中的模块和包是什么?
在Python中,模块就是一种构建程序的方式。每个Python程序文件都是一个模块,这个文件还能够引入其余模块如对象和属性等。
包就是一个带有__init__.py文件的文件夹,里面可包含多个模块
26)@property、@staticmethod、@classmethod:
@property:特性,被其装饰过的方法(函数),能够当成属性同样去调用和访问。如:a()是一个方法==》c.a(对象.属性)调用
@staticmethod:静态方法,被其装饰的函数中不含self参数,至关于类外面的方法,但会在类中被调用(跟类有关系但在运行时又不须要实例和类参与)。经过类名调用
@classmethod:类方法,经过类名调用(通常类中的方法是实例方法,经过实例调用),使用时将类做为方法的第一个参数传入,如:
@classmethod
def test(cls):
print(cls,cls.x)
27) 如何理解self?
self为类中方法的默认第一个参数,self指向建立的实例自己。 调用时self不须要传,Python解释器本身会把实例变量传进去