day1_17-9-3,

來源:互聯網
上載者:User

day1_17-9-3,
一、應用練習1.需求練習

編寫登陸介面

要求:

  • 讓使用者輸入使用者名稱密碼
  • 認證成功後顯示歡迎資訊
  • 輸錯三次後退出程式
#!/usr/bin/env python#coding:utf-8time=0data={ 'zhangsan':{'ps':'zs123'}, 'lisi':{'ps':'ls123'},}while time < 3: name = input('請輸入姓名:') if not name in data: print('無此使用者') continue password = input('請輸入您的密碼:') if password == data[name]['ps']: print('Log in successfully') else: print('使用者名稱或密碼錯誤') time+=1else: print('超過最大次數')代碼

 

升級需求 

  • 可以支援多個使用者登入 
  • 使用者3次認證失敗後,退出程式,再次啟動程式嘗試登入時,還是鎖定狀態
#儲存使用者data={ 'zhangsan':{'ps':'zs123'}, 'lisi':{'ps':'ls123'}}#開啟同目錄下名字為user的檔案(唯讀),#把讀到的內容給變數#正查關閉檔案us1=open('user','r')name=us1.read()us1.close()time=0while time < 3: user=input('your name >>> ') if not user:continue if user in name : print('The account!') break #輸入的名字等於在檔案裡讀取到的內容則告訴使用者為鎖定狀態,並推出迴圈。 elif not user in data: print('Without this user\n') continue #如果輸入的名字不等於已知的使用者名稱,告訴使用者後跳出本次迴圈。 else: passwod = input('password >>> ') if passwod == data[user]['ps']: print('Log in successfully') exit() #如果密碼對的話,正常登陸後退出指令碼 else: print('User name or password error!\n') time+=1 #密碼輸入錯誤,告訴使用者並重新輸入使用者名稱密碼,紀錄次數else: print('超過最大次數,請聯絡管理員') record=open('user','a') record.write('%s\n'%user) record.close() exit() #達到三次後告訴使用者並開啟user檔案追加已經輸入3次的使用者名稱後正常關閉檔案。代碼

 流程圖如下:

2.日常練習

 簡述編譯性與解釋型語言的區別,且分別列出你知道的那些語言屬於編譯型,哪些屬於解釋型?

編譯型語言為一次行讀入所有內容,一次性執行所有內容優點:執行速度快,等同條件下對系統要求較低缺點:不方便代碼測試、排錯,調試不方便編譯型語言套件括:C/C++、Pascal/Object Pascal(Delphi)解釋型語言為逐行翻譯行,一行一行執行優點:方便代碼的調試,及時發現問題及時解決缺點:執行速度相對編譯性語言慢解釋型語言套件括:python、Java、C#、JavaScript、VBScript、Perl、Ruby、MATLAB偏見

 

執行 Python 指令碼的兩種方式是什嗎?

shell模式運行適合指令碼中某段代碼的調試;利用解譯器運行,python的功能最全,官方推薦。

 

Pyhton 單行注釋和多行注釋分別用什麼?

單行注釋用"#",多行注釋用三引好"'''"或四引號""""""

 

布爾值分別有什麼?

True和False,真或假

 

聲明變數注意事項有那些?

1、變數名職能包含字母、數字和底線。變數名可以字母或底線打頭,但不能以數字打頭。例:1_agent是錯誤的方式,應該寫為 agent_1。2、變數名不能包含空格,但可使用底線來分割其中的單詞。例:installed apps 這樣會引起錯誤,正確的方式為installed_apps。3、Python關鍵字喝函數名不能用做變數,即不可以使用Python保留用於特殊用途的單詞。4、慎用小寫字母l喝大寫字母O,可能被人錯看成數字1和0。5、變數名應既簡短又具有描述性。注意事項

 

如何查看變數在記憶體中的地址?

print(id(x))

 

3.代碼練習

實現使用者輸入使用者名稱和密碼,當使用者名稱為 seven 且 密碼為 123 時,顯示登陸成功,否則登陸失敗!

name='seven'ps=123user=input('輸入使用者名稱: ')password=input('輸入密碼: ')#print(type(ps),type(password))if user==name and int(password)==ps: print('登陸成功')else: print('登陸失敗')代碼

 

實現使用者輸入使用者名稱和密碼,當使用者名稱為 seven 且 密碼為 123 時,顯示登陸成功,否則登陸失敗,失敗時允許重複輸入三次。

name='seven'ps=123time=0while time < 3: user = input('輸入使用者名稱: ') password = input('輸入密碼: ') if user==name and int(password)==ps: print('登陸成功') else: print('登陸失敗') time+=1代碼

 

實現使用者輸入使用者名稱和密碼,當使用者名稱為 seven 或 alex 且 密碼為 123 時,顯示登陸成功,否則登陸失敗,失敗時允許重複輸入三次。

data={ 'seven':{'ps':'123'}, 'alex':{'ps':'123'}}time=0while time < 3: user = input('輸入使用者名稱: ') password= input('輸入密碼: ') if user in data and password==data[user]['ps']: print('登陸成功') else: print('登陸失敗') time+=1代碼

 

