Python基础 练习题

时间:2022-06-17 18:13:01

DAY .1

1、使用while循环输出 1 2 3 4 5 6     8 9 10

n = 1
while n < 11:
    if n == 7:
        pass
    else:
        print(n)
    n = n + 1
print("------end------")

  

2、求1-100的所有数的和

n = 1
s = 0
while n < 101:
    s = s + n
    n = n + 1
print(s)

  

3、输出 1-100 内的所有奇数

n = 1
while n < 101:
    temp=n % 2
    if temp == 0:
        pass
    else:
        print(n)
    n = n+1
print('-----end----')

  

4、输出 1-100 内的所有偶数

n = 1
while n <101:
    temp = n % 2
    if temp ==0:
        print(n)
    else:
        pass
    n = n + 1
print('-----end-----')

  

5、求1-2+3-4+5 ... 99的所有数的和

n = 1
s = 0
while n <100:
    temp = n % 2
    if temp == 0:
        s = s - n
    else:
        s = s+n
    n = n + 1
print(s)

  

6、用户登陆(三次机会重试)

count = 0
while count < 3:
    user_name = input('name:')
    user_passwd = input('password:')
    if user_name == 'baier' and user_passwd == 'beautiful':
        print('登陆成功')
        break
    else:
        print('密码或用户名错误')
        count += 1
        if count < 3:
            print('请尝试重新输入')

else:
     print('您的输入次数已用完')

print('------------end--------------')

  

7. 从一个列表中每次取出两个,找出所有组合方式

List = [1, 2, 3, 4, 5]
length = len(List)
for x in range(0, length-1):
    for y in range(x+1, length):
        print(List[x], List[y])

DAY.3

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

/. a.py 通过在文件头写入python解释器路径直接执行
python a.py 通过直接调用python解释器执行

2.简述位、字节的关系。

8位(bit)组成一个字节(byte)

计算机存储通常以位存储  处理时通常以字节来处理

3.简述ascii、unicode、utf-8、gbk编码的关系。

ASCII:用于英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。无法将所有中文都概括。
unicode: 万国码,规定字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,能表示世界上所有的符号和字符语言。
utf-8:对unicode的压缩和优化版。不再是最少用两个字节,而是取最优策略,既能都表示有节省空间。
gbk:仅限于中文字符(简体与繁体),比utf-8的占用空间小

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

utf-8: 2*3*8 =48
gbk: 2*2*8 = 32

5.Python单行注释和多行注释分别用什么?

单行: #
多行: ''' ''' 或 """ """

6.声明变量注意事项有哪些?

变量名只能用数字、字幕、下划线组成且首字母不能为数字
变量名最好不要与python的关键字等内置的东西重名
多单词组合的变量名用下划线链接

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

bit_length

 n1 = bin(5)
 print(n1)
0b101  #(0b表示二进制)

8.布尔值分别有什么?  

Ture 对应1 字符串里对应非空(有空格也是真'  ')
Flash 对应0 字符串里的空字符串 ''

a ='sdfs'
b = bool(a)
print(b)
True

  

9.阅读代码执行结果

