python 基础习题

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

    如:脚本/python/test.py

    第一种方式:python /python/test.py

    第二中方式:在test.py中声明:/usr/bin/env pythonàchmod +x test.pyà/python/test.py

2、简述位、字节的关系

1Byte = 8bits

  1. 简述 ascii、unicode、utf-8、gbk 的关系?

ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定所有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多。

UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...

GBK是国家标准GB2312基础上扩容后兼容GB2312的标准。GBK的文字编码是用双字节来表示的,即不论中、英文字符均使用双字节来表示,为了区分中文,将其最高位都设定成1。GBK包含全部中文字符,是国家编码,通用性比UTF8差,不过UTF8占用的数据库比GBD大。

unicode兼容其他3种字符集。

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

utf-8 3Bytes

gbk 2Bytes

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

单行 #

多行 """ """

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

(1)不能以数字开头

(2)不能使用系统保留关键字;

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

id(变量)

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

10、写代码

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

while True:

name = input("pelease input name: ")

passwd = input("pelease input passwd: ").strip()

if name == "server" and passwd == "123":

print("welcome ..")

break

else:

print("error")

break

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

count = 1

while count <= 3:

name = input("pelease input name: ")

passwd = input("pelease input passwd: ").strip()

if name == "server" and passwd == "123":

print("welcome ..")

break

else:

print("error")

count +=1

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

count = 1

while count <= 3:

name = input("pelease input name: ")

passwd = input("pelease input passwd: ").strip()

if name == "server" and passwd == "123" or name == "alex" and passwd == "123" :

print("welcome ..")

break

else:

print("error")

count +=1

11、写代码

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

count = 2

total = 0

while count <= 100:

if (count % 2):

total = total - count

count += 1

else:

total = total + count

count += 1

print(total)

b. 使用for循环和range实现输出 1-2+3-4+5-6...+99 的和

total = 0

for i in range(1,100):

if (i % 2):

total = total + i

i +=1

else:

total = total - i

i +=1

print(total)

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

count = 1

while count <= 12:

if count == 6 or count == 10:

count += 1

continue

else:

print(count)

count += 1

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

#!/usr/bin/env python

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

count=1

while count<=100:

if count%2:

print(count)

else:

pass

count+=1

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

#!/usr/bin/env python

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

count=1

while count<=100:

if count%2:

count+=1

continue

else:

print(count)

count+=1

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

64 32 16 8 4 2 1

5 1 0 1

10 1 0 1 0

32 1 0 0 0 0 0

7 1 1 1

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

没有任何关系

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

没有任何关系

>>> n1=123456

>>> n2=123456

>>> n1 is n2

False

>>> id(n1)

139934806583632

>>> id(n2)

139934806114672

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

n1和2的内存相同,都指向123456所对的内存地址

18、布尔值分别有什么?

True和False,0和1

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

a = "alex"

b = a.capitalize()

print(a)

print(b)

请写出输出结果:

alex

Alex

20、写代码,有如下变量,请按照要求实现每个功能 name = " aleX"

a. 移除 name 变量对应的值两边的空格,并输出移除后的内容

print(name.strip())

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

print(name.startswith("al"))

False

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

print(name.endswith("X"))

True

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

print(name.replace("l","p"))

apeX

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

print(name.split("l"))

[' a', 'eX']

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

list

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

print(name.upper())

ALEX

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

print(name.lower())

alex

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

print(name[1])

a

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

print(name[:3])

ale

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

print(name[-2:])

eX

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

print(name.index("e"))

3

21、字符串(name='Baoge-IT')是否可迭代?如可以请使用 for 循环每一个元素?

for i in range(len(name)):

print(name[i])

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

print("_".join(li))

alex_eric_rain

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

a. 计算列表长度并输出

print(len(li)) 

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

li.append("server")

print(li)

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

li.insert(0,"Tony")

print(li)

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

li[1] = "Kelly"

print(li)

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

li.remove('eric')

print(li)

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

print(li.pop(1))

print(li)

g. 请删除列表中的第 3 个元素,并输出删除元素后的列表

print(li.pop(2))

print(li)

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

del li[1:]

print(li)

i. 请将列表所有的元素反转,并输出反转后的列表

li.reverse()

print(li)

['rain', 'eric', 'alex']

j. 请使用 for、len、range 输出列表的索引