使用while迴圈實現輸出2-3+4-5+6...+100 的和。

i=2n=0while i <=100: if i%2==0: n+=i else: n-=i i+=1 print(n)代碼 while實現

 

使用 while 迴圈實現輸出 1,2,3,4,5, 7,8,9, 11,12;使用 while 迴圈實現輸出 1-100 內的所有奇數;使用 while 迴圈實現輸出 1-100 內的所有偶數。

#while迴圈固定數i=1while i<13: if i==6 or i==10: i+=1 continue print(i) i+=1#while迴圈奇數i=1while i<=100: if i%2==1: print(i) i+=1#while迴圈偶數i=1while i<=100: if i%2==0: print(i) i+=1代碼

 

現有如下兩個變數,請簡述 n1 和 n2 是什麼關係?

      n1 = 123456

      n2 = n1

公用一個記憶體(id號想等)的兩個變數print(id(n1),id(n2))

 

 

二、格式化輸出練習

要求:

練習:使用者輸入姓名、年齡、工作、愛好 ,然後列印成以下格式------------ info of Egon -----------Name : EgonAge : 22Sex : maleJob : Teacher ------------- end -----------------練習1

代碼:

#!/usr/bin/env python
# coding:utf-8
name=input('your name >>> ')age=input('your age >>> ')sex=input('your sex >>> ')job=input('your job >>> ')print('------------ info of Egon -----------\n'      'name\t:  %s\n'      'age \t:  %s\n'      'sex \t:  %s\n'      'job \t:  %s\n'      '------------- end -----------------'      % (name, age, sex, job))

效果:

 

三、while迴圈練習3.1 while迴圈嵌套等練習:#要求如下 1 迴圈驗證使用者輸入的使用者名稱與密碼 2 認證通過後,運行使用者重複執行命令 3 當使用者輸入命令為quit時,則退出整個程式 練習1

代碼:

#!/usr/bin/env python
# coding:utf-8

data={
'zhangsan':{'ps':'zs123'},
'lisi':{'ps':'ls123'}
}
cond=True
while cond:
name=input('your name >>> ')
if not name in data:
print('Incorrect account entry!\n')
continue
passwod=input('your password >>> ')
if passwod==data[name]['ps']:
print('Log in successfully\n')
while cond:
cmd=input('shell # ')
if not cmd:continue
if cmd=='quit':
cond=False
continue
else:
print(cmd)
else:
print('User name or password error!\n')


效果:

3.2 迴圈練習

3.2.1、使用while迴圈輸出1 2 3 4 5 6     8 9 10 。

num=1 while num < 11: if num == 7: num+=1 continue print(num) num+=1 代碼

 

 

3.2.2、求1-100的所有數的和。

a=1 i=0 while a <= 100 : i+=a # i=i+a a+=1 print(i) 代碼

 

 

3.2.3、輸出 1-100 內的所有奇數;輸出 1-100 內的所有偶數。

#奇數num=0 while num < 101: if num % 2 == 1: print(num) num+=1 #  偶數num=0 while num < 101: if num % 2 == 0: print(num) num+=1 代碼

 

 

3.2.4、求1-2+3-4+5 ... 99的所有數的和。

#while迴圈 num=0 i=0 while i < 100: if i%2==0: num-=i else: num+=i i+=1 print(num) #For num=0 for i in range(100): if i % 2 == 0: num = num - i else: num = num + i print(num) ###rslt=0 for n in range(1,100): rslt += n*(-1,1)[n&1] print(rslt) 代碼

 

 

3.2.5、使用者登陸(三次機會重試)。

data={ 'zhangsan':{'ps':'zs123'}, 'lisi':{'ps':'ls123'} } time=0 while time<3: name = input('your name >>> ') if not name in data: print('沒有此使用者\n') continue passwd = input('your password >>> if passwd == data[name]['ps']: print('登陸成功!') exit() else: print('使用者名稱或密碼錯誤!\n') time+=1 else: print('超出最大登陸次數') 代碼

 

 

3.2.6、猜年齡遊戲

要求:

    允許使用者最多嘗試3次,3次都沒猜對的話,就直接退出,如果猜對了,列印恭喜資訊並退出。

age=36 i=0 while i<3: user_age=input('Please guess the age > ') #print(type(age),type(user_age)) if user_age == str(age): print("That's right. That's good!") exit() else: print('Guess wrong!') i+=1 代碼

 

升級版本要求:

允許使用者最多嘗試3次

    每嘗試3次後,如果還沒猜對,就問使用者是否還想繼續玩,如果回答Y或y, 就繼續讓其猜3次,以此往複,如果回答N或n,就退出程式。

    如何猜對了,就直接退出。

age=36 i=0 while i<3: user_age=input('Please guess the age > ') #print(type(age),type(user_age)) if user_age == str(age): print("That's right. That's good!") exit() else: print('Guess wrong!') i+=1 if i == 3: con=input('是否繼續?繼續輸入"y"') if con ==('y'or'Y'): i = 0 continue else: print('堅持才會勝利,拜~') continue 代碼

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.