摘要:返回布爾或如果是,它返回,否則它返回的計算值。輸入錯誤次,用戶已鎖定,請聯(lián)系管理員沒有這個用戶格式化并寫入文件
1. python介紹
發(fā)展史等等....
減少開發(fā)成本
2. python與其他語言對比C語言:代碼-->機器碼
其他高級語言:代碼-->字節(jié)碼-->機器碼
3. python種類cpython:常用的python就是cpython,python代碼-->字節(jié)碼-->機器碼(一行一行讀取執(zhí)行)
其他python:python代碼-->字節(jié)碼-->機器碼
pypy:python代碼-->字節(jié)碼-->機器碼(全部轉(zhuǎn)換完再執(zhí)行)pypy效率會比cpython要高,pypy是cpython的一個分支,關(guān)于pypy可參考知乎一篇文章:PyPy 為什么會比 CPython 還要快?
解釋規(guī)則
windows:
python解釋器+文件:c:python3.5python.exe d:s17day01helloworld.py
python解釋器內(nèi)執(zhí)行:c:python3.5python.exe
linux or mac:
python解釋器+文件:/usr/bin/python /data/s17/day01/helloworld.py
python解釋器內(nèi)執(zhí)行:/usr/bin/python
注: 在linux or mac系統(tǒng)上默認安裝的是python2.x版本,如在linux or mac系統(tǒng)使用python,需注意下python版本。
潛規(guī)則
.py 結(jié)尾(當(dāng)然你也可以采用其他的結(jié)尾也是可以的,不怕team成員殺了你也可以寫。其實主要還是為了規(guī)范,python服務(wù)器上用的比較多,看見.py也就會知道這是python程序)
編碼
編碼發(fā)展:ASCII-->Unicode(萬國碼)-->UTF-8
編碼種類與區(qū)別
編碼 | 支持語言 | 字節(jié)位數(shù) | 缺點 | 備注 |
---|---|---|---|---|
ASCII | 英語 | 8位 | 只支持英文 | * |
萬國碼 | 所有 | 至少16位 | 字節(jié)位數(shù)較大 | * |
UTF-8 | 所有 | 8+ | * | 對萬國碼壓縮 |
GBK | 中文、英文 | 16位 | 支持語言少 | * |
python編碼相關(guān):
文件編碼
文件編碼創(chuàng)建文件時定義即可,或者在IDE中定義
解釋器編碼
解釋器編碼需要在代碼中標注,python3.x 版本不標注也是可以的(解釋器默認編碼為ASCII),但為了統(tǒng)一規(guī)范,在文件第二行標注 `# -*- coding:utf-8 -*-`5. IDE
PyCharm
使用
a.創(chuàng)建一個項目,指定代碼路徑與python解釋器路徑 b.創(chuàng)建一個文件夾 c.創(chuàng)建一個python script 文件 d.在py文件中右鍵, run xx.py
文件編碼
在pycharm中首先要設(shè)置文件編碼,將文件默認文件編碼設(shè)置為utf-8
文件模板
修改python scripts文件模板,將python環(huán)境信息與編碼信息定義在模板中
改變大小
配置編輯器中文字大小,設(shè)置可以用鼠標滑輪控制文字大小
單行注釋: #
多行注釋: ``` ```
7. .pyc文件當(dāng)一個python文件導(dǎo)入另一個模塊時候,會生成一個 .pyc文件,那么這個文件就是導(dǎo)入的那個文件的字節(jié)碼。
8. 變量python變量規(guī)則:
字母
數(shù)字(變量不能以數(shù)字開頭)
下劃線
不能以python內(nèi)置關(guān)鍵字為變量
python中變量建議使用下劃線分割(駝峰式也不會報錯)
9. 輸入、輸出輸入: a = input("請輸入xxxx")
輸出: print (a)
10. 條件語句例1:
if 條件: ... else: ...
應(yīng)用
#!/usr/bin/env python # -*- coding: utf-8 -*- # Author:Chuncheng.Fanusername = input("請輸入用戶名:") password = input("請輸入密碼:") if username == "fcc" and password == "123": print("歡迎登陸!") else: print("用戶名或密碼錯誤!")
例2:
if 條件: ... elif 條件: ... else: ...
應(yīng)用:
#!/usr/bin/env python # -*- coding: utf-8 -*- # Author:Chuncheng.Fan11. 循環(huán)語句sex = input("請輸入你的性別:") if sex == "男": print("傻x,自己性別都忘了!") elif sex == "女": print("...你在想想,你忘了你已經(jīng)做了手術(shù)了嗎...") else: print("人妖.......")
while
while 條件: continue # 開始下一次循環(huán) break # 跳出所有循環(huán)
例:
#!/usr/bin/env python # -*- coding: utf-8 -*- # Author:Chuncheng.Fan12. 練習(xí)i = 0 while i < 3: username = input("請輸入用戶名:") password = input("請輸入密碼:") if username == "fcc" and password == "123": print("歡迎登陸!") break else: print("用戶名或密碼錯誤") i += 1
使用while循環(huán)輸入 1 2 3 4 5 6 8 9 10
#!/usr/bin/env python # -*- coding: utf-8 -*- # Author:Chuncheng.Fani = 1 while True: if i == 7: i += 1 continue print(i) i += 1 if i == 11: break
求1-100的所有數(shù)的和
#!/usr/bin/env python # -*- coding: utf-8 -*- # Author:Chuncheng.Fanvalue = 0 i = 1 while i < 101: value = value + i i += 1 print(value)
輸出 1-100 內(nèi)的所有奇數(shù)
#!/usr/bin/env python # -*- coding: utf-8 -*- # Author:Chuncheng.Fani = 1 while i < 101: if i % 2 == 1: print(i) i += 1
輸出 1-100 內(nèi)的所有偶數(shù)
#!/usr/bin/env python # -*- coding: utf-8 -*- # Author:Chuncheng.Fani = 1 while i < 101: if i % 2 == 0: print(i) i += 1
求1-2+3-4+5 ... 99的所有數(shù)的和
#!/usr/bin/env python # -*- coding: utf-8 -*- # Author:Chuncheng.Fanvalue = 0 i = 1 while i < 100: if i % 2 == 1: value = value + i i += 1 elif i % 2 == 0: value = value - i i +=1 print(value)
用戶登陸(三次機會重試)
#!/usr/bin/env python # -*- coding: utf-8 -*- # Author:Chuncheng.Fan13. 運算符 13.1 算數(shù)運算i = 0 while i < 3: username = input("請輸入用戶名:") password = input("請輸入密碼:") if username == "fcc" and password == "123": print("歡迎登陸!") break else: print("用戶名或密碼錯誤") i += 1
運算符 | 描述 | 實例 |
---|---|---|
+ | 加 - 兩個對象相加 | a+b 輸出結(jié)果30 |
- | 減 - 得到負數(shù)或是一個數(shù)減去另一個數(shù) | a-b 輸出結(jié)果-10 |
* | 乘 - 兩個數(shù)相乘或是返回一個被重復(fù)若干次的字符串 | a*b 輸出結(jié)果200 |
/ | 除 - x以y | b/a輸出結(jié)果2 |
% | 取模 - 返回除法的余數(shù) | b%a輸出結(jié)果0 |
** | 冪 - 返回x的y次冪 | a**b為10的20次方,輸出結(jié)果100000000 |
// | 取整除 - 返回商的整數(shù)部分 | 9//2輸出結(jié)果4,9.0//2.0 輸出結(jié)果4.0 |
運算符 | 描述 | 實例 |
---|---|---|
== | 等于 - 比較對象是否相等 | (a==b)返回False |
!= | 不等于 - 比較兩個對象是否不相等 | (a!=b)返回True |
<> | 不等于 - 比較兩個對象是否不相等 | (a<>b)返回True,這個運算符類似!= |
> | 大于 - 返回x是否大于y | (a>b)返回False |
< | 小于 - 返回 | b%a輸出結(jié)果0 |
>= | 冪 - 返回x的y次冪 | a**b為10的20次方,輸出結(jié)果100000000 |
<= | 取整除 - 返回商的整數(shù)部分 | 9//2輸出結(jié)果4,9.0//2.0 輸出結(jié)果4.0 |
運算符 | 描述 | 實例 |
---|---|---|
= | 簡單的賦值運算符 | c=a+b 將 a+b的運算結(jié)果賦值為c |
+= | 加法賦值運算符 | c+=a 等效于c=c+a |
-= | 減法賦值運算符 | c-=a 等效于c=c-a |
*= | 乘法賦值運算符 | c=a 等效于c=ca |
/= | 除法賦值運算符 | c/=a 等效于c=c/a |
%= | 取模賦值運算符 | c%=a 等效于c=c%a |
**= | 冪賦值運算符 | c**=a 等效于c=c**a |
//= | 取整除賦值運算符 | c//=a 等效于c=c//a |
運算符 | 描述 | 實例 |
---|---|---|
and | 布爾“與”-如果x為False,x and y 返回False,否則它返回y的計算值。 | (a abd b) 返回True |
or | 布爾“或”-如果x是True,它返回True,否則它返回y的計算值。 | (a or b)返回True |
not | 布爾“非”-如果x為True,返回False,如果x為False,它返回True。 | not(a and b)返回False |
運算符 | 描述 | 實例 |
---|---|---|
in | 如果在指定的序列中找到值返回True,否則返回False。 | x在y序列,如果x在y序列中返回True。 |
not in | 如果在指定的序列中沒有找到值返回True,否則返回False。 | x不在y序列中,如果x不在y序列中返回False。 |
int(整型)
在32位機器上,整數(shù)的位數(shù)為32位,取值范圍為-231~231-1,即-2147483648~2147483647
在64位系統(tǒng)上,整數(shù)的位數(shù)為64位,取值范圍為-263~263-1,即-9223372036854775808~9223372036854775807
14.2 布爾值真或假
1 或 0
字符串常用功能:
移除空白
分割
長度
索引
切片
14.4 列表name_list = ["alex", "seven", "eric"] 或 name_list = list(["alex", "seven", "eric"])
基本操作:
索引
切片
追加
刪除
長度
切片
循環(huán)
包含
14.5 元祖創(chuàng)建元祖:
ages = (11, 22, 33, 44, 55) 或 ages = tuple((11, 22, 33, 44, 55))
基本操作:
索引
切片
循環(huán)
長度
包含
14.6 字典(無序)創(chuàng)建字典:
person = {"name": "mr.wu", "age": 18} 或 person = dict({"name": "mr.wu", "age": 18})
常用操作:
索引
新增
刪除
鍵、值、鍵值對
循環(huán)
長度
14.7 其他 14.7.1 for循環(huán)用戶按照順序循環(huán)可迭代對象中的內(nèi)容,
PS:break、continue
li = [11,22,33,44] for item in li: print item14.7.2 enumrate
為可迭代的對象添加序號
li = [11,22,33] for k,v in enumerate(li, 1): print(k,v)14.7.3 range和xrange
指定范圍,生成指定的數(shù)字
print range(1, 10) # 結(jié)果:[1, 2, 3, 4, 5, 6, 7, 8, 9] print range(1, 10, 2) # 結(jié)果:[1, 3, 5, 7, 9] print range(30, 0, -2) # 結(jié)果:[30, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2]15. 練習(xí)題
元素分類
有如下值集合
v1 = [11,22,33,44,55,66,77,88,99,90],
將所有大于 66 的值保存至字典的第一個key中,將小于 66 的值保存至第二個key的值中。
即:
{"k1": 大于66的所有值, "k2": 小于66的所有值} v2 = {"k1": [],"k2":[] }
答案:
#!/usr/bin/env python # -*- coding: utf-8 -*- # Author:Chuncheng.Fanv1 = [11,22,33,44,55,66,77,88,99,90] v2 = {"k1":[],"k2":[]} for item in v1: if item > 66: v2["k1"].append(item) elif item < 66: v2["k2"].append(item) print(v2)
功能要求:
= 2000
要求用戶輸入總資產(chǎn),例如:2000
顯示商品列表,讓用戶根據(jù)序號選擇商品,加入購物車
購買,如果商品總額大于總資產(chǎn),提示賬戶余額不足,否則,購買成功。
goods = [ {"name": "電腦", "price": 1999}, {"name": "鼠標", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998}, ] num = input(">>>") # 1 num = int(num) goods[num]["price"]
用戶交互,顯示省市縣三級聯(lián)動的選擇
dic = { "河北": { "石家莊": ["鹿泉", "藁城", "元氏"], "邯鄲": ["永年", "涉縣", "磁縣"], } "河南": { ... } "山西": { ... } } for v in dic.keys(): print(v) inp = input(">>>") dic[inp]16. 作業(yè)
基于文件存儲的用戶登錄程序(3次登錄失敗,鎖定用戶)
答案:
#!/usr/bin/env python # -*- coding: utf-8 -*- # Author:Chuncheng.Fanf1 = open("db","r") data = f1.read() f1.close() # 1.格式化數(shù)據(jù) user_info_list = [] user_str_list = data.split(" ") for item in user_str_list: temp = item.split("|") v = { "name": temp[0], "pwd": temp[1], "times": int(temp[2]) } user_info_list.append(v) print(user_info_list) # 2.判斷用戶輸入 count = 0 while count < 3: username = input("請輸入用戶名:") status = 0 for user_login_info in user_info_list: if username == user_login_info["name"]: if user_login_info["times"] >= 3: print("輸入錯誤3次,用戶已鎖定,請聯(lián)系管理員 ~") exit() else: count = 0 status = 1 pwd = input("請輸入密碼:") if pwd == user_login_info["pwd"]: print("用戶 %s 登錄成功!" %username) user_login_info["times"] = 0 count = 3 break else: if 0 == 2 - user_login_info["times"]: pass else: print("用戶名或密碼錯誤,請重新輸入。") user_login_info["times"] += 1 if user_login_info["times"] >= 3: print("輸入錯誤3次,用戶已鎖定,請聯(lián)系管理員 ~") count = 3 break if status == 0: print("沒有這個用戶") count += 1 # 3.格式化并寫入文件 new_db = "" for user_login_info in user_info_list: user_info_str = user_login_info["name"] + "|" + user_login_info["pwd"] + "|" + str(user_login_info["times"]) new_db = new_db + user_info_str + " " f2 = open("db","w") f2.write(new_db.strip()) f2.close()
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/44360.html
摘要:所以,應(yīng)該直接了當(dāng)?shù)陌惭b,其中也會自動安裝上,作為其運行的。這只是一開始,之后還有里各種找不到外部安裝的的情況。終于,意識到這些方法都是錯誤的思路。這才知道原來是無法識別。 為什么要用IPython/Jupyter? python里面調(diào)試確實有點煩惱,尤其是在vim里,想要嘗試一些簡單的編碼問題,實在是有點麻煩,不想到命令行模式一行一行執(zhí)行,也不想再新建一個文件測試一個簡單的功能。 而...
摘要:所以,應(yīng)該直接了當(dāng)?shù)陌惭b,其中也會自動安裝上,作為其運行的。這只是一開始,之后還有里各種找不到外部安裝的的情況。終于,意識到這些方法都是錯誤的思路。這才知道原來是無法識別。 為什么要用IPython/Jupyter? python里面調(diào)試確實有點煩惱,尤其是在vim里,想要嘗試一些簡單的編碼問題,實在是有點麻煩,不想到命令行模式一行一行執(zhí)行,也不想再新建一個文件測試一個簡單的功能。 而...
摘要:并于年月在許可證下發(fā)布。控制器是將模型和視圖隔離,并成為二者之間的聯(lián)系紐帶。該層處理與表現(xiàn)相關(guān)的決定如何在頁面或其他類型文檔中進行顯示。會話用戶登錄與權(quán)限檢查,快速開發(fā)用戶會話功能。 1.介紹Django 1.1 Django的來源 Django是一個開放源代碼的Web應(yīng)用框架,由Python寫成。采用了MVC的框架模式,即模型M,視圖V和控制器C。它最初是被開發(fā)來用于管理勞倫斯出版集...
閱讀 2618·2021-09-28 09:36
閱讀 2228·2021-09-07 09:58
閱讀 1494·2019-08-26 13:53
閱讀 1275·2019-08-23 17:53
閱讀 3023·2019-08-23 15:34
閱讀 1850·2019-08-23 15:34
閱讀 2864·2019-08-23 12:04
閱讀 3717·2019-08-23 10:56