pandas, read_csv( parameters explain, Chinese )
- boolean. True -> 解析索引
- list of ints or names. e.g. If [1, 2, 3] -> 解析1,2,3列的值作为独立的日期列;
- list of lists. e.g. If [[1, 3]] -> 合并1,3列作为一个日期列使用
- dict, e.g. {‘foo’ : [1, 3]} -> 将1,3列合并,并给合并后的列起名为”foo”
1.Implement an algorithm to determine if a string has all unique characters. What if you can not use additional data structures?
def unique(string): # Assuming character set is ASCII (128 characters) if len(string) > 128: return False char_set = [False for _ in range(128)] for char in string: val = ord(char) if char_set[val]: # Char already found in string return False char_set[val] = True return True
2.Check palindrome
def is_palindrome(n): n=str(n) m=n[::-1] return n==m
3. Fibonacci
a,b = 0, 1 while b<100: print (b), a, b = b, a+b
4. how do I iterate over a sequence in reverse order
for x in reversed(sequence): ... # do something with x.. for i in range(len(sequence)-1, -1, -1): x = sequence[i] <do something with x>
5.Python是如何进行类型转换的?
函数 描述 int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 complex(real [,imag ]) 创建一个复数 str(x ) 将对象 x 转换为字符串 repr(x ) 将对象 x 转换为表达式字符串 eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象 tuple(s ) 将序列 s 转换为一个元组 list(s ) 将序列 s 转换为一个列表 chr(x ) 将一个整数转换为一个字符 unichr(x ) 将一个整数转换为Unicode字符 ord(x ) 将一个字符转换为它的整数值 hex(x ) 将一个整数转换为一个十六进制字符串 oct(x ) 将一个整数转换为一个八进制字符串
6. 请写出一段Python代码实现删除一个list里面的重复元素
l = [1,1,2,3,4,5,4] list(set(l)) [1, 2, 3, 4, 5] d = {} for x in mylist: d[x] = 1 mylist = list(d.keys())
7.介绍一下Python中webbrowser的用法?
webbrowser模块提供了一个高级接口来显示基于Web的文档,大部分情况下只需要简单的调用open()方法。
webbrowser定义了如下的异常:
exception webbrowser.Error, 当浏览器控件发生错误是会抛出这个异常
webbrowser有以下方法:
webbrowser.open(url[, new=0[, autoraise=1]])
这个方法是在默认的浏览器中显示url, 如果new = 0, 那么url会在同一个浏览器窗口下打开,如果new = 1, 会打开一个新的窗口,如果new = 2, 会打开一个新的tab, 如果autoraise = true, 窗口会自动增长。
webbrowser.open_new(url)
在默认浏览器中打开一个新的窗口来显示url, 否则,在仅有的浏览器窗口中打开url
webbrowser.open_new_tab(url)
在默认浏览器中当开一个新的tab来显示url, 否则跟open_new()一样
webbrowser.get([name]) 根据name返回一个浏览器对象,如果name为空,则返回默认的浏览器
webbrowser.register(name, construtor[, instance])
注册一个名字为name的浏览器,如果这个浏览器类型被注册就可以用get()方法来获取。
8. (1)python下多线程的限制以及多进程中传递参数的方式
python多线程有个全局解释器锁(global interpreter lock),这个锁的意思是任一时间只能有一个线程使用解释器,跟单cpu跑多个程序一个意思,大家都是轮着用的,这叫“并发”,不是“并行”。
多进程间共享数据,可以使用 multiprocessing.Value 和 multiprocessing.Array
(2)python多线程与多进程的区别
9.Python是如何进行内存管理的?
http://developer.51cto.com/art/201007/213585.htm
Python引用了一个内存池(memory pool)机制,即Pymalloc机制(malloc:n.分配内存),用于管理对小块内存的申请和释放
内存池(memory pool)的概念:
当 创建大量消耗小内存的对象时,频繁调用new/malloc会导致大量的内存碎片,致使效率降低。内存池的概念就是预先在内存中申请一定数量的,大小相等 的内存块留作备用,当有新的内存需求时,就先从内存池中分配内存给这个需求,不够了之后再申请新的内存。这样做最显著的优势就是能够减少内存碎片,提升效率。
内存池的实现方式有很多,性能和适用范围也不一样。
python中的内存管理机制——Pymalloc:
python中的内存管理机制都有两套实现,一套是针对小对象,就是大小小于256bits时,pymalloc会在内存池中申请内存空间;当大于256bits,则会直接执行new/malloc的行为来申请内存空间。
关于释放内存方面,当一个对象的引用计数变为0时,python就会调用它的析构函数。在析构时,也采用了内存池机制,从内存池来的内存会被归还到内存池中,以避免频繁地释放动作。
10.什么是lambda函数?它有什么好处?
http://www.kuqin.com/diveinto_python_document/apihelper_lambda.html
lambda 函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的函数。 lambda 函数不能包含命令,它们所包含的表达式不能超过一个。不要试图向lambda 函数中塞入太多的东西;如果你需要更复杂的东西,应该定义一个普通函数,然后想让它多长就多长。
11.Python如何实现单例模式?其他23种设计模式python如何实现?
#使用__metaclass__(元类)的高级python用法 class Singleton2(type): def __init__(cls, name, bases, dict): super(Singleton2, cls).__init__(name, bases, dict) cls._instance = None def __call__(cls, *args, **kw): if cls._instance is None: cls._instance = super(Singleton2, cls).__call__(*args, **kw) return cls._instance class MyClass3(object): __metaclass__ = Singleton2 one = MyClass3() two = MyClass3() two.a = 3 print one.a #3 print id(one) #31495472 print id(two) #31495472 print one == two #True print one is two #True
12.Python里面如何拷贝一个对象?
http://blog.csdn.net/sharkw/article/details/1934090
标准库中的copy模块提供了两个方法来实现拷贝.一个方法是copy,它返回和参数包含内容一样的对象.
使用deepcopy方法,对象中的属性也被复制
13.介绍一下except的用法和作用?
Python的except用来捕获所有异常,因为Python里面的每次错误都会抛出一个异常,所以每个程序的错误都被当作一个运行时错误。
14.Python中pass语句的作用是什么?
pass语句什么也不做,一般作为占位符或者创建占位程序,pass语句不会执行任何操作
15.如何知道一个python对象的类型?
type()
16.介绍一下Python下range()函数的用法?
http://docs.python.org/library/functions.html#range
range(start, stop[, step])
17.如何用Python来进行查询和替换一个文本字符串?
可以使用sub()方法来进行查询和替换,sub方法的格式为:sub(replacement, string[, count=0])
replacement是被替换成的文本
string是需要被替换的文本
count是一个可选参数,指最大被替换的数量
18.Python里面search()和match()的区别?
match()函数只检测RE是不是在string的开始位置匹配,search()会扫描整个string查找匹配, 也就是说match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回none
19.用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别?
前者是贪婪匹配,会从头到尾匹配 <a>xyz</a>,而后者是非贪婪匹配,只匹配到第一个 >。
20.Python里面如何生成随机数?
import random
random.random()
它会返回一个随机的0和1之间的浮点数
21.如何用Python来发送邮件?
python实现发送和接收邮件功能主要用到poplib和smtplib模块。
poplib用于接收邮件,而smtplib负责发送邮件。
#! /usr/bin/env python #coding=utf-8 import sys import time import poplib import smtplib #邮件发送函数 def send_mail(): try: handle = smtplib.SMTP('smtp.126.com',25) handle.login('XXXX@126.com','**********') msg = 'To: XXXX@qq.com\r\nFrom:XXXX@126.com\r\nSubject:hello\r\n' handle.sendmail('XXXX@126.com','XXXX@qq.com',msg) handle.close() return 1 except: return 0 #邮件接收函数 def accpet_mail(): try: p=poplib.POP3('pop.126.com') p.user('pythontab@126.com') p.pass_('**********') ret = p.stat() #返回一个元组:(邮件数,邮件尺寸) #p.retr('邮件号码')方法返回一个元组:(状态信息,邮件,邮件尺寸) except poplib.error_proto,e: print "Login failed:",e sys.exit(1) #运行当前文件时,执行sendmail和accpet_mail函数 if __name__ == "__main__": send_mail() accpet_mail()
import os.path import xlrd,sys Filename=’/home/tom/Desktop/1234.xls’ if not os.path.isfile(Filename): raise NameError,”%s is not a valid filename”%Filename bk=xlrd.open_workbook(Filename) shxrange=range(bk.nsheets) print shxrange for x in shxrange: p=bk.sheets()[x].name.encode(‘utf-8′) print p.decode(‘utf-8′)
方法二:
在文件开头加上
1 reload(sys) 2 sys.setdefaultencoding(‘utf8′)
29.python代码得到列表list的交集与差集
交集
1 b1=[1,2,3] 2 b2=[2,3,4] 3 b3 = [val for val in b1 if val in b2] 4 print b3
差集
1 b1=[1,2,3] 2 b2=[2,3,4] 3 b3 = [val for val in b1 if val not in b2] 4 print b3
30.写一个简单的python socket编程
python 编写server的步骤:
1.
第一步是创建socket对象。调用socket构造函数。如:
socket = socket.socket( family, type )
family参数代表地址家族,可为AF_INET或AF_UNIX。AF_INET家族包括Internet地址,AF_UNIX家族用于同一台机器上的进程间通信。
type参数代表套接字类型,可为SOCK_STREAM(流套接字)和SOCK_DGRAM(数据报套接字)。
2.
第二步是将socket绑定到指定地址。这是通过socket对象的bind方法来实现的:
socket.bind( address )
由AF_INET所创建的套接字,address地址必须是一个双元素元组,格式是(host,port)。host代表主机,port代表端口号。如果端口号正在使用、主机名不正确或端口已被保留,bind方法将引发socket.error异常。
3.
第三步是使用socket套接字的listen方法接收连接请求。
socket.listen( backlog )
backlog指定最多允许多少个客户连接到服务器。它的值至少为1。收到连接请求后,这些请求需要排队,如果队列满,就拒绝请求。
4.
第四步是服务器套接字通过socket的accept方法等待客户请求一个连接。
connection, address = socket.accept()
调用accept方法时,socket会进入“waiting”状态。客户请求连接时,方法建立连接并返回服务器。accept方法返回一个含有两个元素的元组(connection,address)。第一个元素connection是新的socket对象,服务器必须通过它与客户通信;第二个元素 address是客户的Internet地址。
5.
第五步是处理阶段,服务器和客户端通过send和recv方法通信(传输 数据)。服务器调用send,并采用字符串形式向客户发送信息。send方法返回已发送的字符个数。服务器使用recv方法从客户接收信息。调用recv 时,服务器必须指定一个整数,它对应于可通过本次方法调用来接收的最大数据量。recv方法在接收数据时会进入“blocked”状态,最后返回一个字符 串,用它表示收到的数据。如果发送的数据量超过了recv所允许的,数据会被截短。多余的数据将缓冲于接收端。以后调用recv时,多余的数据会从缓冲区 删除(以及自上次调用recv以来,客户可能发送的其它任何数据)。
6. 传输结束,服务器调用socket的close方法关闭连接。
python编写client的步骤:
1. 创建一个socket以连接服务器:socket = socket.socket( family, type )
2.使用socket的connect方法连接服务器。对于AF_INET家族,连接格式如下:
socket.connect( (host,port) )
host代表服务器主机名或IP,port代表服务器进程所绑定的端口号。如连接成功,客户就可通过套接字与服务器通信,如果连接失败,会引发socket.error异常。
3. 处理阶段,客户和服务器将通过send方法和recv方法通信。
4. 传输结束,客户通过调用socket的close方法关闭连接。
下面给个简单的例子:
server.py
#coding:utf-8 import socket if __name__ == '__main__': sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(('localhost', 8001)) sock.listen(5) while True: connection,address = sock.accept() try: connection.settimeout(5) buf = connection.recv(1024) if buf == '1': connection.send('welcome to server!') else: connection.send('please go out!') except socket.timeout: print 'time out' connection.close()
client.py
#coding:utf-8 import socket import time if __name__ == '__main__': sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect(('localhost', 8001)) time.sleep(2) sock.send('1') print sock.recv(1024) sock.close()
在终端运行server.py,然后运行clien.py,会在终端打印“welcome to server!”。
31.python如何捕获异常
(1)使用try和except语句来捕获异常
try: block except [exception,[data…]]: block try: block except [exception,[data...]]: block else: block
捕获到的IOError错误的详细原因会被放置在对象e中,然后运行该python 异常处理的except代码块捕获所有的异常
(2)用raise语句手工引发一个异常:
raise [exception[,data]] try: raise MyError #自己抛出一个异常 except MyError: print 'a error' raise ValueError,’invalid argument’
(3)采用sys模块回溯最后的异常
1 import sys 2 try: 3 block 4 except: 5 info=sys.exc_info() 6 print info[0],":",info[1]
32.src = “security/afafsff/?ip=123.4.56.78&id=45″,请写一段代码用正则匹配出ip
匹配ip地址的python正则表达式
故本题答案
1 >>> re.findall(r'([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])', src) 2 [('123', '4', '56', '78')]
33.写一段代码用json数据的处理方式获取{“persons”:[{“name”:”yu”,”age”:”23″},{“name”:”zhang”,”age”:”34″}]}这一段json中第一个人的名字。
json读取 >>> import json >>> j = json.loads('{"persons":[{"name":"yu","age":"23"},{"name":"zhang","age":"34"}]}') >>> print j {u'persons': [{u'age': u'23', u'name': u'yu'}, {u'age': u'34', u'name': u'zhang'}]} >>> print j.keys() [u'persons'] >>> print j.values() [[{u'age': u'23', u'name': u'yu'}, {u'age': u'34', u'name': u'zhang'}]] >>> print j.values()[0] [{u'age': u'23', u'name': u'yu'}, {u'age': u'34', u'name': u'zhang'}] >>> print j.values()[0][0] {u'age': u'23', u'name': u'yu'} >>> print j.values()[0][0]['name'] yu
34.平衡点问题
平衡点:比如int[] numbers = {1,3,5,7,8,25,4,20}; 25前面的总和为24,25后面的总和也是24,25这个点就是平衡点;假如一个数组中的元素,其前面的部分等于后面的部分,那么这个点的位序就是平衡点
要求:返回任何一个平衡点
使用sum函数累加所有的数。
使用一个变量fore来累加序列的前部。直到满足条件fore<(total-number)/2;
python代码如下:
numbers = [1,3,5,7,8,2,4,20] #find total total=sum(numbers) #find num fore=0 for number in numbers: if fore<(total-number)/2 : fore+=number else: break #print answer if fore == (total-number)/2 : print number else : print r'not found'
算法简单,而且是O(n)的,12行代码搞定。参考http://blog.renren.com/share/235087438/3004327956
35.支配点问题:
支配数:数组中某个元素出现的次数大于数组总数的一半时就成为支配数,其所在位序成为支配点;比如int[] a = {3,3,1,2,3};3为支配数,0,1,4分别为支配点;
要求:返回任何一个支配点
li = [3,3,1,2,3] def main(): mid = len(li)/2 for l in li: count = 0 i = 0 mark = 0 while True: if l == li[i]: count += 1 temp = i i += 1 if count > mid: mark = temp return (mark,li[mark]) if i > len(li) - 1: break if __name__ == "__main__": print main()
36.什么是PEP 8
参考:http://www.python.org/dev/peps/pep-0008/
37.Python2.x和Python3.x的区别
从Python2到Python3,很多基本的函数接口变了,甚至是,有些库或函数被去掉了,改名了。
参考:http://www.cnblogs.com/codingmylife/archive/2010/06/06/1752807.html
problem | shortcut | |
---|---|---|
0 | 快捷键之在工作表中移动和滚动向上、下、左或右移动单元格箭头键 | |
1 | 移动到当前数据区域的边缘 | CTRL+ 箭头键 |
2 | 移动到行首 | HOME |
3 | 移动到工作表的开头 | CTRL+HOME |
4 | 移动到工作表的最后一个单元格。 | CTRL+END |
5 | 向下移动一屏 | PAGE DOWN |
6 | 向上移动一屏 | PAGE UP |
7 | 向右移动一屏 | ALT+PAGE DOWN |
8 | 向左移动一屏 | ALT+PAGE UP |
9 | 移动到工作簿中下一个工作表 | CTRL+PAGE DOWN |
10 | 移动到工作簿中前一个工作表 | CTRL+PAGE UP |
11 | 移动到下一工作簿或窗口 | CTRL+F6 或 CTRL+TAB |
12 | 移动到前一工作簿或窗口 | CTRL+SHIFT+F6 |
13 | 移动到已拆分工作簿中的下一个窗格 | F6 |
14 | 移动到被拆分的工作簿中的上一个窗格 | SHIFT+F6 |
15 | 滚动并显示活动单元格 | CTRL+BACKSPACE |
16 | 显示“定位”对话框 | F5 |
17 | 显示“查找”对话框 | SHIFT+F5 |
18 | 重复上一次“查找”操作 | SHIFT+F4 |
19 | 在保护工作表中的非锁定单元格之间移动 | TAB |
20 | 2>Excel快捷键之处于END模式时在工作表中移动 | |
21 | 打开或关闭 END 模式 | END |
22 | 在一行或列内以数据块为单位移动 | END, 箭头键 |
23 | 移动到工作表的最后一个单元格. | END, HOME |
24 | 在当前行中向右移动到最后一个非空白单元格。 | END, ENTER |
25 | 3>Excel快捷键之处于“滚动锁定”模式时在工作表中移动 | |
26 | 打开或关闭滚动锁定 | SCROLL LOCK |
27 | 移动到窗口中左上角处的单元格 | HOME |
28 | 移动到窗口中右下角处的单元格 | END |
29 | 向上或向下滚动一行 | 上箭头键或下箭头键 |
30 | 向左或向右滚动一列 | 左箭头键或右箭头键 |
31 | 4>Excel快捷键之用于预览和打印文档 | |
32 | 显示“打印”对话框 | CTRL+P |
33 | 在打印预览中时 | |
34 | 当放大显示时,在文档中移动 | 箭头键 |
35 | 当缩小显示时,在文档中每次滚动一页 | PAGE UP |
36 | 当缩小显示时,滚动到第一页 | CTRL+上箭头键 |
37 | 当缩小显示时,滚动到最后一页 | CTRL+下箭头键 |
38 | 5>Excel快捷键之用于工作表、图表和宏 | |
39 | 插入新工作表 | SHIFT+F11 |
40 | 创建使用当前区域的图表 | F11 或 ALT+F1 |
41 | 显示“宏”对话框 | ALT+F8 |
42 | 显示“Visual Basic 编辑器” | ALT+F11 |
43 | 插入 Microsoft Excel 4.0 宏工作表 | CTRL+F11 |
44 | 移动到工作簿中的下一个工作表 | CTRL+PAGE DOWN |
45 | 移动到工作簿中的上一个工作表 | CTRL+PAGE UP |
46 | 选择工作簿中当前和下一个工作表 | SHIFT+CTRL+PAGE DOWN |
47 | 选择当前工作簿或上一个工作簿 | SHIFT+CTRL+PAGE UP |
48 | 6>Excel快捷键之选择图表工作表 | |
49 | 选择工作簿中的下一张工作表 | CTRL+PAGE DOWN |
50 | 选择工作簿中的上一个工作表 | CTRL+PAGE UP,END, SHIFT+ENTER |
51 | 7>Excel快捷键之用于在工作表中输入数据 | |
52 | 完成单元格输入并在选定区域中下移 | ENTER |
53 | 在单元格中折行 | ALT+ENTER |
54 | 用当前输入项填充选定的单元格区域 | CTRL+ENTER |
55 | 完成单元格输入并在选定区域中上移 | SHIFT+ENTER |
56 | 完成单元格输入并在选定区域中右移 | TAB |
57 | 完成单元格输入并在选定区域中左移 | SHIFT+TAB |
58 | 取消单元格输入 | ESC |
59 | 删除插入点左边的字符,或删除选定区域 | BACKSPACE |
60 | 删除插入点右边的字符,或删除选定区域 | DELETE |
61 | 删除插入点到行末的文本 | CTRL+DELETE |
62 | 向上下左右移动一个字符 | 箭头键 |
63 | 移到行首 | HOME |
64 | 重复最后一次操作 | F4 或 CTRL+Y |
65 | 编辑单元格批注 | SHIFT+F2 |
66 | 由行或列标志创建名称 | CTRL+SHIFT+F3 |
67 | 向下填充 | CTRL+D |
68 | 向右填充 | CTRL+R |
69 | 定义名称 | CTRL+F3 |
70 | 8>Excel快捷键之设置数据格式 | |
71 | 显示“样式”对话框 | ALT+' (撇号) |
72 | 显示“单元格格式”对话框 | CTRL+1 |
73 | 应用“常规”数字格式 | CTRL+SHIFT+~ |
74 | 应用带两个小数位的“贷币”格式 | CTRL+SHIFT+$ |
75 | 应用不带小数位的“百分比”格式 | CTRL+SHIFT+% |
76 | 应用带两个小数位的“科学记数”数字格式 | CTRL+SHIFT+^ |
77 | 应用年月日“日期”格式 | CTRL+SHIFT+# |
78 | 应用小时和分钟“时间”格式,并标明上午或下午 | CTRL+SHIFT+@ |
79 | 应用具有千位分隔符且负数用负号 (-) 表示 | CTRL+SHIFT+! |
80 | 应用外边框 | CTRL+SHIFT+& |
81 | 删除外边框 | CTRL+SHIFT+_ |
82 | 应用或取消字体加粗格式 | CTRL+B |
83 | 应用或取消字体倾斜格式 | CTRL+I |
84 | 应用或取消下划线格式 | CTRL+U |
85 | 应用或取消删除线格式 | CTRL+5 |
86 | 隐藏行 | CTRL+9 |
87 | 取消隐藏行 | CTRL+SHIFT+( 左括号 |
88 | 隐藏列 | CTRL+0(零) |
89 | 取消隐藏列 | CTRL+SHIFT+)右括号 |
90 | 9>Excel快捷键之编辑数据 | |
91 | 编辑活动单元格并将插入点放置到线条末尾 | F2 |
92 | 取消单元格或编辑栏中的输入项 | ESC |
93 | 编辑活动单元格并清除其中原有的内容 | BACKSPACE |
94 | 将定义的名称粘贴到公式中 | F3 |
95 | 完成单元格输入 | ENTER |
96 | 将公式作为数组公式输入 | CTRL+SHIFT+ENTER |
97 | 在公式中键入函数名之后,显示公式选项板 | CTRL+A |
98 | 在公式中键入函数名后为该函数插入变量名和括号 | CTRL+SHIFT+A |
99 | 显示“拼写检查”对话框。 | F7 键 |
100 | 10>Excel快捷键之插入、删除和复制选中区域 | |
101 | 复制选定区域 | CTRL+C |
102 | 剪切选定区域 | CTRL+X |
103 | 粘贴选定区域 | CTRL+V |
104 | 清除选定区域的内容 | DELETE |
105 | 删除选定区域 | CTRL+ 连字符 |
106 | 撤消最后一次操作 | CTRL+Z |
107 | 插入空白单元格 | CTRL+SHIFT+ 加号 |
108 | 11>Excel快捷键之在选中区域内移动 | |
109 | 在选定区域内由上往下移动 | ENTER |
110 | 在选定区域内由下往上移动 | SHIFT+ENTER |
111 | 在选定区域内由左往右移动 | TAB |
112 | 在选定区域内由右往左移动 | SHIFT+TAB |
113 | 按顺时针方向移动到选定区域的下一个角 | CTRL+PERIOD |
114 | 右移到非相邻的选定区域 | CTRL+ALT+右箭头键 |
115 | 左移到非相邻的选定区域 | CTRL+ALT+左箭头键 |
116 | 12>Excel快捷键之选择单元格、列或行 | |
117 | 选定当前单元格周围的区域 | CTRL+SHIFT+*(星号) |
118 | 将选定区域扩展一个单元格宽度 | SHIFT+ 箭头键 |
119 | 选定区域扩展到单元格同行同列的最后非空单元格 | CTRL+SHIFT+ 箭头键 |
120 | 将选定区域扩展到行首 | SHIFT+HOME |
121 | 将选定区域扩展到工作表的开始 | CTRL+SHIFT+HOME |
122 | 将选定区域扩展到工作表的最后一个使用的单元格 | CTRL+SHIFT+END |
123 | 选定整列 | CTRL+SPACEBAR |
124 | 选定整行 | SHIFT+SPACEBAR |
125 | 选定整个工作表 | CTRL+A |
126 | 如果选定了多个单元格则只选定其中的单元格 | SHIFT+BACKSPACE |
127 | 将选定区域向下扩展一屏 | SHIFT+PAGE DOWN |
128 | 将选定区域向上扩展一屏 | SHIFT+PAGE UP |
129 | 选定了一个对象,选定工作表上的所有对象 | CTRL+SHIFT+SPACEBAR |
130 | 在隐藏对象、显示对象与对象占位符之间切换 | CTRL+6 |
131 | 显示或隐藏“常用”工具栏 | CTRL+7 |
132 | 使用箭头键启动扩展选中区域的功能 | F8 |
133 | 将其他区域中的单元格添加到选中区域中 | SHIFT+F8 |
134 | 将选定区域扩展到窗口左上角的单元格 | SCROLLLOCK, SHIFT+HOME |
135 | 将选定区域扩展到窗口右下角的单元格 | SCROLLLOCK, SHIFT+END |
136 | 13>Excel快捷键之处于End模式时展开选中区域 | |
137 | 打开或关闭 END 模式 | END |
138 | 将选定区域扩展到单元格同列同行的最后非空单元格 | END, SHIFT+ 箭头键 |
139 | 将选定区域扩展到工作表上包含数据的最后一个单元格 | END, SHIFT+HOME |
140 | 将选定区域扩展到当前行中的最后一个单元格 | END, SHIFT+ENTER |
141 | 14>Excel快捷键之选择含有特殊字符单元格 | |
142 | 选中活动单元格周围的当前区域 | CTRL+SHIFT+*(星号) |
143 | 选中当前数组,此数组是活动单元格所属的数组 | CTRL+/ |
144 | 选定所有带批注的单元格 | CTRL+SHIFT+O (字母 O) |
145 | 选择行中不与该行内活动单元格的值相匹配的单元格 | CTRL+\ |
146 | 选中列中不与该列内活动单元格的值相匹配的单元格 | CTRL+SHIFT+| |
147 | 选定当前选定区域中公式的直接引用单元格 | CTRL+[ (左方括号) |
148 | 选定当前选定区域中公式直接或间接引用的所有单元格 | CTRL+SHIFT+{ 左大括号 |
149 | 只选定直接引用当前单元格的公式所在的单元格 | CTRL+] (右方括号) |
150 | 选定所有带有公式的单元格,这些公式直接或间接引用当前单元格 | CTRL+SHIFT+}右大括号 |