for li_index in range(len(li)):

print(li_index)

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

for k,j in enumerate(li,100):

print(k,j)

l. 请使用 for 循环输出列表的所有元素

for n in li:

print(n)

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

a. 请输出 "Kelly"

print(li[2][1][1])

b. 请使用索引找到 'all' 元素并将其修改为 "ALL"

li[2][2] = "ALL"

print(li)

24、写代码,有如下元组,按照要求实现每一个功能 tu = ('alex', 'eric', 'rain')

a. 计算元组长度并输出

print(len(tu))

3

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

print(tu[1])

eric

c. 获取元组的第 1-2 个元素,并输出

print(tu[0:2])

d. 请使用 for 输出元组的元素

for n in tu:

print(n)

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

for i in range(len(tu)):

print(i)

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

for n in enumerate(tu,10):

print(n)

25、有如下变量,请实现要求的功能

tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])

a. 讲述元祖的特性

元组里存储的数据是不应该被修改的

b. 请问 tu 变量中的第一个元素 "alex" 是否可被修改?

可以,但是一般不修改

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

listà可以被修改à tu[1][2]['k2'].append('Seven')

tupleà不可以修改

26、字典

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

a. 请循环输出所有的 key

or n in dic:

print(n)

b. 请循环输出所有的 value

for n in dic:

print(dic[n])

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

for n in dic:

print(n,dic[n])

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,18)

print(dic)

27、转换

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

s = list(s)

print(s)

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

s = tuple(s)

print(s)

('a', 'l', 'e', 'x')

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

s = tuple(li)

print(li)

['alex', 'seven']

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

tu = list(tu)

print(tu)

['Alex', 'seven']

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

li = ["alex","seven"]

dict = {}

for i,name in enumerate(li,10):

dict[i] = name

print(dict)

27、转码n = "微曦教育"

a. 将字符串转换成 utf-8 编码的字节,并输出,然后将该字节再转换成 utf-8 编码字符串,再输出

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

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

#!/usr/bin/env python

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

count = 1

total =0

while count <= 100:

total +=count

count +=1

print(total)

29、元素分类

