week2 作业

1.执行python脚本的两种方式:

答:1、./run.py.shell直接调用python脚本

2、python run.py 调用python 解释器来调用python脚本

5.python单行注释和多行注释分别是什么?

答:单行注释用#,多行注释用三引号

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

答:1.变量名只能是数字、字母、下划线的任意组合

2.变量名的第一个字符不能为数字

3.python关键字不能用作变量名

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

答:用id(变量名) 即可查看变量在内存中的地址

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

答:pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,py文件是可以直接看到源码的,所以就需要编译为pyc后,再发布出去,实现部分源码的隐藏.

10.写代码

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

name=input("请输入用户名:").strip()
pwd=input("请输入密码:").strip()
if name=="seven" and pwd=="123":
    print("登陆成功")
else:
    print("登陆失败")

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

count=0
while count<3:
    count+=1
    name=input("请输入用户名:").strip()
    pwd=input("请输入密码:").strip()
    if name=="seven" and pwd=="123":
      print("登陆成功")
      break
    else:
        print("登陆失败")
        continue

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

count=0
while count<3:
    count+=1
    name=input("请输入用户名:").strip()
    pwd=input("请输入密码:").strip()
    if name=="seven"or name=="alex" and pwd=="123":
      print("登陆成功")
      break
    else:
        print("登陆失败")
        continue

11.写代码

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

count=1
s=0
while count<100:
    count+=1
    s+=(-1)**count*count
print(s)

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

s=0
for i in range(1,100):
    s+=-(-1)**i*i
print(s)

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

count=0
while count<12:
    count+=1
    if count==6 or count==10:
        continue
    print(count,end=" ")

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

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

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

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

11.分别书写数字5,10,32,7的二进制

#5=2**2+2**0
#5对应的二进制为 101
print(bin(5))

#10=2**3+2**1
#10对应的二进制为1010
print(bin(10))

#32=2**5
#32对应的二进制为100000
print(bin(32))

#7=2**2+2**1+2**0
#7对应的二进制 111
print(bin(7))

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

n1=123

n2=123

答: n1和n2的id(内存地址) 值 和type都相等

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

n1=123456

n2=123456

答:n1和n2的id(内存地址)不等 type不同,值相同,分别指向两个相同的数值123456

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

n1=123456

n2=n1

答:n1和n2的id(内存地址) 值 和type都相等

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

n=5
print(n.bit_length())

18.布尔值分别有什么?

答:布尔值有True和False

19.阅读代码,写出执行结果:

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

答:alex  Alex

20.写代码,有如下代码,按要求实现每个功能:

name=" aleX"

__author__ = ‘Administrator‘
name=" aleX"
#a.移除两边对应的空格,并输入移除后的内容
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中分割之后的值是什么类型
print(type(name.split("l")))
#g.将name变量对应的值变为大写,并输出值
print(name.upper())
#h.将name变量对应的值变为小写,并输出值
print(name.lower())
#i请输出name变量对应的值的第二个字符
print(name[1])
#j请输出name变量对应的值的前3个字符
print(name[:3])
#k请输出name变量对应的值的后2个字符
print(name[-2:])
#l 请输出name变量对应的值中”e“所在的索引位置
print(name.index("e"))

 

21.字符串是否可以迭代,如果可以请使用否循环迭代每一个元素。

答:可以的

a="abcdefg"
for i in range(len(a)):
    print(a[i])

22.写代码,按要求实现功能

__author__ = ‘Administrator‘
li=["alex","erin","rain","aa","bb","cc"]
#a.计算列表的长度并输出
print(len(li))
#b.列表中追加元素”seven“,并输出添加后的列表
li.append("seven")
print(li)
#c.请在列表的第一个位置插入元素”tony“,并输出添加后的列表
li.insert(0,"Tony")
print(li)
#d.请修改列表第二个元素为"kelly",并输出修改后的列表
li[1]="kelly"
print(li)
#e.请删除列表中的”eric“,并输出修改后的列表
li.remove("erin")
print(li)
#f.删除列表的第二个元素,并输出删除的元素和删除后的列表
aa=li.pop(1)
print(aa)
print(li)
#g请删除列表中的第三个元素,并输出删除后的列表
li.pop(2)
print(li)
#h.请删除列表中的第2-4个元素,比输出删除后的列表
li.pop(1)
li.pop(1)
li.pop(1)
print(li)
#i将列表所有元素反转,并输出反转后的列表
li.reverse()
print(li)
#j请使用for in range 输出列表的索引
for i  in range(len(li)):
    print(i)
#k请使用enumberate输出列表元素和序号(序号从100开始)
for i,j in enumerate(li,start=100):
    print(i,j)
#l请使用for循环输出所有元素
for i in  li:
    print(i)

23.写代码,按要求实现功能:

li=["hello","seven",["moon",["h","kelly"],"all"],123,456]

__author__ = ‘Administrator‘
li=["hello","seven",["moon",["h","kelly"],"all"],123,456]
#a.请输出kelly
print(li[2][1][1])
#b.请使用索引找到”all”元素,并将其修改为“ALL”
print(li[2][2].upper())

)

