目录
1.环境搭建相关
1.1 Python
CPython解释器,底层是用C语言写的,解释执行Python的代码。
-
根据Python语法规则,编写相关代码。
-
代码交给解释器去运行。
1.1.1 下载安装
去官方下载:python3.9.0(一定要是Python3.x,最好是3.6)。
切记:要记住你的Python安装在哪里?
C:\python39 Lib .... .... site-packages requests代码 Scripts pip.exe 安装Python第三方模块(包管理器) pip install requests pip3.exe python.exe Python解释器
假设你的自己的电脑F盘下创建 app.py
print("你好呀")
想要运行代码:
-
打开终端
-
去运行
C:\python39\python.exe F:\code.py
/Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8 /Users/wupeiqi/PycharmProjects/learn/day01/demo.py
1.2 Pycharm
IDE,集成开发环境。
注意事项:
-
社区版 vs 专业版(推荐)【2020.1 -> 最新的Python3.10】
-
不要去汉化
/Users/wupeiqi/PycharmProjects/learn/day01
文件夹一定要分清楚:
-
Python解释器的目录
C:\python39
-
Python代码存放的目录
D:\PythonProject\
2.编码基础
-
计算机底层本质上都是 010101010101010101
你 好 101010101 1010101
-
编码,文字和二进制的对应关系。
写文件 UTF-8, 你好 -> 101010101 1010101 读文件 UTF-8, 你好 <- 101010101 1010101 注意:以后你的文件用什么编码保存,就要用什么编码打开。
-
常见编码
ascii编码,256 (英文字母、标点符号) utf-8编码,中文、英文、韩语。。。。 gbk/gb2312编码,亚洲。
-
写代码,要保存起来 -> 选择编码utf-8。 app.py
print("你好")
-
Python解释器去运行
xxxxx/xxxx/python解释器 xxxx/xxx/xx/app.py - 打开文件并读取,Python解释器也要用utf-8编码去打开(默认就是utf-8编码去打开所有的代码文件) - 解释并执行...
# -*- coding:utf-8 -*- print(123123)
注意:
-
python3.x,解释器默认的编码 utf-8
print("武沛齐")
-
python2.x,解释器默认的编码ascii(打开文件)
# -*- coding:utf-8 -*- print("武沛齐")
3.输出
写程序的本质,执行操作,查出结果。
print(888888888888888) print("欢迎使用10086")
print("你好") print(77777, end="") print(77777) print(8888)
print("*******欢迎使用移动xx系统*******") phone = input("请输入你的手机号:") code = input("请输入验证码:") if phone == "111" and code == "999": print("登录成功") else: print("登录失败")
4.初识数据类型
-
以前:数字、拼音、成语 --> 写文章 -> 老师批阅
-
现在:整型、字符串、列表、字典、元组 -> 写代码 -> 计算机运行
4.1 整型
平时生活中说的说的数字,例如:年龄、高低、重量。
199 88 100 100+200 8/2 10*5
print(100) print(8/2) print(100+200) print(10*5)
4.2 字符串类型
平时生活中想要表示文本信息,例如:地址、城市、个人介绍。
"中国移动" '上海移动公司' """中国上海移动""" '''移动公司'''
'中国"移动' "中国'移动"
print("*******欢迎使用移动xx系统*******") print("请输入你要选择的功能,1.xxx;2.xxx;3.xxxx")
print("*******欢迎使用移动xx系统*******") print("""请输入你要选择的功能 1.xxx 2.xxx 3.xxxx """)
4.3 布尔类型
真假
100 > 10 # True 99 < 10 # False "root" == "123" # False 100 == 200 # False
print(100 > 10) print(100 < 10)
if 100 > 10: print("真") else: print("家")
小结
-
markdown笔记:标题、代码、图片、表格、文本
-
python解释器目录
C:\python39 Lib .... .... site-packages requests代码 Scripts pip.exe 安装Python第三方模块(包管理器) pip install requests pip3.exe python.exe Python解释器
-
Pycharm基本使用:代码文件 + 运行
-
编码
-
编码存储 + 打开方式
-
python3默认解释器编码utf-8(打开代码文件)
-
utf-8/ascii/gbk
-
-
输出
print("xxxx") print("xxxx", end="")
-
数据类型
9999 "xxxx" True/False
5.类型转换
-
整型 int
999
-
字符串 str
"xxxxx"
-
布尔类型 bool
True/False
类型转换:
-
整型 -> 字符串类型
9999 str(9999) -> "9999"
-
字符串 -> 整型
"123" int("123") -> 123
-
布尔类型
bool(123) # True bool(0) # False bool(-10) # True bool("你好") # True bool("") # False bool(" ") # True bool("0000") # True --> 0 "" -> 布尔值 False,其他均为True
if 条件: # 成立,走这里的代码 ... else: # 不成立....
if "": # 成立,走这里的代码 ... else: # 不成立....
练习题:
8 + 2 "中国" + "上海移动" -> "中国上海移动" "100" + "200" -> "100200"
print( int("100") + 100 ) # 200 print( int("100") * 5 ) # 500 print( int("100") * int("2") ) # 200 print( str(100) + str(123) ) # "100123"
练习题:
print( int("100")*3 ) print( int("123") + int("88") ) print( str(111) + str(222) ) # "111222" print( int("8") > 7 ) # True print( str(111) == 111 ) # "111" == 111 False print( bool(-1) ) # True print( bool(0) ) # False print( bool("") ) # False print( bool("你好") ) # True print( True == True) # True print( True == False) # False print( bool("") == bool(0) ) # False==False -> True
6.变量
变量理解称为昵称。
变量名 = 值
n1 = "李光照" x1 = 2022 m9 = True
print("中华人民共和国2022年") print("中华人民共和国2022年") print("中华人民共和国2022年") print("中华人民共和国2022年") print("中华人民共和国2022年") data = "中华人民共和国2022年" print(data) print(data) print(data) print(data) print(data)
age = 18 name = "武沛齐" address = "中国北京昌平区" info = address + name print(info) # "中国北京昌平区" + "武沛齐" -> "中国北京昌平区武沛齐" new_age = age + 2 print(new_age) # 20
易错点:
-
关于等号
number = 1 == 2 # number = False
-
关于变量的赋值
age = 18 age = 20 print(age)
age = 18 age = age + 20 # 18 + 20 ==> 38 print(age) # 38
6.1 变量名规范
name = "武沛齐"
三大原则:
-
变量名中只能包含:字母、数字、下划线
-
数字不能开头
a1 = 123 a_ = 9 _ = 100 9a = 123 # 错误 99 = "xx" # 错误
-
不能是Python内置的关键字
def = 123 # 错误 pass = 999 # 错误
*[‘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’]*
练习题
name = "吉诺比利" name0 = "帕克" name_1 = "邓肯" _coach = "波波维奇" _ = "卡哇伊" 1_year = "1990" # 错误 year_1_ = "1990" _1_year = "1990" nba-team = "马刺" # 错误 new*name = "伦纳德" # 错误
变量的2条建议(可遵守、可不遵守):
-
下划线连接多个单词
city_number = 10000
-
见名知意
a = 123 b = 345 c = a + b
age = 18 size = 100 result = age * size print(result) # 不要用拼音
6.2 变量内存关系
示例1
name = "wupeiqi"
在计算机的内存中创建一块区域保存字符串”wupeiqi”,name变量名则指向这块区域。
示例2
name = "wupeiqi" name = "alex"
在计算机的内存中创建一块区域保存字符串”wupeiqi”,name变量名则指向这块区域。然后又再内存中创建了一块域保存字符串”alex”,name变量名则指向”alex”所在的区域,不再指向”wupeiqi”所在区域(无人指向的数据会被标记为垃圾,由解释器自动化回收)
示例3
name = "wupeiqi" new_name = name
在计算机的内存中创建一块区域保存字符串”wupeiqi”,name变量名则指向这块区域。new_name变量名指向name变量,因为被指向的是变量名,所以自动会转指向到name变量代表的内存区域。
示例4
name = "武沛齐" new_name = "武沛齐"
示例5
name = "wupeiqi" new_name = name name = "alex"
在计算机的内存中创建一块区域保存字符串”wupeiqi”,name变量名则指向这块区域(灰色线), 然后new_name指向name所指向的内存区域,最后又创建了一块区域存放”alex”,让name变量指向”alex”所在区域.
示例6
num = 18 age = str(num)
在计算机的内存中创建一块区域保存整型18,name变量名则指向这块区域。通过类型转换依据整型18再在内存中创建一个字符串”18”, age变量指向保存这个字符串的内存区域。
至此,关于变量的内存相关的说明已讲完,由于大家都是初学者,关于变量的内存管理目前只需了解以上知识点即可,更多关于内存管理、垃圾回收、驻留机制等问题在后面的课程中会讲解。
练习题
-
看代码结果
alex_length = 3 wupeiqi_length = 18 total = alex_length + wupeiqi_length print(total)
-
看代码写结果
nickname = "一米八大高个" username = nickname username = "弟弟" print(nickname) print(username)
-
看代码写结果
nickname = "一米八大高个" username = nickname nickname = "弟弟" print(nickname) print(username)
-
看代码写结果
nickname = "一米八大高个" username = "弟弟" text = username + nickname print(text)
-
看代码写结果
nickname = "一米八大高个" username = nickname nickname = "弟弟" text = username + nickname print(text)
-
看代码写结果
string_number = "20" num = int(string_number) # 20 data = string_number * 3 # "20" * 3 -> "202020" print(data) value = num * 3 # 20 * 3 print(value)
data = "#" * 10 # "########"
7.注释
-
单行注释
# 输出一个结果 print(123)
print(123) # 输出一个结果 注意:快捷点 command + ? 、 control + ?
-
多行注释,字符串的多行文本重合
text = """你好呀 阿斯顿发士大夫 阿斯蒂芬阿萨德f """ 你好呀 阿斯顿发士大夫 阿斯蒂芬阿萨德f """ print(11111)
# 提示用户输入文本A v1 = input(">>>") # 提示用户输入文本B v2 = input(">>>") """ 下面的代码是干xxx是的 1.休息休息 2.反反复复 3.谢新雪 """ result = v1 + v2 print(result)
扩展:TODO
v1 = 100 # TODO 下一期我会补充上xxx功能 v2 = 200 result = v1 + v2 print(result)
8.输入
我们需要用户输入内容,才能继续向后走。
name = input("请输入用户名:") # "root" age = input(">>>") # "18" text = name + age # "root18" print(text)
示例1
name = input("姓名:") addr = input("位置:") action = input("行为:") text = name + "在" + addr + action print(text)
示例2
n1 = input("请输入一个数字:") # 11 n2 = input("请输入一个数字:") # 22 value = n1 + n2 print(value) # "1122"
示例3
n1 = input("请输入一个数字:") # 11 n2 = input("请输入一个数字:") # 22 value = int(n1) + int(n2) print(value) # 33
特殊情况:
v1 = int("999") # 999 v2 = int("asdf") # 报错
9.条件语句
if(条件){ 条件成立,执行此处代码 }else{ 不成立,执行此处代码 }
if 条件 : print(123) print(456) print(456) else: print(1) print(2)
number = 20 if number > 19: print("小伙子") print("年轻人") else: print("小屁孩")
示例1:
print("开始") if True: print(123) else: print(456) print("结束") # 输出结果 开始 123 结束
示例2
print("开始") if 1==1: print(123) else: print(456) print("结束") # 输出结果 开始 123 结束
示例3
print("开始") num = 100 if num < 90: print(123) else: print(456) print("结束") print("结束")
# 输出结果? 开始 456 结束 结束
示例4
username = "wupeiqi" password = "666" if username == "wupeiqi" and password == "666": print("恭喜你,登录成功") else: print("登录失败")
print("*********欢迎使用**********") username = input("请输入用户名:") password = input("请输入密码:") if username == "wupeiqi" and password == "666": print("恭喜你,登录成功") else: print("登录失败") print("程序结束")
示例5
username = input("请输入用户名:") if username == "wupeiqi" or username == "刘光照": print("VIP用户") else: print("普通用户")
示例6
奇数和偶数 div = 10%2 # 获取余数
number = input("请输入数字:") div = int(number) % 2 if div == 1: print("奇数") else: print("偶数")
示例7:
if 条件: pass else: pass
print("开始") if 1<2: print(666) print("结束")
练习题:
-
提示用户输入用户名和密码,用户名等于"root"且密码等于"qwe123"就输出登录成功;否则输出登录失败。
user = input("请输入用户名:") pwd = input("请输入密码:") if user == "root" and pwd == "qwe123": print("成功") else: print("失败")
-
猜数字,提示用户输入一个数字,判断数字如果大于10,输出:大了; 小于10,输出小了。
number = input("请输入数字:") # 8 if int(number) > 10: print("大了") if int(number) < 10: print("小了")
-
猜数字,提示用户输入一个数字,判断数字如果大于10,输出:大了; 小于10,输出小了;等于10,正确
if 条件A: pass elif 条件B: pass elif 条件C: pass else: pass
number = input("请输入数字:") # 8 new_num = int(number) if new_num > 10: print("大了") elif new_num < 10: print("小了") else: print("正确")
条件语句的嵌套
if 条件: if 条件: ... else: ... elif 条件: ... else: ...
print("欢迎致电10086,我们提供了如下服务: 1.话费相关;2.业务办理;3.人工服务") choice = input("请选择服务序号:") # "1" if choice == "1": print("话费相关业务") cost = input("查询话费请按1;交话费请按2") if cost == "1": print("查询话费余额为100") elif cost == "2": print("交互费") else: print("输入错误") elif choice == "2": print("业务办理") elif choice == "3": print("人工服务") else: print("序号输入错误")
注意:3层以内解决你的业务问题(其他解决方案)。
10.循环语句
-
while循环
-
for循环
10.1 while循环
while 条件: print(123)
print("开始") while True: print("欢迎使用10086") print("结束") # 结果 开始 欢迎使用10086 欢迎使用10086 欢迎使用10086 欢迎使用10086 ..
print("开始") while 1 > 2: print("欢迎使用10086") print("结束") # 结果 开始 结束
status = True print("开始") while status: print("欢迎使用10086") print("结束") # 结果 开始 欢迎使用10086 欢迎使用10086 欢迎使用10086 ...
status = True ... status = False
status = True print("开始") while status: print("欢迎使用10086") status = False print("结束") # 结果 开始 欢迎使用10086 结束
num = 1 num = num + 1 print(num) # 2 num = num + 1 print(num) # 3 num = num + 1 print(num) # 4
num = 1 while num < 5: print("中国移动") num = num + 1 # 结果 中国移动 中国移动 中国移动 中国移动
练习题:
-
猜数字,一直猜直到猜正确为止。。
number = 66 status = True while status: str_num = input("请输入数字:") num = int(str_num) if num == number: print("猜对了") status = False
-
用户登录 & 用户认证(一直输入)
print("开始") status = True while status: user = input(">>>") pwd = input(">>>") if user == "root" and pwd == "123": print("登录成功") status = False else: print("登录失败,请重试") print("结束")
-
用户登录 & 用户认证(重试3次)
counter = 0 while counter < 3: user = input(">>>") pwd = input(">>>") if user == "root" and pwd == "123": print("登录成功") counter = 1000 else: print("登录失败,请重试") counter = counter + 1
break和continue
print("开始") while True: print(1) break print(2) print("结束") # 结果: 开始 1 结束
猜年龄,直到正确位置:
while True: str_age = input("请输入年龄:") age = int(str_age) if age == 35: print("猜对了") break
print("开始") while True: print(1) continue print(2) print("结束") # 结果 开始 1 1 1 1 ...
10.2 for循环
name = "中国移动公司" for item in name: print(item) # 结果 中 国 移 动 公 司
data_list = ["李泉","王毅","alex"] for item in data_list: print(item) # 结果 李泉 王毅 alex
另外一类for循环 + range结合使用。
v1 = range(5) # [0,1,2,3,4] v2 = range(1,5) # [1,2,3,4]
for item in range(5): # [0,1,2,3,4] pass for item in range(3): # [0,1,2,] pass for item in range(6): # [0,1,2,3,4,5] pass
v1 = range(0,5,2) # [0,2,4]
for item in range(0,5,2): # [0,2,4] pass
v1 = range(10,0,-1) # [10,9,8....2,1] v1 = range(5,-1,-1) # [5,4,3,2,1,0]
for ele in range(5,-1,-1): print(ele)
for循环也支持continue和break
for item in range(10): # [0,1,2..9] print(item) break
for item in range(10): # [0,1,2..9] print(1) continue print(item)
11.字符串格式化
想要让多个值拼接出来一个内容,用字符串格式化就会比较方便。
text = "我是" + "武沛齐" + "年龄99"
name = "李泉" age = 18 city = "上海" text = "姓名" + name + "今年" + str(age) + "岁,现在在" + city + "工作"
-
%s
-
format(推荐)
-
f-string
name = "李泉" age = 18 city = "上海" # text = "姓名" + name + "今年" + str(age) + "岁,现在在" + city + "工作" text = "姓名{0}今年{1}岁,现在在{2}工作 ---- {0}".format(name,age,city) print(text) text = "姓名{}今年{}岁,现在在{}工作 ---- {}".format(name,age,city,name) print(text) text = "姓名{n1}今年{n2}岁,现在在{nn}工作 ---- {xo}".format(xo=name,n1=name,nn=city,n2=age,) print(text)
希望大家做的
-
根据笔记,自己复习 & 实现案例
-
写一套自己的笔记(查阅)