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=0while 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=0while 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=1s=0while count<100: count+=1 s+=(-1)**count*countprint(s)
b.使用for循环和range实现1-2+3-4+5-6...+99的和
s=0for i in range(1,100): s+=-(-1)**i*iprint(s)
C.使用while循环输出1,2,3,4,5 7,8,9 11,12
count=0while count<12: count+=1 if count==6 or count==10: continue print(count,end=" ")
d.使用while循环输出1-100内的所有基数
count=0while count<100: count+=1 if count%2!=0: print(count)
e.使用while循环输出1-100内的所有偶数
count=0while count<100: count+=1 if count%2==0: print(count)
11.分别书写数字5,10,32,7的二进制
#5=2**2+2**0#5对应的二进制为 101print(bin(5))#10=2**3+2**1#10对应的二进制为1010print(bin(10))#32=2**5#32对应的二进制为100000print(bin(32))#7=2**2+2**1+2**0#7对应的二进制 111print(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.请输出kellyprint(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.请循环输出所有keyfor k in dic: print(k)#b.请循环输出所有valuefor v in dic.values(): print(v)#c.请循环输出所有key,valuefor 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]=jprint(d)
28.求1-100所有的和
s=0for i in range(1,101): s+=iprint(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
显示商品列表;用户按序号选择商品,加入购物车
购买,如果商品总金额大于总资产.则提示余额不足,否则购买成功
goods=[ {"name":"电脑","price":1999}, {"name":"鼠标","price":10}, {"name":"游艇","price":20}, {"name":"美女","price":998} ] good_d={} good_l=[] tag=True flag=True while tag: allmoney=input("请输入总资产:").strip() if allmoney.isdigit(): for good in goods: print("{}.name:{name} price:{price}".format(goods.index(good)+1,name=good["name"],price=good["price"])) good_d[goods.index(good)+1]=[good["name"],good["price"]] while tag: number=int(input("请输入要购买商品的序号:").strip()) if not number or number not in good_d: print("输入错误。请重新输入:") continue else: flag=True while flag: count=input("请输入要购买商品的件数:").strip() if count.isdigit(): allprice=good_d[number][1]*int(count) if allprice<=int(allmoney): good_l.append((good_d[number][0],good_d[number][1],count)) allmoney=int(allmoney)- allprice print("你的余额为",allmoney) print(good_l) break else: print("你的余额不足,请重新选择商品") while True: cmd=input("请输入命令,输入Y表示继续购物,输入N表示退出结账") if cmd=="Y": flag=False break elif cmd=="N": flag=False tag=False break else: print("输入命令有误") continue else: print("输入有误。请重新输入:") continue else: print("总金额必须是数字且不能为空!")