24.写代码,有下面元组.按要求实现功能

__author__ = ‘Administrator‘
tu=("alex","eric","rain")
#a.计算元组长度并输出
print(len(tu))
#b.获取元组的第二个元素,并输出
print(tu[1])
#c.获取元组的第1-2个元素,并输出
print(tu[:2])
#d.请使用for循环输出元组的元素
for i in tu:
    print(i)
#e.请使用 for len range 输出元组的索引
for i in range(len(tu)):
    print(i)
#f使用enumberate输出元组的元素和序号。序号从10开始
for i,j in  enumerate(tu,10):
    print(i,j)

25 有如下元组,按要求实现以下功能

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

a.讲述元组的特性:

答:1、有序的集合,可以存放多个值

2、通过偏移来取数据

3、属于不可变的对象,不能在修改内容

b.元组里的第一个元素alex可以不可以修改?

答:不可以修改

C.tu中的元素k2对应的值是什么类型,可不可以修改,如果能修改,则向其添加一个元素seven。

答:k2对应的值是list(列表).可以修改

tu=("alex",[11,22,{"k1":"v1","k2":["age","name"],"k3":(11,22,33)},44])
print(tu[1][2]["k2"])
print(type(tu[1][2]["k2"]))
tu[1][2]["k2"].append("seven")
print(tu)

d.tu中的元素k3对应的值是什么类型,可不可以修改,如果能修改,则向其添加一个元素seven。

答:k3对应的值类型是元组,不可以修改

26字典

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

__author__ = ‘Administrator‘
dic={"k1":"v1","k2":"v2","k3":[11,22,33]}
#a.请循环输出所有key
for k in  dic:
    print(k)
#b.请循环输出所有value
for v in dic.values():
    print(v)
#c.请循环输出所有key,value
for k,v in dic.items():
    print(k,v)
#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对应的值的第一个位置插入18,输出修改后的字典
dic["k3"].insert(0,18)
print(dic)

 

27 转换

#1.将字符串s=”alex”,转换成列表

s="alex"
l=list(s)
print(l)

#2.将字符串s=”alex”,转换成元组

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

#3.将列表li=[“selx”,”seven”]转换成元组

l=["alex","seven"]
t=tuple(l)
print(t)

#4.将元组tu=(“alex”,”seven”)转换成列表

t=("alex","seven")
l=list(t)
print(l)

#5..将列表li=[“selx”,”seven”]转换成字典且字典的key按照10开始向后递增

l=["alex","seven"]
d={}
for i,j in enumerate(l,start=10):
    d[i]=j
print(d)

28.求1-100所有的和

s=0
for i in range(1,101):
     s+=i
print(s)

29.元素分类

有如下集合[11,22,33,44,55,66,77,88,99],将大于66的放在集合的第一个key中,小于66的放在集合的第二个key中

l=[11,22,33,44,55,66,77,88,99]
d={"k1":[],"k2":[]}
for i in l:
    if i>66:
        d["k1"].append(i)
    elif i<66:
        d["k2"].append(i)
print(d)

30.购物车

功能要求:

要求用户输入总资产:如2000

显示商品列表;用户按序号选择商品,加入购物车

购买,如果商品总金额大于总资产.则提示余额不足,否则购买成功

__author__ = ‘Administrator‘
goods=[
{"name":"电脑","price":1999},
{"name":"鼠标","price":10},
{"name":"游艇","price":20},
{"name":"美女","price":998}
]
print("电脑" in goods)
good_d={}
good_l=[]
tag=True
while tag:
    allmoney=input("请输入总资产:").strip()
    if allmoney.isdigit():
        for good in  goods:
            print("name:{name} price:{price}".format(name=good["name"],price=good["price"]))
            good_d[good["name"]]=good["price"]
        while tag:
            name=input("请输入要购买商品的名字:")
            if len(name)==0 or name not in good_d:
                print("输入错误。请重新输入:")
                continue
            else:
                while tag:
                    count=input("请输入要购买商品的件数:").strip()
                    if count.isdigit():
                        allprice=good_d[name]*int(count)
                        if allprice<=int(allmoney):
                            good_l.append((name,good_d[name],count))
                            allmoney=int(allmoney)- allprice
                            print(good_l)
                            break
                        else:
                            print("你的余额不足,请重新选择商品")
                            cmd=input("请输入命令,输入Y表示继续购物,输入N表示退出结账")
                            if cmd=="Y":
                                break
                            elif cmd=="N":
                                tag=False
                            else:
                                print("输入命令有误")
                    else:
                        print("输入有误。请重新输入:")
                        continue

    else:
        print("总金额必须是数字且不能为空!")
时间: 2024-11-06 15:38:03

week2 作业的相关文章

《Linux内核分析》 week2作业-时间片轮转

