2-16 阶段考核

 

 

1,口述问题

  1. 学会看英文文档,源码目前不涉及
  2. 好的程序员,不能只懂一门语言,
  3. C语言,底层,推荐书目
  4. 变量命名规则和团队保持一致
  5. 编码格式(比较模糊)

 

 

 

2.不会的问题

编码格式:

    python2解释器是ASCII
    python3解释器是UTF-8

python2中
    bytes = str
    Unicode是独立的类型
    

python3
    str是unicode编码
    所有的unicode字符编码后都是bytes格式

 

3.考题

    

    

 

# -*- coding:utf-8 -*-

# s = "www.luffycity.com"
# print(s.split('.'))

# 2. 切割字符串"luffycity""luffy","city"

# s1 = "luffycity"
# s1_1 = s1[0:5]
# s1_2 = s1[5:]
# print(s1_1,s1_2)

# 5. 有如下字符串:n = "路飞学城"
#     - 将字符串转换成utf-8的字节,再将转换的字节重新转换为utf-8的字符串
#     - 字符串转换成gbk的字节,再将转换的字节重新转换为utf-8的字符串

# n = "路飞学城"
#
#
# print(n,type(n))
# print(n.encode('utf-8'))
# print(n.encode('utf-8').decode('utf-8'))
# print(n.encode('gbk'))
# print(n.encode('gbk').decode('utf-8'))

# 列表['alex','egon','yuan','wusir','666']
# - 1.把666替换成999
#     - 2.获取yuan索引

# li = ['alex','egon','yuan','wusir','666']
#
# li[-1] = '999'
# li.index('yuan')
# li[-3:]


# 2. 将列表['alex', 'steven', 'egon'] 中的每一个元素使用 ‘\_’ 连接为一个字符串
# li = ['alex', 'steven', 'egon']
#
# print('\_'.join(li))

# 4. 对列表进行增删改查。
    # - ['alex','egon','wusir','wen','jing']
# li = ['alex','egon','wusir','wen','jing']
# li.remove(li[2])
# li.insert(2,'json')
# print(li)

# 对字典进行增删改查
# dic = {"Development":"开发小哥","OP":"运维小哥","Operate":"运营小仙女","UI":"UI小仙女"}
# del dic['Development']
# dic['Development'] = '开发小哥'

# 3. 编写一个python程序,输入两个数,比较它们的大小并输出其中较大者。
a = input("输入数字a:")
b = input("输入数字b:")

if a.isdigit() and b.isdigit():
    if int(a) > int(b):
        print(a)
    else:
        print(b)
else:
    print("请重新输入")

 

 

 4.frozenset:不可变集合

  set()和 frozenset()工厂函数分别用来生成可变和不可变的集合。如果不提供任何参数,默认
  会生成空集合。如果提供一个参数,则该参数必须是可迭代的,即,一个序列,或迭代器,或支持
  迭代的一个对象,例如:一个列表或一个字典。

 

>>> s=set('cheeseshop')  使用工厂方法创建
>>> s
{'h', 'c', 'o', 's', 'e', 'p'}
>>> type(s)
<type 'set'>

>>> s={'chessseshop','bookshop'}直接创建,类似于list的[]和dict的{},不同于dict的是其中的值,set会将其中的元素转换为元组
>>> s
{'bookshop', 'chessseshop'}
>>> type(s)
<type 'set'>

不可变集合创建:
>>> t=frozenset('bookshop')
>>> t
frozenset({'h', 'o', 's', 'b', 'p', 'k'})

 

 

 1 >>> s.add('z')  #添加
 2 >>> s
 3 set(['c', 'e', 'h', 'o', 'p', 's', 'z'])
 4 >>> s.update('pypi') #添加
 5 >>> s
 6 set(['c', 'e', 'i', 'h', 'o', 'p', 's', 'y', 'z'])
 7 >>> s.remove('z') #删除
 8 >>> s
 9 set(['c', 'e', 'i', 'h', 'o', 'p', 's', 'y'])
10 >>> s -= set('pypi')#删除
11 >>> s
12 set(['c', 'e', 'h', 'o', 's'])
13 >>> del s  #删除集合

 

只有可变集合能被修改。试图修改不可变集合会引发异常。

1 >>> t.add('z')
2 Traceback (most recent call last):
3 File "<stdin>", line 1, in ?
4 AttributeError: 'frozenset' object has no attribute 'add'

 

 

5.函数:string.join()

Python中有join()和os.path.join()两个函数,具体作用如下:
    join():    连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串
    os.path.join():  将多个路径组合后返回

 

 

1、join()函数

语法:  'sep'.join(seq)

参数说明
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典
 上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串

返回值:返回一个以分隔符sep连接各个元素后生成的字符串



2、os.path.join()函数

语法:  os.path.join(path1[,path2[,......]])

返回值:将多个路径组合后返回

注:第一个绝对路径之前的参数将被忽略

 

 

#对序列进行操作(分别使用' '与':'作为分隔符)
 
>>> seq1 = ['hello','good','boy','doiido']
>>> print ' '.join(seq1)
hello good boy doiido
>>> print ':'.join(seq1)
hello:good:boy:doiido
 
 
#对字符串进行操作
 
>>> seq2 = "hello good boy doiido"
>>> print ':'.join(seq2)
h:e:l:l:o: :g:o:o:d: :b:o:y: :d:o:i:i:d:o
 
 
#对元组进行操作
 
>>> seq3 = ('hello','good','boy','doiido')
>>> print ':'.join(seq3)
hello:good:boy:doiido
 
 
#对字典进行操作
 
>>> seq4 = {'hello':1,'good':2,'boy':3,'doiido':4}
>>> print ':'.join(seq4)
boy:good:doiido:hello
 
 
#合并目录
 
>>> import os
>>> os.path.join('/hello/','good/boy/','doiido')
'/hello/good/boy/doiido'

 

 

 

---恢复内容结束---

posted @ 2018-02-02 09:32  venicid  阅读(292)  评论(0编辑  收藏  举报