zoukankan      html  css  js  c++  java
  • Python基础知识汇总

    1.执行脚本的两种方式

    Python a.py     直接调用Python解释器执行文件

    chomd +x a.py   ./a.py    #修改a.py文件的属性,为可执行,在用  ./  执行a.py 文件

    2、简述位、字节的关系

    1bytes=8bit  ,2**8=256,可以代表256中变化,

    3、简述 ascii、unicode、utf-8、gbk 的关系

    ascii 是最早美国用的标准信息交换码,把所有的字母的大小写,各种符号用 二进制来表示,共有256中,加入些拉丁文等字符,1bytes代表一个字符,

    Unicode是为了统一世界各国语言的不用,统一用2个bytes代表一个字符,可以表达2**16=65556个,称为万国语言,特点:速度快,但浪费空间,

    可以用在内存处理中,兼容了utf-8,gbk,ASCII,

    utf-8 为了改变Unicode的这种缺点,规定1个英文字符用1个字节表示,1个中文字符用3个字节表示,特点;节省空间,速度慢,用在硬盘数据传输,网络数据传输,相比硬盘和网络速度,体现不出来的,

    gbk  是中文的字符编码,用2个字节代表一个字符,

    4、请写出 “李杰” 分别用 utf-8 和 gbk 编码所占的位数

    utf-8    是3 bytes=24bit

    gbk     是2bytes=16bit

    5、Pyhton 单行注释和多行注释分别用什么?

    单行注释  #

    多行注释  """  """三个双引号或是三个单 引号把要解释的内容放中间, ‘’‘  ’’’

    6、声明变量注意事项有那些?

    万能避错规则,以小写字母开头命名,可以加上下划线,或者数字,

    不能以Python的关键字命名,

    能表明变量的意义

    8、如何查看变量在内存中的地址?

    z=1
    print(id(z))

    9、执行 Python 程序时,自动生成的 .pyc 文件的作用是什么?

    .pyc 是编译py文件后的二进制文件,用于加速运行

    10、写代码
    a.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!

    
    
    
    
    name=input('name:').strip()
    pwd=input('pwd').strip()
    if name=='seven' and pwd=='123' :
    print('ok')
    else:
    print('error')


    b.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次

    
    
    while循环:
    count=1
    while count<=3 :
    name = input('name:').strip()
    pwd = input('pwd').strip()

    if name=='seven' and pwd=='123' :
    print('ok')
    else:
    print('error')
    count += 1
    for循环:
    for count in range(3) :
    name = input('name:').strip()
    pwd = input('pwd').strip()

    if name=='seven' and pwd=='123' :
    print('ok')
    else:
    print('error')
    count += 1
    
    

    c.实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次

    
    
    while 循环
    count =1
    while count<=3 :
    name = input('name: ')
    pwd = input('pwd: ')
    if name == 'seven' and pwd == '123' or name == 'alex' and pwd == '123':
    print('ok')
    else :
    print('error')
    count+=1
    for循环
    for count in range(3)  :
    name = input('name: ')
    pwd = input('pwd: ')
    if name == 'seven' and pwd == '123' or name == 'alex' and pwd == '123':
    print('ok')
    else :
    print('error')
    count+=1

    11、写代码
    a. 使用while循环实现输出2-3+4-5+6...+100 的和

    count=2
    num=0
    while count<=100 :
    if count % 2 ==0 :
    num=count+num
    count+=1
    else:
    num=num-count
    count+=1
    print(num)

    b. 使用for循环和range实现输出 1-2+3-4+5-6...+99 的和
     num=0
    count=1
    for count in range(100) :
    if count % 2 == 0 :
    num=num - count
    else :
    num=num+count
    print(num)
    
    
     

     c. 使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12

    count=1
    while count < 13 :
    if count !=6 :
    if count !=10 :
    print(count)

    count+=1

    d. 使用 while 循环实现输出 1-100 内的所有奇数

    for i in range(101) :
    if i %2 != 0 :
    print(i)


    count=0
    while count<100 :
    if count %2 != 0 :
    print(count)
    count += 1

    e. 使用 while 循环实现输出 1-100 内的所有偶数

    for i in range(100) :
    if i %2 == 0:
    print(i)


    count=0
    while count<100 :
    if count%2 == 0 :
    print(count)
    count+=1


    12、分别书写数字 5,10,32,7 的二进制表示

    print(bin(5))二进制   0b101
    
    
    print(hex(10))十六进制  0x5
    print(oct(5)) 八进制 0o5

    14、现有如下两个变量,请简述 n1 和 n2 是什么关系? n1 = 123 n2 = 123

    n1,n2是连个不同的变量名,但值都一样,都指向了同一个内存地址,

    
    

    16、现有如下两个变量,请简述 n1 和 n2 是什么关系? n1 = 123456 n2 = n1

    n2赋值给n1.指向同一个内存地址,

    17、如有一下变量 n1 = 5,请使用 int 的提供的方法,得到该变量最少可以用多少个二进制位表示?

     n1=5
    print(int.bit_length(n1))  结果  3

    18、布尔值分别有什么?

    False .Ture ,或1  和0

    20、写代码,有如下变量,请按照要求实现每个功能 name = " aleX"
    a. 移除 name 变量对应的值两边的空格,并输入移除有的内容

    print(name.strip())

    b. 判断 name 变量对应的值是否以 "al" 开头,并输出结果

    print(name.startswith('al'))

    c. 判断 name 变量对应的值是否以 "X" 结尾,并输出结果

    
    
    print(name.endswith('x'))

    d. 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果

    print(name.replace('l','p'))   apex  

    e. 将 name 变量对应的值根据 “l” 分割,并输出结果。

    print(name.split('e'))   ['al', 'x  ']  列表
    
    

    g. 将 name 变量对应的值变大写,并输出结果

    
    
    print(name.upper())  print(name.lower())

    i. 请输出 name 变量对应的值的第 2 个字符?

    print(name[1])

    j. 请输出 name 变量对应的值的前 3 个字符?

    
    
    print(name[:3])

    k. 请输出 name 变量对应的值的后 2 个字符?

     

    l. 请输出 name 变量对应的值中 “e” 所在索引位置?

    
    
    print(name.index('e'))

    21、字符串是否可迭代?如可以请使用 for 循环每一个元素?

    依赖索引
    name = "Alex "
    for i in range(len(name)) :
    print(name[i])
    
    
    for i in name:
    print(i)
    
    

    22、请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li = ['alex', 'eric', 'rain']

    
    
    print('_'.join(['alex', 'eric', 'rain']))    alex_eric_rain

    22、写代码,有如下列表,按照要求实现每一个功能 li = ['alex', 'eric', 'rain']

    
    
    li = ['alex', 'eric', 'rain']
    print(len(li))
    
    

    b. 列表中追加元素 “seven”,并输出添加后的列表

    
    
    li.append('seven')      
    print(li)
    
    
     ['alex', 'eric', 'rain', 'seven']

    c. 请在列表的第 1 个位置插入元素 “Tony”,并输出添加后的列表

    
    
    li.insert(0,'TONY')
    print(li)
    
    

    d. 请修改列表第 2 个位置的元素为 “Kelly”,并输出修改后的列表

    
    
    li[1]=('killy')
    print(li)

    e. 请删除列表中的元素 “eric”,并输出修改后的列表

    
    
    li = ['alex', 'eric', 'rain']
    li.pop(1)
    print(li)
    ['alex', 'rain']
    指名道姓的删除
    li = ['alex', 'eric', 'rain']
    li.remove('alex')
    print(li)

    f. 请删除列表中的第 2 个元素,并输出删除的元素的值和删除元素后的列表

    
    
    li = ['alex', 'eric', 'rain']
    print(li.pop(1))
    print(li)

    eric
    ['alex', 'rain']

    h. 请删除列表中的第 2 至 4 个元素,并输出删除元素后的列表

    
    

    li = ['alex', 'eric', 'rain']
    del li[1:]
    print(li)

     

    k. 请使用 enumrate 输出列表元素和序号(序号从 100 开始)


    li = ['alex', 'eric', 'rain']
    for k,v in enumerate(li,1):
    print(k,v)
    
    

    23、写代码,有如下列表,请按照功能要求实现每一个功能 li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]
    a. 请输出 “Kelly”

    li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]
    print(li[2][1][1])
    
    
    b. 请使用索引找到 'all' 元素并将其修改为 “ALL”
    li[2][2]='ALL'
    print(li)

    24、写代码,有如下元组,按照要求实现每一个功能 tu = ('alex', 'eric', 'rain')
    a. 计算元组长度并输出

    
    
    tu = ('alex', 'eric', 'rain')
    print(len(tu))

    b. 获取元组的第 2 个元素,并输出

    print(tu[1])

    e. 请使用 for、len、range 输出元组的索引

    for i in range(len(tu)) :
    print(tu.index(tu[i]))

    f. 请使用 enumrate 输出元祖元素和序号(序号从 10 开始)

    
    
    for k,v in enumerate(tu,10) :
    print(k,v)

    10 alex
    11 eric
    12 rain

    for k in enumerate(tu,10) :
    print(k)
    (10, 'alex')
    (11, 'eric')
    (12, 'rain')


    25、有如下变量,请实现要求的功能
    tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])
    
    

    c. 请问 tu 变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”

    元组,不可以

    d. 请问 tu 变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”

    
    
    列表,可以
    tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])
    res=tu[1][2]['k2'].append('seven')

    print(tu)

    26、字典
    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}

    
    
    for i in dic:
    print(i)

    b. 请循环输出所有的 value

    for i in dic:
    print(dic[i])

    c. 请循环输出所有的 key 和 value

    
    

    for i in dic:
    print(i,dic[i])

    d. 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典

    dic['k4']='v4'
    print(dic)

    e. 请在修改字典中 “k1” 对应的值为 “alex”,输出修改后的字典

    dic['k1']='alex'
    print(dic)

    f. 请在 k3 对应的值中追加一个元素 44,输出修改后的字典

    dic['k3'].append(44)
    print(dic)
    
    

    g. 请在 k3 对应的值的第 1 个位置插入个元素 18,输出修改后的字典

    dic['k3'].insert(0,44)
    print(dic)

    27、转换
    a. 将字符串 s = "alex" 转换成列表
      

    s = "alex"

    print(list(s))

    b. 将字符串 s = "alex" 转换成元祖

    s = "alex"
    print(tuple(s))


    b. 将列表 li = ["alex", "seven"] 转换成元组

    li = ["alex", "seven"]
    print(tuple(li))

    c. 将元祖 tu = ('Alex', "seven") 转换成列表

    tu = ('Alex', "seven")
    li=list(tu)
    print(li)
    
    
    d. 将列表 li = ["alex", "seven"] 转换成字典且字典的 key 按照 10 开始向后递增

    dic={}
    for k,v in enumerate(li,10) :----li要放在前面,序号放在后面
    dic[k]=v
    print(dic)
    
    

    27、转码n = "老男孩"
    a. 将字符串转换成 utf-8 编码的字节,并输出,然后将该字节再转换成 utf-8 编码字符串,再输出

    n = "老男孩"
    a=n.encode('utf-8')  
    print(a)
    b=a.decode('utf-8')
    print(b)

    b. 将字符串转换成 gbk 编码的字节,并输出,然后将该字节再转换成 gbk 编码字符串,再输出

    a=n.encode('gbk')
    print(a)
    b=a.decode('gbk')
    print(b)
    
    

    28、求 1-100 内的所有数的和

    count=1
    sum=0
    for i in range(100) :
    sum=sum+count
    count+=1
    print(sum)


    count=1
    sum=0
    while count<=100 :
    sum+=count
    count+=1
    print(sum)

    29、元素分类
    有如下值集合 [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个 key 中,
    将小于 66 的值保存至第二个 key 的值中。
    即: {'k1': 大于 66 的所有值, 'k2': 小于 66 的所有值}

    li=[11,22,33,44,55,66,77,88,99,90]
    dic1={
    'max':[],
    'min':[]
    }
    for i in li :
    if i <66 :
    dic1['min'].append(i)
    else:
    dic1['max'].append(i)
    print(dic1)

    ---{'max': [66, 77, 88, 99, 90], 'min': [11, 22, 33, 44, 55]}
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    HDU 6143 Killer Names【dp递推】【好题】【思维题】【阅读题】
    HDU 6143 Killer Names【dp递推】【好题】【思维题】【阅读题】
    POJ 3974 Palindrome【manacher】【模板题】【模板】
    POJ 3974 Palindrome【manacher】【模板题】【模板】
    HDU 6127 Hard challenge【计算机几何】【思维题】
    HDU 6127 Hard challenge【计算机几何】【思维题】
    HDU 6129 Just do it【杨辉三角】【思维题】【好题】
    HDU 6129 Just do it【杨辉三角】【思维题】【好题】
    HDU 3037 Saving Beans【Lucas定理】【模板题】【模板】【组合数取余】
    8.Math 对象
  • 原文地址:https://www.cnblogs.com/gyh04541/p/7041298.html
Copyright © 2011-2022 走看看