首页 > 代码库 > week2 作业
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("总金额必须是数字且不能为空!")
week2 作业