有如下值集合 [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个 key 中,

将小于 66 的值保存至第二个 key 的值中。

即: {'k1': 大于 66 的所有值, 'k2': 小于 66 的所有值}

#!/usr/bin/env python

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

name = [11,22,33,44,55,66,77,88,99,90]

obj = {}

for n in name:

if n >= 66:

if "k1" in obj:

obj["k1"].append(n)

else:

obj["k1"] = [n]

else:

if "k2" in obj:

obj["k2"].append(n)

else:

obj["k2"] = [n]

print(obj)

30、购物车 功能要求:

要求用户输入总资产,例如:2000 显示商品列表,让用户根据序号选择商品,加入购物车 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。

goods = [

{"name": "电脑", "price": 1999},

{"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998},

]

goods = [

{"name": "电脑", "price": 1999},

{"name": "鼠标", "price": 10},

{"name": "游艇", "price": 20},

{"name": "美女", "price": 998}

]

shopping = {}

while True:

try:

salary = int(input("input your salary: "))

break

except:

continue

if salary < 10:

print("你工资太少了.金额为", salary, "退出吧..老表")

exit()

count = 1

total = 0

while True:

print("You can buy the following items")

for i in range(len(goods)):

print("%s %s %s" % (i + 1, goods[i]["name"], goods[i]["price"]))

choice = input("please choice number or input q exit>>").strip()

if choice.isdigit():

choice = int(choice)

if choice in range(len(goods)+1):

balance = salary - goods[choice -1]["price"]

if balance >= 0:

print("\033[31;1myour bought\033[0m", goods[choice -1]["name"], "\033[31;1mbalance\033[0m", balance, "元")

if len(shopping) > 0:

if goods[choice - 1]["name"] in shopping:

shopping[goods[choice - 1]["name"]][0] += 1

# shopping[goods[choice - 1]["price"]] += goods[choice - 1]["price"]

else:

shopping[goods[choice - 1]["name"]] = [1, goods[choice - 1]["price"]]

else:

shopping[goods[choice-1]["name"]] = [1, goods[choice -1]["price"]]

salary = balance

else:

print("you money", salary, "Differ", balance, "you can try")

else:

continue

elif choice == "q":

if len(shopping) == 0:

print("You didn't buy anything")

else:

print("id 商品 数量 单价 总价")

for i in shopping:

print("%-5d %-8s %-6d %-6d %-6d" % (count, i, shopping[i][0], shopping[i][1], shopping[i][1]*shopping[i][0]))

count += 1

total += shopping[i][1]*shopping[i][0]

print("\033[31;1myour balance\033[0m", total, "元")

exit()

else:

continue

001_02-python基础习题答案的更多相关文章

  1. 从入门到自闭之Python 基础习题训练

    """ name = input(">>>")通过代码来验证name变量是什么数据类型? """ na ...

  2. python 基础习题

    1.8<<2等于? 8 ---> 1000 32 ---> 100000 -----------结果--- 32 2.通过内置函数计算5除以2的余数 print(dir()) ...

  3. python 基础 习题

    1.执行 Python 脚本的两种方式2.简述位.字节的关系 1Byte = 8bits 3.简述 ascii.unicode.utf-8.gbk 的关系 都是字符集,unicode兼容其他3种字符集 ...

  4. 推荐《SQL基础教程(第2版)》中文PDF+源代码+习题答案

    我认为<SQL基础教程(第2版)>非常适合数据库学习的初学者.论述的角度是读者的角度,会换位思考到读者在看到这一段时候会发出怎样的疑问,非常难得:原始数据的例题只有一道,但是可以反复从不同 ...

  5. python基础1习题练习

    python基础1习题练习: #encoding:utf-8 #1.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败! name=input('na ...

  6. Python 基础练习

    今天接触了python,了解了一下 python 的基础语法,于是想着手训练一下,在本习题集中,参考代码为提供的参考答案,前面的代码为自己思考的代码,最后每道题给出练习的时间. Python 基础练习 ...

  7. python基础篇实战

    1. 判断下面的结果 # 1. 判断下面的结果 # 1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 pri ...

  8. python基础之面向对象高级编程

    面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个"函数"供使用(可以讲多函数中公用的变量封装到对象中) ...

  9. Python基础s14-day1

    2016年7月23日"Python基础s14-Day1" Python是什么? Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),是一种面向对象.直译式 ...

随机推荐

  1. postman具体讲解

    postman 简单教程-实现简单的接口测试 最近开始做接口测试了,因为公司电脑刚好有postman,于是就用postman来做接口测试,哈哈哈哈,...postman 功能蛮强大的,还比较好用,下面 ...

  2. Windows 10 host where Credential Guard or Device Guard is enabled fails when running Workstation (2146361)

    To disable Device Guard or Credential Guard on Itanium based computers: Disable the group policy set ...

  3. 【Oracle】Update方法

    1.单表更新 update customers set city_name='山西省太原市' where city_name='山西太原' 2.两表(多表)关联update -- 被修改值由另一个表运 ...

  4. 获取表SQLSERVER 的表结构信息(字段名,长度,精度,类型,NULL,ID,PRI)

    select sys.columns.name, sys.types.name, sys.columns.precision,sys.columns.scale, sys.columns.is_nul ...

  5. Python学习---django之Model语法180124

    django之Model语法[Models] 1    django默认支持sqlite,mysql, oracle,postgresql数据库. <1> sqlite django默认使 ...

  6. 乘风破浪:LeetCode真题_019_Remove Nth Node From End of List

    乘风破浪:LeetCode真题_019_Remove Nth Node From End of List 一.前言 这次总算到了链表的操作了,之后肯定会有排序算法,二叉树,排序树,图等等的操作,现在我 ...

  7. webbench 网站压力测试

    [root@localhost ~]# webbench -c 500 -t 4 http://172.24.61.41/Webbench - Simple Web Benchmark 1.5Copy ...

  8. 如何将本地项目上传至GitHub

    首先你需要一个github账号,所有还没有的话先去注册吧! https://github.com/ 我们使用git需要先安装git工具,这里给出下载地址,下载后一路直接安装即可: https://gi ...

  9. 低版本兼容使用Fragment (转)

    Fragment框架开发东西确实很方便,但是恼人的是从4.0才开始支持.以前的版本必须用兼容模式开发,本人在网上找了大量资料,终于找到些线索正常运行于2.1版本的安卓系统.现在浅说一下兼容版本使用Fr ...

  10. C++中在子类实现父类的方法调用