做者:趙俊 發佈日期:2019/10/18python
1、第一個python程序app
一、在解釋器下寫hello world程序運行,與運行外部文件方法oop
運行外部文件,必須在相應位置建立一個python文件,裏面寫上語句優化
二、#!/usr/bin/evn python的做用,告訴操做系統使用的解釋器是什麼編碼
#!/usr/bin/python至關於寫死了python路徑;
#!/usr/bin/env python會去環境設置尋找python目錄,推薦這種寫法spa
2、變量操作系統
一、pycharm工程新建文件,模板代碼設置命令行
二、變量的內存管理3d
三、變量定義的規則code
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
3、字符編碼的區別與介紹
一、python解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ascill)
ASCII(American Standard Code for Information Interchange,美國標準信息交換代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其餘西歐語言,其最多隻能用 8 位來表示(一個字節),即:28 = 256,因此,ASCII碼最多隻能表示 255 個符號。
二、關於中文編碼
簡體中文的GB2312和用於繁體中文的big5
從ASCII、GB23十二、GBK 到GB18030,這些編碼方法是向下兼容的
三、國際編碼
Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字符編碼
UTF-8,是對Unicode編碼的壓縮和優化,他再也不使用最少使用2個字節,而是將全部的字符和符號進行分類:ascii碼中的內容用1個字節保存、歐洲的字符用2個字節保存,東亞的字符用3個字節保存
四、# -*- coding: utf-8 -*-
python 2.x上寫中文要告訴解釋器編碼格式
python 3.x支持unicode編碼
4、用戶輸入及格式化輸出
一、註釋
單行註釋:#號後面跟要註釋的內容
多行註釋:'''被註釋內容''' 三個單引號或雙引號均可以
多行註釋能夠用來打印多行,以下圖,左側爲源碼,右側爲輸出
二、用戶輸入
1 username = input("請輸入用戶名") 2 password = input("請輸入密碼") 3 print(username,password)
三、格式化輸出
用+號拼接字符串,不建議使用,佔用內存多
1 name = input("請輸入用戶名") 2 age = input("請輸入年齡") 3 info = ''' 4 ----------info of '''+name+'''---------- 5 name:'''+name+''' 6 age:'''+age 7 print(info)
用%s或%d或f%,%s是接收字符串的,%d是接收數值的,%d是接收浮點。input輸入的均爲字符串,全部在用%d時,必須用int()強制類型裝換爲整型
1 name = input("請輸入用戶名") 2 age = input("請輸入年齡") 3 info = ''' 4 ----------info of %s---------- 5 name:%s 6 age:%s 7 '''%(name,name,age) 8 print(info)
使用format格式化輸出
1 name = input("請輸入用戶名") 2 age = input("請輸入年齡") 3 info = ''' 4 ----------info of {_name}---------- 5 name:{_name} 6 age:{_age} 7 '''.format(_name=name,_age= age) 8 print(info)
使用format格式化輸出另外一種
1 name = input("請輸入用戶名") 2 age = input("請輸入年齡") 3 info = ''' 4 ----------info of {0}---------- 5 name:{0} 6 age:{1} 7 '''.format(name,age) 8 print(info)
5、if else流程判斷
一、密文輸入
導入標準庫import getpass。這個在pychar中沒效果,用命令行就能夠實現
1 import getpass 2 name = input("請輸入用戶名") 3 age = getpass.getpass("請輸入年齡") 4 info = ''' 5 ----------info of {0}---------- 6 name:{0} 7 age:{1} 8 '''.format(name,age) 9 print(info)
二、if語句基本結構
1 _username = "zhaojun" 2 _password = "123" 3 username = input("請輸入用戶名:") 4 password = input("請輸入密碼:") 5 6 if _username == username and _password == password: 7 print("welcome {name} login...".format(name = _username)) 8 else: 9 print("invalid username or password")
三、if elif語句 猜數字
1 _number = 33 2 number = int(input("猜數字:")) 3 4 if number == _number: 5 print("恭喜你,猜對了!") 6 elif number > _number: 7 print("猜大了!") 8 else: 9 print("猜小了!")
6、while循環
一、while循環,改進循環猜數字3次
1 _number = 33 2 count = 0 3 while count<3: 4 number = int(input("猜數字:")) 5 if number == _number: 6 print("恭喜你,猜對了!") 7 break 8 elif number > _number: 9 print("猜大了!") 10 else: 11 print("猜小了!") 12 count +=1
二、while else。改進三次後提示猜次數過多
1 _number = 33 2 count = 0 3 while count<3: 4 number = int(input("猜數字:")) 5 if number == _number: 6 print("恭喜你,猜對了!") 7 break 8 elif number > _number: 9 print("猜大了!") 10 else: 11 print("猜小了!") 12 count +=1 13 else: 14 print("已經猜了三次了,再見!")
三、猜數字任性玩改進
1 _number = 33 2 count = 0 3 while count<3: 4 number = int(input("猜數字:")) 5 if number == _number: 6 print("恭喜你,猜對了!") 7 break 8 elif number > _number: 9 print("猜大了!") 10 else: 11 print("猜小了!") 12 count +=1 13 if count == 3: 14 confirm = input("你是否繼續猜數字?按回車從新開始,按n爲退出") 15 if confirm != "n": 16 count = 0
7、for循環
一、基本語法
1 for i in range(10): 2 print("loop",i)
二、用for循環改進猜數字
1 _number = 33 2 for i in range(3): 3 number = int(input("猜數字:")) 4 if number == _number: 5 print("恭喜你,猜對了!") 6 break 7 elif number > _number: 8 print("猜大了!") 9 else: 10 print("猜小了!") 11 else: 12 print("已經猜了三次了,再見!")
三、range裏面的參數分別爲,最小值,最大值,步長
1 for i in range(0,10,1): 2 print("loop",i)
8、課後做業
一、做業二:編寫登錄接口
在代碼目錄創建三個文本文件以下(最後一個字符串要帶換行,由於前幾行都有換行,爲了比較時比如較,也就給最後一個加換行):
程序流程圖:
代碼:
1 # 是否鎖定標誌 2 is_locked = 0 3 # 登陸三次計數 4 count = 0 5 #用戶名是否存在標誌 6 user_exist = 0 7 num = 0 8 while count<3: 9 print("----------請登陸----------") 10 username = input("請輸入用戶名:") 11 password = input("請輸入密碼:") 12 count+=1 13 locked_file = open("locked.txt", "r") 14 locked_list = locked_file.readlines() 15 for i in range(len(locked_list)): 16 if username + "\n" == locked_list[i]: 17 is_locked = 1 18 break 19 if is_locked == 0: 20 locked_file.close() 21 user_file = open("username.txt", "r") 22 user_list = user_file.readlines() 23 for i in range(len(user_list)): 24 if username+"\n" == user_list[i]: 25 user_exist = 1 26 num = i 27 break 28 if user_exist == 1: 29 user_file.close() 30 pass_file = open("password.txt", "r") 31 pass_list = pass_file.readlines() 32 if password + "\n" == pass_list[num]: 33 pass_file.close() 34 print("恭喜,登陸成功!") 35 break 36 else: 37 pass_file.close() 38 print("密碼錯誤!") 39 continue 40 else: 41 user_file.close() 42 print("用戶名不存在,請重新輸入!") 43 else: 44 locked_file.close() 45 print("用戶被鎖定,請聯繫管理員解鎖!") 46 else: 47 locked_file = open("locked.txt", "a") 48 locked_file.write(username+"\n") 49 locked_file.close() 50 print("輸入超過三次,用戶被鎖定!")
程序流程圖:
代碼:
1 #Author:ZHJ 2 phone_model_huawei = { 3 "Mate30系列":"" 4 ,"nova 5 Pro系列":"" 5 ,"暢享9系列":"" 6 } 7 phone_model_apple = { 8 "iPhone 11系列":"" 9 ,"iPhone X系列":"" 10 ,"iPhone 8系列":"" 11 } 12 phone_model_samsung = { 13 "GALAXY Note 10系列":"" 14 ,"GALAXY Note 9系列":"" 15 ,"GALAXY S8系列":"" 16 } 17 18 computer_modle_lenove = { 19 "啓天M415系列":"" 20 ,"揚天T4900d系列":"" 21 ,"擎天T510A系列":"" 22 } 23 computer_modle_dell = { 24 "成銘 3980MT系列":"" 25 ,"Inspiron 靈越 3670系列":"" 26 ,"Vostro 成就 3670系列":"" 27 } 28 computer_modle_hp = { 29 "光影精靈系列":"", 30 "暗影精靈5系列":"", 31 "戰99 Pro G1 MT系列":"" 32 } 33 34 phone_brand = { 35 "華爲":phone_model_huawei, 36 "蘋果":phone_model_apple, 37 "三星":phone_model_samsung 38 } 39 computer_brand = { 40 "聯想":computer_modle_lenove, 41 "戴爾":computer_modle_dell, 42 "惠普":computer_modle_hp 43 } 44 45 commodity = { 46 "手機":phone_brand, 47 "電腦":computer_brand 48 } 49 50 num = 1 51 input_commodity = "" 52 input_brand = "" 53 input_modle = "" 54 while True: 55 if num == 1: 56 print("----------請輸入要查詢的商品----------") 57 print(list(commodity.keys())) 58 input_commodity = input("請選擇一個商品:") 59 if input_commodity in commodity: 60 num += 1 61 elif input_commodity =="q": 62 break 63 elif input_commodity =="b": 64 continue 65 else: 66 print("查詢商品不存在,請從新輸入!") 67 continue 68 elif num == 2: 69 print("----------請輸入要查詢的品牌----------") 70 print(list(commodity.get(input_commodity).keys())) 71 input_brand = input("請選擇一個品牌:") 72 if input_brand in commodity.get(input_commodity): 73 num += 1 74 elif input_brand =="q": 75 break 76 elif input_brand =="b": 77 num-=1 78 continue 79 else: 80 print("查詢品牌不存在,請從新輸入!") 81 continue 82 elif num == 3: 83 print("----------請輸入要查詢的型號----------") 84 print(list(commodity.get(input_commodity).get(input_brand).keys())) 85 input_modle = input("請選擇一個型號:") 86 if input_modle in commodity.get(input_commodity).get(input_brand): 87 print("----------**********----------") 88 print("謝謝使用,查詢完成!") 89 print("----------**********----------") 90 break 91 elif input_modle =="q": 92 break 93 elif input_modle =="b": 94 num-=1 95 continue 96 else: 97 print("查詢品牌不存在,請從新輸入!") 98 continue