python零基础入门教学
1:字面量
print('hello world') print("222222222") print(True) print(False) print("----") print (None) print(3.14)2:变量
- Python 的变量没有固定类型
- 你给它赋什么值,它就是什么类型
- 后面赋值会覆盖前面
True(真)和False(假)是 Python 里的布尔值- 属于单独类型:bool
- 注意:首字母必须大写!
- 一行可以给多个变量同时赋值
num=1 print(num) num="ok" print(num) num=True print("num=",num) a=10 b=20 c,b=33,60 print("a+b=",a+b)3:标识符
4:数据类型
type( )是 Python 的内置函数,作用:查看 数据 / 变量 是什么类型
print(type(10)) print(type(10.1)) print(type("hhh")) num=8 print(type(num))5:字符串定义
用引号包裹字符来定义字符串,支持单引号、双引号、三引号三种写法,功能完全一致,只是适用场景不同。
单双引号没有任何区别,都只能定义一行字符串(不能直接换行);
三引号:专门用来定义带换行、空格的多行文本;
把两个字符串连在一起:直接用+
str(113):能直接把113转换成字符串
| 转义字符 | 含义 |
|---|---|
\' | 表示字符串内的单引号 |
\" | 表示字符串内的双引号 |
\n | 换行 |
\t | 制表符(空格缩进) |
\\ | 表示反斜杠本身 |
s1="hh" s2='333gggg' s3=""" 333 44 hhh """ print(s1) print(s2) print(s3) msg="it is good" print(msg) msg_2='It\'s good ' print(msg_2) print("谢谢大家\n我是橘子") msg_2 = "It's good" # 双引号包裹,内部单引号直接用,无需转义! print(msg_2) print("橘子说"+":"+s1+","+s2) # 字符串拼接6:字符串格式化
%占位符格式化:用%s占位置,末尾%(变量1,变量2,...)填充,兼容字符串、数字- f-string 格式化:字符串前加
f,直接用{变量名}嵌入变量,写法更简单直 s1="大家好" s2="我是橘子" s3=18 print("今日是晴天,%s,%s,今年%s岁"%(s1,s2,s3)) name="橙子" print(f"大家好,我是{name},今年{s3}岁") print("大家好,我是" + name + ",今年" + str(s3) + "岁")
7:输入与输出
input()函数:用于接收用户键盘输入,括号内是输入提示语,获取到的内容默认都是字符串类型。算术时,需要进行int float转化- 可将输入结果赋值给变量,实现数据存储。
name=input("请输入你的姓名") print(f"你的姓名是:{name}")8:算术运算符
+加法示例:3 + 5→ 结果8-减法示例:9 - 2→ 结果7*乘法示例:4 * 6→ 结果24/除法运算结果永远是小数(浮点数) 示例:8 / 2→ 结果4.0//整除相除后只保留整数部分,舍弃小数 示例:9 // 2→ 结果4%取余(取模)求除法运算后的余数 示例:9 % 2→ 结果1**幂运算计算数值的次方 示例:2 ** 3→ 结果8(2 的 3 次方)
# 加法 + print(3 + 5) # 减法 - print(9 - 2) # 乘法 * print(4 * 6) # 除法 / print(8 / 2) # 整除 // print(9 // 2) # 取余 % print(9 % 2) # 幂运算 ** print(2 ** 3)9:赋值运算符
- 基础赋值
=:将右侧数据 / 运算结果赋值给左侧变量。 - 复合赋值:算术运算符 +
=的简写,逻辑为先运算、再重新赋值,包含+=、-=、*=、/=、//=、%=、**=
# 1. 基础赋值 = a = 10 print("初始值 a =", a) # 2. 加法赋值 += 等价于 a = a + 5 a += 5 print("a += 5 →", a) # 3. 减法赋值 -= 等价于 a = a - 3 a -= 3 print("a -= 3 →", a) # 4. 乘法赋值 *= 等价于 a = a * 2 a *= 2 print("a *= 2 →", a) # 5. 除法赋值 /= 等价于 a = a / 4 a /= 4 print("a /= 4 →", a) # 6. 整除赋值 //= 等价于 a = a // 2 a //= 2 print("a //= 2 →", a) # 7. 取余赋值 %= 等价于 a = a % 3 a %= 3 print("a %= 3 →", a) # 8. 幂运算赋值 **= 等价于 a = a ** 4 a **= 4 print("a **= 4 →", a)10:比较运算符
==等于:判断两侧数值是否相等!=不等于:判断两侧数值是否不相等>大于、<小于:常规大小比较>=大于等于、<=小于等于:包含等于的大小判断x = 15 y = 8 # 1. 判断是否相等 == print("x == y", x == y) # 2. 判断是否不等 != print("x != y", x != y) # 3. 大于 > print("x > y", x > y) # 4. 小于 < print("x < y", x < y) # 5. 大于等于 >= print("x >= y", x >= y) # 6. 小于等于 <= print("x <= y", x <= y) # 补充:数值相等的测试 m = 20 n = 20 print("m == n", m == n)
11:逻辑运算符
逻辑运算符用来组合多个判断条件,运算结果只有True(真)和False(假),共 3 个:
and(逻辑与):两边条件全都成立,结果才为True;任一不成立则为False。or(逻辑或):两边条件只要有一个成立,结果就为True;全部不成立才为False。not(逻辑非):对条件结果取反,真变假、假变真。
a = 10 b = 5 # 1. 逻辑与 and print("a > b and a < 20:", a > b and a < 20) # 两个条件都成立 print("a > b and a < 5:", a > b and a < 5) # 一个条件不成立 # 2. 逻辑或 or print("a < 3 or b > 2:", a < 3 or b > 2) # 一个条件成立 print("a < 1 or b > 9:", a < 1 or b > 9) # 两个条件都不成立 # 3. 逻辑非 not(取反) print("not (a > b):", not (a > b)) # 原条件为真,取反变假 print("not (a < b):", not (a < b)) # 原条件为假,取反变真 # 组合运算示例 print("a > 8 and b < 3 or a == 10:", a > 8 and b < 3 or a == 10)12:if基础语法
- 单
if:满足条件就执行,不满足直接跳过; if...else:二选一,条件成立执行if块,否则执行else块;if...elif...else:多分支判断,从上至下匹配条件,匹配到就执行,全部不满足则走else。
age = 18 # 条件:年龄大于等于18 if age >= 18: print("已成年") age = 15 if age >= 18: print("已成年") else: print("未成年") score = 75 if score >= 90: print("成绩优秀") elif score >= 80: print("成绩良好") elif score >= 60: print("成绩及格") else: print("成绩不及格")13:match case
day =input("输入星期几") match day: case "1": print("星期1") case "2": print("星期2") case _: print("qita")match day::看着day这个变量里的内容准备分拣。case "1"::如果内容是 "1",就执行下面的print("星期1")。case "2"::如果内容是 "2",就执行下面的print("星期2")。重点
case _::这个下划线_相当于考试里的“以上选项都不对”(也就是兜底选项)。如果用户输入的既不是 "1" 也不是 "2"(比如输入了 "8" 或者 "苹果"),就会统统掉进这个兜底选项里,打印出 "qita"。
14:while else
i=0 while i<4: print("juzi") i +=1 else: print("结束")i = 0,满足i < 4,打印第1次 "juzi",i变成 1。
i = 1,满足i < 4,打印第2次 "juzi",i变成 2。
i = 2,满足i < 4,打印第3次 "juzi",i变成 3。
i = 3,满足i < 4,打印第4次 "juzi",i变成 4。
此时i = 4,i < 4不再成立,循环正常结束。
else的作用:当while循环正常走完,条件不满足而结束的时候,就会自动去执行else里面的代码,所以最后屏幕上会打印出 "结束"。
15:for循环
for 临时变量 in 可迭代对象: # 这里是循环体 # 每次循环都会执行这里的代码“可迭代对象”就是指那些可以把里面的元素一个一个拿出来的东西,比如一组排好队的数据(列表)、一段文字(字符串)或者range()生成的数字序列。
# 1. 准备一个列表(相当于一个装满水果的篮子) fruits = ["苹果", "香蕉", "橘子"] # 2. 开始 for 循环 for f in fruits: print("我吃了一个:", f) else: print("水果吃完了!")fruits = ["苹果", "香蕉", "橘子"]:这是我们提前准备好的数据
f:这就是基本结构里的临时变量。你可以把它当成一个“搬运工”。在每一次循环中,电脑会自动把篮子里的下一个水果交给它。
16:range语句
案例:
计算1到100的所有奇数之和
col=0 for i in range(1, 101): if i % 2 != 0: col += i print(col)17:for循环嵌套案例
案例1:
#写一个简单的嵌套for循环,打印一个3行4列的矩形 for i in range(3): # 外层循环控制行数 for j in range(4): # 内层循环控制列数 print("*", end=" ") # 打印星号并保持在同一行 print() # 每打印完一行后换行i执行1次,j会执行4次
在 Python 中,print()函数有一个“隐藏设定”:每次打印完你给的内容后,它都会在最后默认加上一个换行符。平时我们写多个print()时,内容会一行一行地往下排。
当加上end=" "后,你是在强制告诉 Python:打断一下!这次打印完之后,不要给我自动换行,给我加上一个空格就好。
案例2:
打印一个9*9乘法表
# 打印一个9*9乘法表 for i in range(1, 10): for j in range(1, i + 1): print(f"{j}*{i}={i*j}", end="\t") # 使用制表符对齐 print() # 每打印完一行后换行18:容器
18.1:list
列表就像是一个带有编号的多格收纳盒(或者一列火车)。你可以往里面按顺序装各种各样的东西,还可以随时把东西拿出来、放进新的去、或者直接根据编号查一查某个格子里装的是什么。
列表名字 = [数据1, 数据2, 数据3]# 1. 创建一个列表(初始购物车) cart = ["苹果", "香蕉", "牛奶"] print("一开始的购物车:", cart) # 2. 查:获取列表里的特定元素 (按编号拿) first_item = cart[0] print("购物车的第1个东西是:", first_item) # 3. 增:使用 append() 方法往列表末尾加东西 cart.append("面包") print("加了面包后:", cart) # 4. 删:使用 remove() 方法删掉特定的东西 cart.remove("香蕉") print("拿走香蕉后:", cart) # 5. 量:使用 len() 函数看看列表里现在有几个东西 total_items = len(cart) print("现在购物车里有几个东西:", total_items)18.1.1:列表切片
新列表 = 原列表[起始位置 : 结束位置 : 步长]必须记得:顾头不顾尾
# 准备一条长长的“面包”(一个包含6个字母的列表) letters = ['A', 'B', 'C', 'D', 'E', 'F'] # 记住它们的编号(索引): 0, 1, 2, 3, 4, 5 # 基础切片:切取中间的一部分 slice1 = letters[1:4] print("1到4切片:", slice1) # 省略起始位置:从头开始切 slice2 = letters[:3] print("从头切到3:", slice2) # 省略结束位置:一直切到尾 slice3 = letters[3:] print("从3切到尾:", slice3) # 加入步长:跳着切 slice4 = letters[0:6:2] print("每隔2步切一次:", slice4)18.1.2:list方法
# 准备一个初始列表 cards = [5, 2, 9, 1] print("0. 初始状态:", cards) # 1. append() - 在末尾追加 cards.append(7) print("1. append 后:", cards) # 2. insert() - 强行插队 # 在索引为 1 的位置(即原来数字 2 的位置),插入数字 8 cards.insert(1, 8) print("2. insert 后:", cards) # 3. remove() - 按名字删除 cards.remove(9) # 找到数字 9 并把它扔掉 print("3. remove 后:", cards) # 4. pop() - 按位置弹出 # 不写位置,默认弹出(删掉)最后一张牌,并且你能“接住”它 last_card = cards.pop() print(f"4. pop 弹出了 {last_card},剩余列表:", cards) # 5. sort() - 从小到大排序 cards.sort() print("5. sort 排序后:", cards) # 6. reverse() - 整个反转 cards.reverse() print("6. reverse 反转后:", cards)18.1.3:list 案例
#将用户输入的10个数字,存入一个列表中,并将列表的数字进行排序,输出其中的最小值和最大值和评价值 numbers = [] for i in range(10): num = int(input(f"请输入第{i + 1}个数字: ")) numbers.append(num) numbers.sort() print("排序后的数字:", numbers) print("最小值:", numbers[0]) print("最大值:", numbers[-1]) print("平均值:", sum(numbers) / len(numbers))18.2:字符串str
18.2.1:字符串切片
# 0. 准备一条“珍珠项链”(字符串) message = "Hello, Python!" # 1. 查:按位置(索引)拿单个字符 first_char = message[0] print("第1个字符是:", first_char) # 2. 切:字符串切片 (顾头不顾尾) # 截取从 0 到 4 的字符 hello_part = message[0:5] print("切片前5个字符:", hello_part) # 3. 量:测量字符串长度 length = len(message) print("字符串总长度(包含标点和空格):", length) # 4. 拼:把两个字符串连起来 new_message = message + " 我来学你了!" print("拼接后的新字符串:", new_message) # 5. 常用专属方法:替换与大小写转换 upper_msg = message.upper() # 全部转大写 print("全大写:", upper_msg) replaced_msg = message.replace("Python", "World") # 替换内容 print("替换后的内容:", replaced_msg)18.2.2:字符串方法
# 准备一段有前后空格的测试文本 text = " Hello Python, hello World! " print("0. 初始文本:[", text, "]") # 用中括号包起来,方便你看清空格 # 1. strip() - 脱去两边的“外套”(去除首尾空格) clean_text = text.strip() print("1. strip 清理后:["+clean_text+"]") # 2. lower() & upper() - 大小写转换 print("2. lower 全小写:", clean_text.lower()) print("3. upper 全大写:", clean_text.upper()) # 4. find() - 寻人启事(找位置) # 注意:我们用清理过空格的 clean_text 来找 position = clean_text.find("Python") print("4. find 找 'Python' 的位置:", position) # 5. count() - 点名统计(数个数) # 我们数一数小写的 "hello" 出现了几次 hello_count = clean_text.count("hello") print("5. count 数 'hello' 的次数:", hello_count) # 6. replace() - 偷梁换柱(替换内容) new_text = clean_text.replace("World", "Universe") print("6. replace 替换后:", new_text) # 7. startswith() - 查户口(判断开头) is_start = clean_text.startswith("Hello") print("7. startswith 是不是以 'Hello' 开头:", is_start) # 8. split() - 菜刀切菜(分割字符串为列表) # 我们准备一个用逗号隔开的水果字符串 fruits_str = "苹果,香蕉,橘子" fruits_list = fruits_str.split(",") print("8. split 按逗号切开后的列表:", fruits_list)18.2.3:案例
#邮箱格式验证,用户输入邮箱,验证邮箱格式是否正确 email = input("请输入您的邮箱地址: ") if "@" in email and "." in email: print("邮箱格式正确") else: print("邮箱格式不正确")小东西 in 大容器(比如字符串、列表) # 如果找到了,就返回 True(真);没找到,就返回 False(假)18.3:元组tuple
18.3.1:元组切片
可以随意增删改的列表 (List),以及不能被修改的字符串 (String)
元组的元素不能修改
# 0. 创建一个元组 rainbow = ("红", "橙", "黄", "绿", "青", "蓝", "紫") print("完整的彩虹:", rainbow) # 1. 查:按位置(索引)拿单个数据 first_color = rainbow[0] print("第1种颜色是:", first_color) # 2. 切片:截取其中一部分 (顾头不顾尾) # 切取索引 1 到 4(不包含4)的颜色 middle_colors = rainbow[1:4] print("切出来的中间颜色:", middle_colors) # 加入步长跳着切 (每隔2步切一个) jump_colors = rainbow[0:7:2] print("跳着切出的颜色:", jump_colors) # 3. 错误示范(试图打破玻璃柜) # 如果你取消下面这行代码的注释,程序会立刻报错! # rainbow[0] = "黑" # 报错:元组对象不支持修改元素元组初始化用:()
18.3.2:元组方法
# 0. 准备一个元组(记录中奖金额) lottery_records = (5, 0, 5, 50, 0) print("0. 中奖记录:", lottery_records) # 1. count() - 统计中 5 块钱的次数 five_yuan_times = lottery_records.count(5) print("1. 中 5 块钱的次数:", five_yuan_times) # 2. index() - 查查 50 块钱是哪一次中的(找位置) fifty_yuan_position = lottery_records.index(50) print("2. 中 50 块钱的索引位置:", fifty_yuan_position)t2()空元组
#单元素元组 t3=(5,) print(type(t3))单元素元组
