1. Quais são os principais tipos de dados integrados do python? A saída de print dir ('a')?
Tipos de dados variáveis do Python: lista de lista [], dicionário dict {}, set set (), matriz de bytes bytearray
Tipos de dados imutáveis do Python: inteiro int, string str '', tupla tupla (), bool bool,
complexo de números complexos, ponto flutuante tipo float, bytes ...
2. Dadas duas listas A e B, use python para encontrar os mesmos elementos e diferentes elementos em A e B?
lista = [1,2,3,4,5,6,'hello','world']
listb =[2,6,'hello','tarena','python']
set_a = set(lista)
set_b = set(listb)
equal_set = set_a&set_b
print(set_a,set_b)
print('相同的元素是:',equal_set)
print('不相同的元素是:',(set_a|set_b)-equal_set)
3. Inverta a string aStr
s_old = 'aStr'
lst = list(s_old)
lst.reverse()
s_new = ''.join(lst)
print(s_new)
4. Troque os valores das variáveis a e b
a, b = b, a
5. Indique o problema com o código abaixo
def lastindextem(src,index)
'''请返回传入src,使用空格或者'\'切分后的倒数第index个子串’‘’
return src.split('\')[-index]
答: 1、如果传入的参数index不是int类型 会报 TypeError 类型错误
2、如果传入的参数index>len(src) 会报 IndexError 值错误,数组下标越界
6. Escreva a saída do seguinte programa
a = 'abc'
print (a[1])
a[1] = 'a'
print (a[1]) 答 第一个print成功打印'a' a[1]='a'报错TypeError字符串是不可变类型
--------------------------
class Parent(Object):
x = 1
class Child1(Parent):
pass
class Child2(Parent):
pass
print Parent.x,Child1.x,Child2.x
Child.x = 3
print Parent.x,Child1.x,Child2.x
Parent.x = 'a'
print Parent.x,Child1.x,Child2.x
答: 1 1 1
1 3 1
a 3 a
----------------------------------------
def count():
fs = []
for i in range(1,4):
def f():
return i*i
fs.append(f)
return fs
for f in count():
print f()
答: 9 9 9
--------------------------------------
def f(x,l=[]):
for i in range(x):
l.append(i+i)
print l
f(3)
f(3,[3,2,1])
f(2)
答:
[0, 2, 4]
[3, 2, 1, 0, 2, 4]
[0, 2, 4, 0, 2]
---------------------------------------
用一个select语句输出每个城市中距离市中心大于20KM酒店数
+------------+------------+--------+
|name | city_id |distance|
+------------+------------+--------+
|a酒店 |1000 |8 |
|xx酒店 |1000 |22 |
|xx酒店 |1000 |6 |
......
|xx酒店 |1001 |55 |
答:
select count(name) from where distance > 20
Pergunta de programação:
Há um arquivo 3G com uma string por linha, o conteúdo é o id do hotel e o nome da imagem, separados por '\ t'
Exemplo: ht_1023134 + '\ t' + hissnogin123.jpg
significa que um hotel contém A imagem de, contar os ids de hotel contendo fotos> 20, ids de hotel contendo fotos de 10-20, ids de hotel contendo fotos 5-10, 0-5 e enviar os resultados para um arquivo. O
formato do arquivo é
0-5 + '\t' + id1 + '\t' + id2 + ........
5-10 + '\t' + id1 + '\t' + id2 + ........
10-20 + '\t' + id1 + '\t' + id2 + ........
20-无穷大 + '\t' + id1 + '\t' + id2 + ........
f = open('hotel.txt', 'rb')
lst_hotelId = []
lst_hotelImg = []
Leia o arquivo na lista
while True:
data = f.readline().decode()[:-2]
if not data:
f.close()
break
hotel_id, hotel_img = data.split('\t')
hotel = data.split('\t')
lst_hotelId.append(hotel_id)
lst_hotelImg.append(hotel_img)
lst_count1 = []
lst_count2 = []
lst_count3 = []
lst_count4 = []
De acordo com o mesmo número de ID na lista de ID
for x in lst_hotelId:
if lst_hotelId.count(x) <= 5:
if lst_count1.count(x) == 0:
lst_count1.append(x)
elif lst_hotelId.count(x) > 5 and lst_hotelId.count(x) <= 10:
if lst_count2.count(x) == 0:
lst_count2.append(x)
elif lst_hotelId.count(x) > 10 and lst_hotelId.count(x) <= 20:
if lst_count3.count(x) == 0:
lst_count3.append(x)
else:
if lst_count4.count(x) == 0:
lst_count4.append(x)
fw = open('count1.txt', 'wb')
s1 = '0-5\t\t'+'\t'.join(lst_count1)+'\n'
s2 = '5-10\t'+'\t'.join(lst_count2)+'\n'
s3 = '10-20\t'+'\t'.join(lst_count3)+'\n'
s4 = '20-无穷大\t'+'\t'.join(lst_count4)+'\n'
fw.write((s1+s2+s3+s4).encode())
fw.close()
print('write success!')
Problema de programação 2:
dada uma lista interna a, satisfaça a [i + 1]> = a [i], dada uma chave int, encontre o índice do primeiro elemento na lista a que é maior ou igual à chave, que não pode atender aos requisitos O elemento retorna -1
definição de função:
def findindex(int_list,int_key):
if int_key<len(int_list) and int_key>=0 :
return int_key+=1
else:
return -1
Perguntas bônus:
Um, expressão regular:
1. A diferença entre o modo ganancioso e o modo não ganancioso na correspondência regular O modo
ganancioso e não ganancioso afeta o comportamento de correspondência de subexpressões modificadas por quantificadores. O
modo ganancioso combina o máximo possível na premissa de que toda a expressão foi correspondida com sucesso .
as partidas padrão não-gananciosos o mínimo possível na premissa de que toda a expressão corresponde com sucesso.
O modo não ganancioso é compatível apenas com alguns mecanismos NFA.
Os quantificadores pertencentes ao modo ganancioso também são chamados de quantificadores de prioridade de correspondência, incluindo:
"{m, n}", "{m,}", "?", "*" E "+".
2. Uso e diferença de correspondência / função de pesquisa
Resposta: A função
match () detecta apenas se a RE corresponde no início da string,
search () verifica toda a string em busca de uma correspondência, ou seja, match ()
só tem sucesso em Posição 0 Se não for a posição inicial,
match () retornará nenhum
. 3. Escreva uma expressão regular que comece com uma letra ou um sublinhado e termine com um número,
regex = ' 1. * [0-9] + $ '
Dois, qual é o uso do código de status do protocolo HTTP? Liste os códigos de status do protocolo HTTP que você conhece
e diga o que eles significam. O
código de status está localizado na primeira linha da Resposta HTTP. Um "código de status de três dígitos" e uma "mensagem de status" serão retornados.
O código de status de três dígitos é "fácil para o programa processar, e a" mensagem de status "é mais fácil para as pessoas entenderem.
HTTP状态码的作用是:Web服务器用来告诉客户端,发生了什么事。
HTTP状态码被分为五大类
已定义范围 分类
1XX 100-101 信息提示
2XX 200-206 成功
3XX 300-305 重定向
4XX 400-415 客户端错误
5XX 500-505 服务器错误
常见状态码:
200 OK 服务器成功处理了请求(这个是我们见到最多的)
301/302 Moved Permanently(重定向)请求的URL已移走。Response中应该包含一个Location URL, 说明资源现在所处的位置
304 Not Modified(未修改)客户的缓存资源是最新的, 要客户端使用缓存
404 Not Found 未找到资源
501 Internal Server Error服务器遇到一个错误,使其无法对请求提供服务
3. O que aconteceu entre entrar em http://www.mioji.com/ e retornar à página?
1. Insira o URL no navegador
2. O DNS da camada de aplicativo resolve o nome de domínio
3. O cliente da camada de aplicativo envia uma solicitação HTTP
4. A mensagem de transmissão TCP da camada de transporte
5. O protocolo IP da camada de rede consulta o endereço MAC
6. O os dados chegam à camada de enlace de dados
7 O servidor recebe os dados
8. O servidor responde à solicitação
9. O servidor retorna o arquivo correspondente
_a-zA-Z ↩︎