python基础知识

1,Python中的数据类型有哪些

Python基本数据类型一般分为:数字、字符串、列表、元组、字典、集合这六种基本数据类型。

2,Python中的三元运算符是什么,怎么写?

a = 1

b = 2

h = ""

h = "变量1" if a>b else "变量2"

3,计算1到100的和(进阶:用一行代码实现)

print(sum(range(1,101)))

4,字典如何删除键和合并2个字典

删除key

dic1={'name':'laowang','age':18}

del dic1['name']

print(dic1)

合并2个字典

dic2.update(dic1)

print(dic2)

5,字典操作中 del 和 pop 有什么区别?

del 语句和 pop() 函数作用相同,pop() 函数有返回值。

names.pop("alex") # 删除指定key

names.popitem()? # 随便删除1个key

del names["oldboy"] # 删除指定key,同pop方法

names.clear()? ? # 清空dict

6,如何把元组("a","b")和元组(1,2),变为字典{"a":1,"b":2}

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

实现代码:

t1=("a","b")

t2=(1,2)

c=zip(t1,t2)

l1=[]

for iin c:

l1.append(i)

print(dict(l1))

7,列表如何按值删除,按下标删除和合并2个列表,列表去重。

1.按值删除可以使用remove函数删除。del 和pop均可以按照下边删除。

2.合并列表可以采用extend函数,例如:

l1=[1,2,3,4]

l2=["a","b","c"]

l2.extend(l1)

print(l2)

列表去重可以采用set方法去重后再转换回来,例如:

l1=[1,2,3,4,3,2]

print(list(set(l1)))

8,两个列表[1,5,7,9]和[2,2,6,8]合并为[1,2,2,3,6,7,8,9]

冒泡算法

l1=[1,5,7,9]

l2=[2,2,6,8]

l3=l1+l2

for i in range(len(l3)-1):

? ? for j in range(len(l3)-1-i):

? ? ? ? if l3[j]>l3[j+1]:

? ? ? ? ? ? l3[j],l3[j+1]=l3[j+1],l3[j]

print(l3)

9,如何打乱一个有序的列表

random.shuffle(item) #打乱item的顺序,相当于"洗牌"

10,列表 [:: - 1]是什么意思

将列表倒过来排列(-1这个位置代表的是步长)??

切片[开始:结束:步进]

11,列出python中可变数据类型和不可变数据类型,并简述原理

可变类型(mutable):变量进行append、+=等这种操作后 == 改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。

list

dict

set

bytearray

user-defined classes (除非是特别定义的不可变)

a = [1,2]

b = [1,2]

print(id(a))

print(id(b))

不可变类型(immutable):改变了变量的值 == 新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象(一个地址), python的id() 方法让你明白

int

float

decimal

complex

bool

string

tuple

range

frozenset

bytes

12,s = "ajldjlajfdljfddd",去重并从小到大排序输出"adfjl"

sort方法还有两个可选参数:key和reverse

1、key在使用时必须提供一个排序过程总调用的函数:

1

2

3

x = ['mmm', 'mm', 'mm', 'm' ]

x.sort(key = len)

print x # ['m', 'mm', 'mm', 'mmm']

2、reverse实现降序排序,需要提供一个布尔值:

1

2

3

y = [3, 2, 8 ,0 , 1]

y.sort(reverse = True)

print y #[8, 3, 2, 1, 0]

实现代码:

s = "ajldjlajfdljfddd"

# 将s转换成set类型去重

ss = set(s)

print(ss)

# 将去重的set转换成列表,用于排序

ss = list(ss)

ss.sort(key=s.index)

print(ss)

# 将排好序的列表转换成字符串

ss = ''.join(ss)

print(ss)

13,字典dict={"name":"alex","age":18,"city":"北京","tel":"1381111111"}根据键从小到大排序输出

dict = {"name": "alex", "age": 18, "city": "北京", "tel": "1381111111"}

l1 = []

for i in dict:

? ? l1.append(i)

l1.sort()

for i in l1:

? ? print(i, dict[i])

14,a=(1,)b=(1),c=("1") 分别是什么类型的数据?试着用type测试一下看看和你想的一样不一样

<class 'tuple'> <class 'int'> <class 'tuple'>

15,python中交换两个数值是如何做的

a,b=b,a

第三种办法本质上是元组之间的赋值

16,[1,2,3]+[4,5,6]的结果是多少?试试看

[1, 2, 3, 4, 5, 6]

17," hehheh "去除首尾空格 ps:字符串的操作也很多,大多数很常用,想想(首字母大写,字符串全部转换成大写,全部转换成小写,字符串拼接,字符串查找,判断字符串是否全是数字等等,有很多,试试自己知道这些对应的方法是什么?)

s=" HehHeh "

print(s.strip())

print(s.upper())

print(s.index("h"))

print(s.count("h"))

print(s.center(50,"*"))

print(s.isdigit())

print(s.zfill(20))

print(s.casefold())

print(s.rfind("e"))

print("**********")

print(s.isspace())

print(s.replace("h","g"))

print(s.swapcase())

18,r、r+、rb、rb+文件打开模式区别

#只读模式

with open ( "file.txt" ,'r' ) as f:

for line in f.readlines():

print ( line )

#? 读写,可以写,内容在文件最开头

with open ( "file.txt" ,'r+' ) as f:

#for line in f.readlines():

f.write('r+ ...')

# w? : 普通的写模式,如文件不存在,则建立

# w+ : 如果文件不存在,则建立

with open ( "file.write2.txt" , 'w+' ) as f:

for line in f.read():

print (line)

f.write('w+ ...2 ')

# rb? : read binary? 读取一些非文本形式,二进制形式文件用到

# wb? : write binary? 写一些PDF,二进制形式的文件需要

19,什么是相对路径,什么是绝对路径

绝对路径,从根目录为起点到你所在的的目录;

相对路径,从一个目录为起点到你所在的目录。

绝对路径: C:\A文件夹

相对路径(如果你在B文件夹时): ..\B文件夹 (‘..\’向上一级意思)

20,Python中is和==有什么区别

== 比较操作符:用来比较两个对象值是否相等。

is? 同一性运算符:比较两个对象的id值是否相等,即是否是同一对象,是否指向同一个内存地址。

补充:当两个对象值相同时,只有其为数值型或字符串型,a is b才为True,当a和b是tuple,list,dict或set型时,a is b为False 。

21,文件操作的read,readline,readlines的区别

read

1.读取整个文件,将文件内容放到一个字符串变量中。

2.如果文件非常大,尤其是大于内存时,无法使用read()方法。

3.read()直接读取字节到字符串中,包括了换行符

readline

1.readline()方法每次读取一行;返回的是一个字符串对象,保持当前行的内存

2.比readlines慢得多

3.readline() 读取整行,包括行结束符,并作为字符串返回

readlines 一次性读取整个文件;自动将文件内容分析成一个行的列表。

?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,029评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,238评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
    开封第一讲书人阅读 159,576评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,214评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,324评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,392评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,416评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,196评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,631评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,919评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,090评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,767评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,410评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,090评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,328评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,952评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,979评论 2 351