zoukankan      html  css  js  c++  java
  • python基础数据类型

    1、执行 Python 脚本的两种方式

    终端和交互模式

    法1:
    python helloword.py

    法2:
    ps: 执行前需给预chmod 755 helloword.py (linux系统中)
    ./helloword.py

    2、简述位、字节的关系
    1byte =8位

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

    • unicode:包含所有国家的字符编码,
    • utf-8可变长的字符编码,英文表示一个字节,中文(繁文)表示3个字节
    • ascii美国标志信息交换代码,是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,一个字符占一个字节
    • gbk全称《汉字内码扩展规范》,一个字符占用两个字节

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

    • 在utf-8中,一个中文字符占用3个字节
    • 在gbk中一个汉字占用2个字节
    • 李杰 = utf-8(6字节)=48
    • 李杰 = gbk(4字节)=32


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

    • 单行注释 #被注释内容
    • 多行注释 '''被注释内容'''


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

    • 变量名只能是 字母、数字或下划线的任意组合
    • 变量名的第一个字符不能是数字
    • 以下关键字不能声明为变量名
    • ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
    • 最好不好和python内置的东西重复


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

    1 n1=5
    2 v = int(n1.bit_length())
    3 print(v)

    执行结果:

    1 3

    8、布尔值分别有什么?

    • 一个布尔值只有True、False两种值,要么是True,要么是False
    • 可以用0或1表示

    9、阅读代码,请写出执行结果

    1 a = "alex"
    2 b = a.capitalize()
    3 print(a)
    4 print(b)

    执行结果:

    1 alex
    2 Alex

    10、写代码,有如下变量,请按照要求实现每个功能

    name="aleX"

    a.移除 name 变量对应的值两边的空格,并输入移除后的内容
    print(name.strip()) #aleX

    b.判断 name 变量对应的值是否以"al"开头,并输出结果
    print(name.startswith('al')) #False

    c.判断 name 变量对应的值是否以"X"结尾,并输出结果
    print(name.endswith('X')) #False

    d.将 name 变量对应的值中的“l”替换为“p”,并输出结果
    print(name.replace('l','p')) #aleX

    e.将 name 变量对应的值根据“l”分割,并输出结果。
    print(name.split('l')) #['a', 'eX']

    f.请问,上一题e分割之后得到值是什么类型(可选)
    print(type(name.split('l'))) #<class 'list'>

    g.将 name 变量对应的值变大写,并输出结果
    print(name.upper()) #ALEX

    h.将 name 变量对应的值变小写,并输出结果
    print(name.lower()) #alex

    i.请输出 name 变量对应的值的第 2 个字符?
    print(name[1:2]) #l

    j.请输出 name 变量对应的值的前 3 个字符?
    print(name[:3]) #ale

    k.请输出 name 变量对应的值的后 2 个字符?
    print(name[-2:]) #eX

    l.请输出 name 变量对应的值中“e”所在索引位置?
    print(name.index('e')) #2

    m.获取子序列,仅不包含后一个字符。如:oldboy则获取oldbo;root则获取roo

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-      
    3 #Author: nulige
    4 
    5 n1 = "oldboy"
    6 n2 = n1.strip('y')
    7 print(n2)

    执行结果:

    1 oldbo

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

    可以

    1 name = "nulige"
    2 for i in name:
    3     print(i)

    执行结果:

    1 n
    2 u
    3 l
    4 i
    5 g
    6 e

    补充知识:

    什么是迭代?

    利用 for 循环来遍历一个列表(list)或元组(tuple),将值依次取出,这种方法我们称为迭代。

     利用for语句迭代字符串,创建一个字符串,name = "nulige",然后用for语句进行迭代。

    22、请用代码实现:
    a.利用下划线将列表的每一个元素拼接成字符串,li="alexericrain"

    1 li = "alexericrain"
    2 v = "_".join(li)
    3 print(v)

    执行结果:

    1 a_l_e_x_e_r_i_c_r_a_i_n

    b.利用下划线将列表的每一个元素拼接成字符串,li=['alex','eric','rain'](可选)

    1 li = ['alex','eric','rain']
    2 v = "_".join(li)
    3 print(v)

    执行结果:

    1 alex_eric_rain

    23、Python2 中的 range 和 Python3 中的 range 的区别?

    python2直接就在内存中创建出来

    pyhotn3没有在内存中创建出来,需要使用for循环才会创建出来

    24、实现一个整数加法计算器:
    如:content=input('请输入内容:')#如:5+9或5+9或5+9

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-
    3 #Author: nulige
    4 
    5 n1 = int(input("name:"))
    6 n2 = int(input("age:"))
    7 info = n1+n2
    8 print(info)

    执行结果:

    1 name:5
    2 age:9
    3 14

    25、计算用户输入的内容中有几个十进制小数?几个字母?

    如:content=input('请输入内容:')#如:asduiaf878123jkjsfd-­‐213928

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 number_null = ""
     6 name = "123456asdfsdf"
     7 str_null = ""
     8 for i in name:
     9     if i.isdecimal():  #判断i的值是不是数字
    10         number_null += i #如果i的值是数字的话,则加入到number_null
    11     elif  i.isalpha():  #判断i的值是不是字母
    12             str_null += i   
    13 print(number_null,str_null)
    14 print(len(number_null),len(str_null))

    执行结果:

    1 123456 asdfsdf
    2 6 7

    26、简述int和9等数字以及str和"xxoo"等字符串的关系?

     数字就是整型,带“ ”的就是字符串

    27、制作趣味模板程序

    需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意现实

    如:敬爱可亲的 xxx,喜欢在 xxx 地方干 xxx

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-      
    3 #Author: nulige
    4  
    5 n1 = input("name:")
    6 n2 = input("add:")
    7 n3 = input("hobby:")
    8 print("敬爱的",n1,"喜欢在",n2,"安静的",n3)

    执行结果:

    1 敬爱的 成龙 喜欢在 图书馆 安静的 看书

    28、制作随机验证码,不区分大小写。

    流程:
    -­‐用户执行程序
    -­‐给用户显示需要输入的验证码
    -­‐用户输入的值
    用户输入的值和显示的值相同时现实正确信息;否则继续生成随机验证码继续等待用户输入
    生成随机验证码代码示例:

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-      
     3 #Author: nulige
     4 
     5 def check_code():
     6     import random
     7     checkcode = ''
     8     for i in range(4):
     9         current = random.randrange(0,4)
    10         if current != i:
    11             temp = chr(random.randint(65,90))
    12         else:
    13             temp = random.randint(0,9)
    14         checkcode += str(temp)
    15     return checkcode
    16 code = check_code()
    17 print(code)
    18 
    19 count = 0
    20 while count < 3:
    21     identifying_code = input("请输入验证码:")
    22     if code ==  identifying_code.upper():
    23         print("验证通过---登录成功---")
    24         break
    25     else:
    26         continue
    27     count += 1

    执行结果:

    1 请输入验证码:lwv9
    2 验证通过---登录成功---

    29、开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符:
    如:"苍老师"“东京热”,则将内容替换为***

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-      
    3 #Author: nulige
    4 
    5 n1 = input("请输入:")
    6 m = str.maketrans("苍老师", "***")
    7 a = str.maketrans("东京热", "***")
    8 new_v = n1.translate(m).translate(a)
    9 print(new_v)

    执行结果:

    1 请输入:苍老师
    2 ***

    30、制作表格

    循环提示用户输入:用户名、密码、邮箱  (要求用户输入的长度不超过 20 个字符,如果超过则只有前 20 个字符有效) 如果用户输入  q 或 Q  表示不再继续输入,将用户输入的内容以表格形式打印

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-      
     3 #Author: nulige
     4 
     5 W = "用户名	密码	邮箱
    "
     6 while 1 == 1:
     7     name = input("用户名:")
     8     if name == "q" or name == "Q" or name == "no":
     9         print(w)
    10         break
    11     passwd = input("密码:")
    12     if passwd == "q" or passwd == "Q" or quit == "no":
    13         print(w)
    14         break
    15     mail = input("邮箱:")
    16     if mail == "q" or mail == "Q" or mail == "no":
    17         print(w)
    18         break
    19     Name = name[0:20]
    20     Pwd = passwd[0:20]
    21     Mail = mail[0:20]
    22     b = "{0}	{1}	{2}
    ".format(Name,Pwd,Mail)
    23     n1 = W + b
    24     w = n1.expandtabs(20)
    25     continue

    执行结果:

    1 用户名:asfdsa
    2 密码:ddd
    3 邮箱:qq@qq.com
    4 用户名:q
    5 用户名                 密码                  邮箱
    6 asfdsa              ddd                 qq@qq.com
  • 相关阅读:
    .NET中使用Redis总结 —— 1.Redis搭建
    Java 通过JDBC连接Mysql数据库
    5.java设计模式之建造者模式
    4.java设计模式之原型模式
    3.java设计模式之工厂模式
    2.java设计模式之单例模式
    1.java设计模式之七大设计原则和UML类图
    1.使用javax.mail, spring的JavaMailSender,springboot发送邮件
    1.7 栈(使用数组模拟)
    1.6 单向环形链表和约瑟夫问题
  • 原文地址:https://www.cnblogs.com/huangxiaohan/p/7787341.html
Copyright © 2011-2022 走看看