a = 'alex' b =a.capitalize()
print(a)
print(b

输出结果:

 alex
 Alex

10.写代码,有如下变量,请按照要求实现每个功能 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'))

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

print(name.split('l'))

f.请问上一题e分割之后得到的值是什么类型?

列表

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

print(name.upper())

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

print(name.lower())

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

print(name[1])

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

print(name[0:3])

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

print(name[-2:])

l.请输出ame变量对应的值中"e"所在索引位置

print(name.index('e'))

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

print(name[:-1])

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

是
name = 'hello'
for i in name:
    print(i)
----->
h
e
l
l
o

12.请用代码实现:

a.利用下划线将列表的每一个元素拼接成字符串,li - "alexericrain"

li = "alexericrain"
print('_'.join(li))
----->
a_l_e_x_e_r_i_c_r_a_i_n

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

li = ['alex', 'eric', 'rain']
print('_'.join(li)
----->
alex_eric_rain

13.python2中的range和python3中的range的区别?

python2:

  range 立即创建

xrange for循环时才一个一个创建

pythin3:

  range for循环时才一个一个创建

14.实现一个整数加法计算器:

如:

content = input("请输入内容:")   #  如: 5+9 或 5+ 9 或 5 + 9

content = input('请输入内容(如5+9或5+ 9或5+9 ):')
li = content.split(' ')
s = int(li[0])*int(li[2])
print(s)
----->
请输入内容(如5+9或5+ 9或5+9 ):5 + 9
45

value =input('请输入加法操作:')
v1, v2 = value.split('+')
v1 = int(v1)
v2 = int(v2)
v = v1+v2
print(v)
请输入加法操作:5+ 9
14

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

如:

content = input("请输入内容:")  # 如 dfsdfsdf54554sdfsf-615

content = input('请输入内容:')
n = 0
b = 0
li = list(content)
for i in li:
    if  i.isdigit():  # 判断是否是数字
        n += 1
    elif i.isalpha():  # 判断是否是字母
        b += 1
    else:
        pass
print("数字个数:" + str(n), "字母个数:" + str(b))
----->
请输入内容:asdfgh-95+
数字个数:2 字母个数:6

16.简述int和9等数字,str和"xxoo"等字符串的关系

类和对象的关系

17.制作趣味模板程序

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

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

name = input("名字:")
ad = input("地点")
love = input('爱好')
print('敬爱的'+name+'最喜欢在'+ad+'这种地方'+love)
------->
名字:小五
地点优衣库
爱好购物
敬爱的小五最喜欢在优衣库这种地方购物

或者

temp = '敬爱可爱的{0},最喜欢在{1}地方干{2}'
name = input('name:')
ad = input('ad:')
do = input('do:')
temp = temp.format(name, ad, do)
print(temp)
name:lcg
ad:海边
do:基友
敬爱可爱的lcg,最喜欢在海边地方干基友

18.开发敏感词语过滤程序

提示用户输入内容,如果用户输入的内容中包含特殊字符如"苍老师" "东京热",则将内容替换为***

li = ['苍老师', '搞基', '东京热', '色情']
i = input('请输入内容:')
for v in li:
    if v in i :
        i = i.replace(v, '***')
    else:
        pass
print(i)
------->
请输入内容:爱搞基的小五经常浏览色情网站
爱***的小五经常浏览***网站

19.制作表格

循环提示用户输入:用户名、密码、邮箱(要求用户输入的长度不超过20个字符,如果超过则只有前20个有效)

如果用户输入q或Q表示不再继续输入,将用户的内容以表格的形式打印。

分页显示

li = []
for i in range(0,301):
    temp = {'name': 'lcg'+str(i), 'email': 'lcg@lc.com'+str(i), 'pwd': '123456'+str(i)}
    li.append(temp)
    falg = True
while falg:
    page = input('输入1-301页码或按q退出')
    if page == 'q':
        falg = False
        break
    else:
        page = int(page)
        start = (page-1)*10
        end = page*10
        result = li[start:end]
        print(result)

三级菜单 (初级版,垃圾版)

city = {"北京": {"朝阳": ["大望路","国贸"],
               "昌平": ["沙河", "昌平"]},
        "河北": {"张家口": ["沙城", "宣化"],
          "石家庄": ["某某路", "某某街"]}
        }
go = True
while go:
    for i in city.keys():
        print(i)
    choice = input('选择添加省请按a/A,进入省请按i/I ,选择退出程序请按q/Q,\n>>>')
    choice = choice.lower()
    if choice == 'q':
        break
    elif choice == 'a':
        add_sheng = input('请输入您要添加的省')
        city[add_sheng] = {}
        print('添加成功!')
    elif choice == 'i':
        shi = input('请您输入以上您要进的省名称')
        if shi not in city.keys():
            print('输入有误')
        else:
            go1 = True
            while go1:
                for v in city[shi].keys():
                    print(v)
                choice_shi = input('选择添加市区请按a/A,进入市区请按i/I , 返回上一层按b/B,选择退出程序请按q/Q,\n>>>')
                choice_shi = choice_shi.lower()
                if choice_shi == 'q':
                    go = False
                    break
                elif choice_shi == 'b':
                    go1 = False
                    continue
                elif choice_shi == 'a':
                    add_shi = input('请输入您要添加的市区\n>>>')
                    city[shi][add_shi] = []
                elif choice_shi == 'i':
                    go2 = True
                    while go2:
                        for n in city[choice][choice_shi]:
                            print(n)
                        choice_xian = input('添加县 a/A , 返回b/B 退出 q/Q\n>>>')
                        choice_xian = choice_xian.lower()
                        if choice_xian == 'q':
                            go = False                            go1 = False
                            break
                        elif choice_xian == 'b':
                            go2 = False
                            continue
                        elif choice_xian == 'a':
                            add_xian = input('输入您要添加的县\n>>>')
                            city[shi][choice_shi].append(add_xian)
                            continue
                        else:
                            print('输入不正确,请重新输入\n>>>')
                else:
                    print('输入不正确,请重新输入\n>>>')
    else:
        print('输入不正确,请重新输入\n>>>')