一.基于时间片轮转调度代码的解读 代码结构主要由三个文件组成: 1.mypcb.h 2.myinterrupt.c 3.mymain.c 1.进程控制块(mypcb.h) /* CPU-specific state of this task */ struct Thread{ unsigned long ip; //eip,程序入口地址 unsigned long sp; //堆栈esp栈顶地址 }; typedef struct PCB{ int pid; //进程pid号 volatile

个人博客作业Week2 是否需要有代码规范

问题:是否需要有代码规范 对于是否需要有代码规范,请考虑下列论点并反驳/支持: 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 2.我是个艺术家,手艺人,我有自己的规范和原则. 3.规范不能强求一律,应该允许很多例外. 4.我擅长制定编码规范,你们听我的就好了. 声明一下,老师所给的最后一篇文章的链接无法打开,因此就第一篇.第二篇文章以及自己所查到的资料来进行说明. 正文: 在谈如上四个问题之前,第一个需要搞明白的问题是何为代码规范.在第一篇文章中,作者

个人作业-week2:关于微软必应词典的案例分析

第一部分 调研,评测 评测基于微软必应词典Android5.2.2客户端,手机型号为MI NOTE LTE,Android版本为6.0.1. 软件bug:关于这方面,其实有一些疑问.因为相对于市面上其他的词典应用,这个软件的bug实在是是是太多了.(甚至怀疑这个软件不更新是专门作为软工作业的...) 下面就一一列举: 拍照取词功能.这个功能我试过扫描电子图片上很大的英文单词和纸质试卷上的单词,都无法使用.前者是提示翻译错误(有一次报了java的错误),后者的结果是“没有识别到文字”.我也试了有道

个人博客作业Week2

代码规范: 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 代码规范的产生并不是由于官僚制度,更不会浪费大家的编程时间,有统一的代码规范,才有程序员们工作的依据,才能提高程序员们工作的效率.也许在自己写程序的时候,代码规范会浪费一定的时间.但在团队工作中,代码规范则是必不可少的东西,有了代码规范才能让整个团队有统一的依据来编写程序,从而提高团队的效率及每个人代码的可读性. 2.我是个艺术家,手艺人,我有自己的规范和原则. 自己的规范和原则在编写程序方面是

#个人博客作业week2——结对编程伙伴代码复审

General 1.程序能够顺利地运行.程序通过命令行输入,能够向对应的文件中输出符合要求的题目和答案.程序能够根据用户的不同选择,进行题目的生产或答案的校验,生成出的题目符合参数要求和项目的查重等各种要求,答案校验准确迅速. 2.代码逻辑清晰,没有令人难以理解的部分. 3.他的编码风格与我相似,大括号的使用让我能很清楚地划分模块.变量名很函数名的命名做到了”望文生义“. 4.阅读过程中没有发现冗余重复多余的代码,项目中没有任何一个部分注释掉代码. 5.代码模块化十分清晰,主要分为了表达式,分数

个人博客作业-Week2 (代码规范, 代码复审)

代码规范: 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 编码规范它包含了代码格式,还包括了编码风格和其他规范,通常涉及:缩进.空格使用.Tab使用 注释.命题习惯.代码行长度和语言特点风格,从而使大家能够很方便得互相阅读对方的代码从而促进 团队中的沟通与交流.不是浪费时间. 2.我是个艺术家,手艺人,我有自己的规范和原则. 艺术家的表现层次如果只是在规范上面,显然不是个优秀的艺术家,通过大家都容易接受的方式可以 让自己的创造力更好得表现出来. 3.规

个人博客作业Week2(9月30日)

一.是否需要有代码规范 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 这些规范并不是一开始就有的,也不是由某个人规定的,代码规范是程序员们在不断地编程实践过程中自发地形成的一种共识,这种共识的出发点是团队开发效率.代码可读性与可重用性.所以我们应该理解并提高对自己编码的要求,使自己的编码有良好的风格,符合团队对编码的规范. 作为团队中的一员,我们必须遵循团队的代码规范,这样你的代码可以被团队中其他队员很好地理解,代码可以被团队共享.而如果不遵循代码规范

个人作业-Week2

第一部分  调研, 评测 运行平台 win 8 软件版本:微软必应词典桌面版 3.5.2 BUG标题:必应背单词无法发音 BUG详细描述:如图,左边为必应词典该单词的搜索,可以发音,而右边必应背单词中该单词的发音按钮点击无反应.注:在win7的舍友的电脑上能够正常发音... BUG严重程度:一般 BUG优先级:重要不紧急 BUG类型:功能错误 BUG标题:单词挑战加入生词本错误 BUG详细描述:当在单词挑战中遇到句子的时候,如点击添入生词本,则依然会将该句子添入生词本,并且作为一个单词出现,同时

个人作业—Week2:微软必应词典案例分析

调研.评测 bug报告: 标题:Window 10版必应词典客户端口语练习功能无法使用 环境:Window 10, 微软必应词典(UWP) 版本2.6.1.0,屏幕无重力感应模块 重现步骤: 1)     打开微软必应词典 2)     点击左侧菜单栏中的口语练习 结果:产生名为“微软小英-微软必应词典”的新窗口,窗口中显示:“为了更好的体验,请使用竖屏”.无法在保持横屏状态使用该功能. 预期结果: 1)     窗口提示:横屏状态下无法使用该功能,PC无法使用该功能 2)     允许用户跳过