python習題
阿新 • • 發佈:2017-06-11
子列 後退 刪除列 git 添加 break 移除 spl div
#習題1 #a:實現用戶輸入用戶名和密碼,當用戶名為seven且密碼為123時,顯示登錄成功,否則登錄失敗! while 1: name = input(‘請輸入用戶名: ‘) psw = input(‘請輸入密碼: ‘) if name == ‘seven‘ and psw == ‘123‘: print(‘登陸成功‘) break else: print(‘登陸失敗‘) break #b實現用戶輸入用戶名和密碼,當用戶名為seven且密碼為123時,顯示登錄成功,否則登錄失敗,失敗時允許重復輸入三次count=1 while count <= 3: name = input(‘請輸入用戶名: ‘) psw = input(‘請輸入密碼: ‘) if name == ‘seven‘ and psw == ‘123‘: print(‘登陸成功‘) break else: print(‘登錄失敗‘) count+=1 continue #c實現用戶輸入用戶名和密碼,當用戶名為seven或alex且密碼為123時,顯示登錄成功,否則登錄失敗,失敗時允許重復輸入三次 count=1 whilecount <= 3: name = input(‘請輸入用戶名: ‘) psw = input(‘請輸入密碼: ‘) if name == ‘seven‘ and psw == ‘123‘: print(‘登陸成功‘) break elif name == ‘alex‘ and psw == ‘123‘: print(‘登陸成功‘) break else: print(‘登錄失敗‘) count+=1 continue #習題2 #a使用while循環實現輸出2-3+4-5+6...+100的和 res=0 count=2 while count <= 100: if count%2 == 1: res-=count else: res+=count count+=1 print(res) #b使用for循環和range實現輸出1-2+3-4+5-6...+99的和 res=0 for i in range(1,100): if i%2== 1: res+=i else: res-=i i+=1 print(res) #c使用while循環實現輸出1,2,3,4,5 7,8,9 11,12 res=1 while res <=12: if res == 6 or res ==10: res+=1 continue print(res) res+=1 #d使用while循環實現輸出1-100內的所有奇數 res=1 while res <= 100: if res%2 == 1: print(res) else: res+=1 continue res+=1 #e使用while循環實現輸出1-100內的所有偶數 res=1 while res <=100: if res%2 == 0: print(res) else: res+=1 continue res+=1 #練習三 #a移除name變量對應的值的兩邊的空格,並輸入移除有的內容 # name=‘alex‘ # print(name.strip()) #b判斷name變量對應的值是否以"al"開頭,並輸出結果 # name=‘alex‘ # print(name.startswith(‘al‘)) #True #c判斷name變量對應的值是否以"x"結尾,並輸出結果 # name=‘alex‘ # print(name.endswith(‘x‘)) #True #d將name變量對應的值中的"l"替換為"p",並輸出結果 # name=‘alex‘ # print(name.replace(‘l‘,‘p‘)) # e.將name變量對應的值根據"l"分割,並輸出結果 # name=‘alex‘ # print(name.split(‘l‘)) # f.請問,上一題e分割之後得到的值是什麽類型 # name=‘alex‘ # print(type(name.split(‘l‘))) # g.將name變量對應的值變大寫,並輸出結果 # name=‘alex‘ # print(name.upper()) # h.將name變量對應的值變大小寫,並輸出結果 # name=‘alex,ALex‘ # print(name.upper()) # print(name.lower()) # i.請輸出name變量對應的值的第2個字符? # name=‘alex‘ # print(name[1]) # j.請輸出name變量對應的值的前3個字符? # name=‘alex‘ # print(name[0:3]) # k.請輸出name變量對應的值的後2個字符? # name=‘alex‘ # print(name[-2:]) # l.請輸出name變量對應的值中"e"所在的索引位置? # name=‘alex‘ # print(name.find(‘e‘)) #練習四:寫代碼,有如下列表,按照要求實現每一個功能 # li = [‘alex‘,‘eric‘,‘rain‘] # a.計算列表長度並輸出 # print(len(li)) # b.列表中追加元素"seven",並輸出添加後的列表 li.append(‘seven‘) 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個元素,並輸出刪除元素後的列表 li.pop(2) print(li) # h.請刪除列表中的第2至4個元素,並輸出刪除元素後的列表 li = [‘alex‘,‘eric‘,‘rain‘,‘lina‘] del li[1:5] print(li) # i.請將列表所有的元素反轉,並輸出反轉後的列表 li.reverse() print(li) #*豎三角形 l=‘*‘ for i in range(1,10): print(i*l) #*倒豎三角 #方法1 l=‘*‘ i=9 while i > 0: print(i*l) i-=1 #方法2 for i in range(1,12): for j in range(1,12-i): print(‘*‘,end=‘‘) print() #取出列表中的名字,年齡,出生的年,月,日 data=[‘alex‘,49,[1900,3,18]] print(data[0],data[1],data[2][0],data[2][1],data[2][2]) #去掉重復 names=[‘egon‘,‘alex‘,‘egon‘,‘wupeiqi‘] print(list(set(names))) #去掉重復,且保證列表順序與原來保持一致 names=[‘egon‘,‘alex‘,‘egon‘,‘wupeiqi‘] res=[] for i in names: if i not in res: res.append(i) print(res) #去掉重復,且保證列表順序與原來保持一致 names=[[1,2],3,[1,2],4] res=[] for i in names: if i not in res: res.append(i) print(res) #統計s=‘hello alex alex say hello sb sb‘中每個單詞的個數 s=‘hello alex alex say hello sb sb‘ l=(list(s.split(‘ ‘))) s1=set(l) for i in s1: print(i,l.count(i)) #練習一: # if True or False and False: # print(‘yes‘) # else: # print(‘no‘) #輸出結果為?為什麽? # 輸出結果為yes,因為 False and False = False,True or False = True # if (True or False) and False: # print(‘yes‘) # else: # print(‘no‘) #輸出結果為?為什麽? # 輸出結果為no,因為 True or False = True , True and False = False #練習二:編寫if多分支,猜老男孩的年紀 oldbpy_age=67 while True: age=input(‘請輸入老男孩的年紀: ‘) age=int(age) if age == oldbpy_age: print(‘恭喜你猜對了‘) break elif age < oldbpy_age: print(‘猜小了,傻逼‘) continue else: print(‘猜大了傻逼‘) #練習三:用戶輸入用戶名密碼驗證,驗證通過後進入子循環,輸入命令,命令若為q,則退出所有循環 tag=True while tag: name = input(‘請輸入用戶名: ‘) psw = input(‘請輸入密碼: ‘) if name == ‘sam‘ and psw == ‘123‘: print(‘登陸成功‘) else: print(‘請重新輸入: ‘) continue while tag: cmd = input(‘請輸入命令(q退出): ‘) if cmd ==‘q‘: tag = False else: print(‘輸入的命令為: ‘,cmd) continue #練習四:循環取出元組中所有元素:方式一:while和for(按照索引),方式二:不按照索引的方式 t=(1,2,3,4,5,6,7,8,9) s=0 while s < len(t): print(t[s]) s+=1 t=(1,2,3,4,5,6,7,8,9) for i in t: print(t[i-1]) # # 方式二、 for i in t: print(i) #練習五:循環讀取列表以及子列表中所有元素 l=[1,2,[3,4],[5,6]] for i in l: # print(i) if type(i) == list: for j in i: print(j) else: print(i) #練習六:打印 ‘‘‘ * *** ***** ******* ‘‘‘ l=‘*‘ for j in range(1,8,2): l1 = j*l print(l1.center(7,‘ ‘)) #練習七:打印 ‘‘‘ ***** *** * ‘‘‘ l=‘*‘ l1=6 for i in range(1,6,2): l2=(6-i)*l print(l2.center(5,‘ ‘)) #練習八:打印 ‘‘‘ * ** *** **** ***** ‘‘‘ l=‘*‘ for i in range(1,6): l1=i*l print(l1.ljust(5,‘ ‘)) #練習九:打印 ‘‘‘ ****** ***** **** *** ** * ‘‘‘ for i in range(1,7): for j in range(1,8-i): print(‘*‘,end=‘‘) print() #練習十:編寫登陸接口 # 基礎需求: # 讓用戶輸入用戶名密碼 # 認證成功後顯示歡迎信息 # 輸錯三次後退出程序 res=1 while res<=3: name=input(‘請輸入用戶名: ‘) psw = input(‘請輸入密碼: ‘) if name == ‘sam‘ and psw == ‘123‘: print(‘登陸成功‘) break else: print(‘登陸失敗,請重新登錄‘) res+=1 continue #數據類型練習題: 練習一:有十進制數n=10 轉成二進制 轉成八進制 轉成十六進制 n=10 print(bin(n)) #二進制 print(oct(n)) #八進制 print(hex(n)) #十六進制 #練習二:與用戶交互,要求用戶輸入年齡和薪資,將用戶輸入的年齡轉成整形,將用戶輸入的薪資轉成浮點型 res =1 while res <2 : nl=input(‘請輸入年齡: ‘) nl=int(nl) xz=input(‘請輸入薪資: ‘) xz=float(xz) print(type(nl)) print(type(xz)) res+=1 #練習三: ‘‘‘ 用戶輸入用戶名,年紀,工作,愛好,格式化輸出如下內容(使用%s和format兩種方式) ------------ info of Alex Li ----------- Name : Alex Li Age : 22 job : Teacher Hobbie: girl ------------- end ----------------- ‘‘‘ # 方式一 l=‘Name:{},Age:{},Job:{},Hobbie:{}‘ for i in range(1,2): name=input(‘請輸入用戶名: ‘) age=input(‘請輸入年紀: ‘) job=input(‘請輸入工作: ‘) hobbie=input(‘請輸入愛好: ‘) # l=l.format(name,age,job,hobbie) print(name.center(30,‘-‘)) print(‘Name: %s\nAge: %s\nJob: %s\nHobbie: %s‘%(name,age,job,hobbie)) e=‘end‘ print(e.center(30,‘-‘)) #方式二 l=‘Name:{z},Age:{x},Job:{c},Hobbie:{v}‘ e=‘end‘ name=input(‘請輸入用戶名: ‘) age=input(‘請輸入年紀: ‘) job=input(‘請輸入工作: ‘) hobbie=input(‘請輸入愛好: ‘) l=l.format(z=name,x=age,c=job,v=hobbie) l1=list(l[0:].split(‘,‘)) print(name.center(30,‘-‘)) for i in l1: print(i) print(e.center(30,‘-‘)) #練習四: s=‘alex say hello‘ 切片取出第say print(s[5:8]) 切片取出倒數後兩個字符 print(s[-2:]) #練習五: # 編寫循環,讓用戶輸入年紀,如果輸入為空,或者不為數字,則重新輸入 while True: age = input(‘請輸入年紀: ‘) if age.isspace() == True or age.isdigit() == False: print(‘請重新輸入‘) continue else: print(‘您的年紀是:‘,age) break #練習六: # 用列表模擬上電梯的流程(隊列) # 循環生成一個1000個值的列表(入隊) # 循環取走這個1000個值(出隊) l=[] for i in range(1,1001): l.append(i) print(l) for j in range(1,1001): print(l.pop(0)) # 用列表模擬把衣服放箱子裏,然後取衣服的流程(堆棧) # 循環生成一個1000個值的列表(入棧) # 循環取走這個1000個值(出棧) l=[] for i in range(1,1001): l.append(i) print(l) for j in range(1,1001): print(l.pop()) #練習七: dicta={‘a‘:1,‘b‘:2,‘c‘:3,‘d‘:‘hello‘} dictb={‘b‘:3,‘c‘:2,‘d‘:‘world‘,‘f‘:10} 兩字典相加,不同的key對應的值保留,相同的key對應的值相加後保留,如果是字符串就拼接(字符串拼接‘hello‘+‘world‘得‘helloworld‘) {‘a‘: 1, ‘b‘: 5, ‘c‘: 5, ‘d‘: ‘helloworld‘, ‘f‘: 10} dictc=dicta for i in dictb: if i in dictc: dictc[i]=dictb[i]+dictc[i] else: dictc[i]=dictb[i] print(dictc)
python習題