当前位置: 首页 > news >正文

Python零基础学习--基础语法

目录

一、

1、字符串拼接

1)直接

2)字符串格式化

2、输入输出

3、运算符

1)算术运算符

2)赋值运算符

3)比较运算符

4)赋值运算符

4、流程控制语句

1)条件判断

a、if条件

b、match...case模式匹配

2)循环语句

a、while循环

b、for循环

c、案例

d、关键字break和continue

二、数据容器

1、list列表

2、str

1)如何判断某个子串是否在字符串中

2)如何将字符串反转

3、元组(tuple)

组包与解包

例子

案例

4、集合(set)

运算符

1、运算符 &

2、运算符 -

3、运算符 |

将多个set合并

1、成一个列表

2、成一个集合

5、字典(dict)

遍历

案例

6、数据容器总结对比

7、综合案例


python官网地址:python.org

pycharm官网:www.jetbrains.com

一、

1、字符串拼接

1)直接

用+ :字符串常量和字符串变量都可以用+进行拼接

str():将整形转化成字符串,就可以与字符串拼接了

int():其他类型转为int

float():其他类型转为float

bool():其他类型转为bool

print 时,输出不同内容可以用逗号连接,但输出结果中间会存在空格

2)字符串格式化

通过%占位符(%表示要占位,s表示将变量转为字符串放入占位的位置)

a,b = 8,9 #将变量转为字符串放入占位的位置 print("大家好,我是%s"%a) #有几个占位符,就要跟几个变量 print("大家好,我是%s,欢迎%s"%(a,b))

通过f"内容{变量/表达式}",大括号内可以写算术表达式

a,b = 8,9 #占位符是{} print(f"大家好,我是{a}") #有几个占位符,就要跟几个变量 print(f"大家好,我是{a},欢迎{b}")

2、输入输出

input语句获取键盘输入,s = input(提示信息),要注意从键盘中获取到的都是字符串,无论输入什么

print将数据输出到控制台,print(数据),print默认以“\n”结束,如果想让他输出不换行,要指定end参数,来指定每次print以什么结束

注意:如果想一次性输入多个变量,由于input() 返回的是一个字符串,是一个整体,不能自动拆分,所以要使用split()函数,将字符串用空格分开或指定其他分隔符

# 错误写法 × name, price, num = input("请输入商品名称、价格、数量") #正确写法 √ name, price, num = input("请输入商品名称、价格、数量").split()

3、运算符

1)算术运算符

特别的,除法运算的结果是小数

优先级:(** )>(* / // % )>(+ -

精度损失问题,可以用decimal模块来解决

#修改前 x=float(input())#0.5 y=float(input())#0.4 print("x-y=",x-y) #输出为0.999999998,这是二进制float无法精确表示所有小数 #修改后 from decimal import Decimal x = Decimal(input()) #0.5 y = Decimal(input()) #0.4 print("x-y =", x - y) #正确输出0.1

小数想要四舍五入保留精度,可以使用round()函数,

语法是round(数字,保留精度位数小数点后几位)

2)赋值运算符

3)比较运算符
4)赋值运算符

4、流程控制语句

1)条件判断
a、if条件
"""案例:三角形类型判断""" a = int(input("请输入第一个边长")) b = int(input("请输入第2个边长")) c = int(input("请输入第3个边长")) if a+b > c and a+c>b and b+c>a: if a == b == c: print(f"{a} {b} {c}等边") elif a == b or a == c or b == c: print(f"{a} {b} {c}等腰") else: print(f"{a} {b} {c}普通") else: print("不能构成三角形")
b、match...case模式匹配

case语句后面可以加条件判断语句

"""计算器""" a = float(input("请输入第一个运算数")) b = float(input("请输入第二个运算数")) opre = input("输入运算符") match opre: case "+": print(f"{a}+{b}={a+b}") case "-": print(f"{a}-{b}={a-b}") case "*": print(f"{a}*{b}={a*b}") case "/" if b != 0: print(f"{a}/{b}={a/b}") case _: #匹配其他所有情况 print("错误")
2)循环语句
a、while循环
"""计算1-100之间所有偶数的累加之和""" a = 1 sum = 0 while a <= 100: if a % 2 == 0: sum += a a += 1 # else这段逻辑可有可无 else: print(f"结果为{sum},正常结束")
b、for循环

与c语言中不太一样,for的本质是遍历一个数据集中的所有元素

"""计算1-100之间所有奇数的累加之和""" sum1 = 0 for i in range(1, 101, 2): sum1 += i #用逗号连接输出会有空格 print("1-100之间所有奇数的累加之和为",sum1) """计算100-500之间所有3的倍数之和""" sum2 = 0 for i in range(100, 501): if i % 3 == 0: sum2 += i #没空格 print(f"100-500之间所有3的倍数之和为{sum2}")
c、案例
"""打印99乘法表""" for i in range(1, 10): for j in range(1, i+1): print(f"{j} × {i} = {i*j}", end="\t") print()
d、关键字break和continue

break只能用于循环中,跳出当前循环

continue用于略过后面的执行体,进入下一次循环

"""用户登录""" while True: admin = input("请输入用户名") password = input("请输入密码") if admin == "" or password == "": print("用户名和密码不能为空!") continue else: if (admin == "admin" and password == "666888") or (admin == "zhangsan" and password == "123456") or (admin == "taoge" and password == "888666"): print("登陆成功") break else: print("用户名或密码错误")

二、数据容器

1、list列表

2、str

1)如何判断某个子串是否在字符串中
# 1、count()方法、find()方法 s = "wer@123.com" if s.find('.') and s.count('@') == 1: print("邮箱格式正确") else: print("邮箱格式错误") # 2、in运算符 s = "wer@123.com" if '.' in s and s.count('@') == 1: print("邮箱格式正确") else: print("邮箱格式错误")
2)如何将字符串反转
#利用字符串切片 s = "asdfgh" ss = s[::-1]

判断字符串是否是回文串

s = input() ss = s[::-1] if s == ss: print("是回文串") else: print("不是回文串")

3、元组(tuple)

注意:如果元组中只有一个元素,单个元素之后必须要加逗号,例如(100,)

组包与解包

基础解包的变量数量要与容器的元素个数一致

解包用*会收集成列表便于后续处理

例子
# 将a b c数据交换 a, c = 1, 3 b = 2 a, b, c = c, a, b print(a, b, c)
案例

grad = ( ("S001", "王林", 85, 92, 78), ("S002", "李慕婉", 92, 88, 95), ("S003", "十三", 78, 85, 82), ("S004", "曾牛", 88, 79, 91), ("S005", "周轶", 95, 96, 89), ("S006", "王卓", 76, 82, 77), ("S007", "红蝶", 89, 91, 94), ("S008", "徐立国", 75, 69, 82), ("S009", "许木", 86, 89, 98), ("S010", "遁天", 66, 59, 72), ) # 1 每个学生计算总分、各科平均分 print("学号\t\t总分\t\t平均分") # 方式一 """for g in grad: all_score = g[-1] + g[-2] + g[-3] average_score = all_score / 3 print(f"{g[0]}\t{all_score}\t\t{average_score:.1f}")""" # 方式二 基于解包,可读性高 for id, name, chinese, math, english in grad: all_score = chinese + math + english average_score = all_score / 3 print(f"{id}\t{all_score}\t\t{average_score:.1f}") # 2 各科成绩的 chinese_scores = [s[2] for s in grad] math_scores = [s[3] for s in grad] english_scores = [s[4] for s in grad] print(f"语文最低分{min(chinese_scores)},最高分{max(chinese_scores)},平均分{sum(chinese_scores)/len(chinese_scores)}") print(f"数学最低分{min(math_scores)},最高分{max(math_scores)},平均分{sum(math_scores)/len(math_scores)}") print(f"英语最低分{min(english_scores)},最高分{max(english_scores)},平均分{sum(english_scores)/len(english_scores)}") # 3 查找成绩优秀的学生 """for g in grad: all_score = g[-1] + g[-2] + g[-3] average_score = all_score / 3 if average_score > 90: print(f"{g[0]}同学成绩优秀,平均分大于90")""" for id, name, chinese, math, english in grad: all_score = chinese + math + english average_score = all_score / 3 if average_score > 90: print(f"{id}同学成绩优秀,平均分大于90")

4、集合(set)

运算符
1、运算符 &

可以实现和intersection一样的效果

set1.intersection(set2) 等价于 set1 &set2

2、运算符 -

可以实现和difference一样的效果

set1.difference(set2) 等价于 set1 - set2

还可以用集合推导式语法:{要往集合中添加的数据 for s in set1 if 条件}

set3 = { s for s in set1 if s not in set2 }

3、运算符 |

可以实现和union一样的效果

set1.union(set2) 等价于 set1 | set2

将多个set合并
1、成一个列表

使用解包,可以用于计算多个集合中每个元素一共出现多少次

all_list = [*set1 , *set2 , *set3]

2、成一个集合

使用union或者|,可以用于去重

5、字典(dict)

如果键重复,后面的值会覆盖前面的值

添加和修改的语法一样,如果字典中已经存在这个key,就会修改,否则添加

遍历
for k in dict.keys(): print(f"{k} : {dict[k]}") for item in dict.items(): print(f"{item[0]} : {item[1]}") for k, v in dict.items(): print(f"{k} : {v}") #注意如果想遍历键值对,不能直接遍历dict,因为默认遍历的是键 #以下是错误的 for k in dict1: print(k)
案例

print("欢迎使用购物车") shop_car = dict() while 1: instruct = input("请选择要进行的操作:\n1、添加\n2、修改\n3、删除\n4、查询\n5、退出") match instruct: case "1": name, price, num = input("请输入商品名称、价格、数量").split() if name in shop_car: print("该商品已存在,添加失败") else: shop_car[name] = [price, num] print("添加成功") case "2": name, price, num = input("请输入商品名称、价格、数量").split() if name not in shop_car: print("不存在该商品,请核实") else: shop_car[name] = [price, num] print("修改成功") case "3": name = input("请输入商品名称") if name not in shop_car: print("商品不存在,删除失败") else: del shop_car[name] print("删除成功") case "4": for k, v in shop_car.items(): print(f"商品名称{k},商品价格{v[0]},商品数量{v[1]}") case "5": print("已退出") break case _: print("非法操作,请重新输入")

6、数据容器总结对比

7、综合案例

print("欢迎使用教务管理系统") menu = """ ####################### 1、添加学生信息 2、修改学生信息 3、删除学生信息 4、查询学生信息 5、列出所有学生 6、统计班级成绩 7、退出系统 ####################### """ students = {} while 1: print(menu) order = input("请选择\n") match order: case "1": name = input("请输入学生姓名:") if name in students: print("添加失败,已经存在该学生!") continue chinese = float(input("请输入语文成绩:")) math = float(input("请输入数学成绩:")) english = float(input("请输入英语成绩:")) students[name] = {"chinese": chinese, "math": math, "english": english} case "2": name = input("请输入学生姓名:") if name not in students: print("修改失败,未找到该学生!") continue chinese = float(input("请输入语文成绩:")) math = float(input("请输入数学成绩:")) english = float(input("请输入英语成绩:")) students[name] = {"chinese": chinese, "math": math, "english": english} case "3": name = input("请输入学生姓名:") if name not in students: print("删除失败,未找到该学生!") continue students.pop(name) case "4": name = input("请输入学生姓名:") if name not in students: print("查找失败,未找到该学生!") continue print(f"学生姓名:{name},语文成绩:{students[name]['chinese']}," f"数学成绩:{students[name]['math']},英语成绩:{students[name]['english']}") case "5": for name in students: print(f"学生姓名:{name},语文成绩:{students[name]['chinese']}," f"数学成绩:{students[name]['math']},英语成绩:{students[name]['english']}") case "6": chinese_score = [students[name]['chinese'] for name in students] math_score = [students[name]['math'] for name in students] english_score = [students[name]['english'] for name in students] print(f"语文最高分:{max(chinese_score)},最低分:{min(chinese_score)},平均分{sum(chinese_score)/len(chinese_score)}") print(f"数学最高分:{max(math_score)},最低分:{min(math_score)},平均分{sum(math_score) / len(math_score)}") print(f"英语最高分:{max(english_score)},最低分:{min(english_score)},平均分{sum(english_score) / len(english_score)}") case "7": print("bye!") break case _: print("error!")
http://www.jsqmd.com/news/1400601/

相关文章:

  • 小智 AI 还能这么玩?接入萤石摄像头,告警抓图一气呵成!
  • VMware虚拟机Vulkan环境搭建与排坑指南
  • 【H桥驱动有错误吗?TL431改进驱动】2026-7-15
  • 华为AIPL计划:昇腾生态下的AI实践教学标准化解决方案
  • Java的类与对象
  • 2026甄选:深圳水利水电监理资质甲级代办品牌机构实力解析 - 卓企推荐
  • Steam创意工坊模组下载终极指南:用WorkshopDL三步搞定跨平台MOD
  • 仓库里躺着6种品牌的标签机,为什么一个可执行文件就全搞定了?LPrint标签打印部署全解
  • DeepSeek Harness 对比 WorkBuddy:一个给发动机,一个把活儿做完
  • QT C++ AI葡萄智能疏果工上位机(信创完整版)
  • 达梦数据库表结构DDL获取全攻略:从系统表查询到DBMS_METADATA实战
  • Bun实战指南:一体化JavaScript工具链的性能优势与迁移策略
  • 【ORC】ORC 的谓词下推引擎(SearchArgumentImpl)是如何解析和评估过滤条件的?
  • 构建工业级作弊检测系统:从特征工程到实时风控的实战指南
  • Chrome ERR_FAILED错误排查指南:从网络诊断到本地开发环境修复
  • Python包安装失败全解析:从VC++编译到Conda环境管理
  • AI Gateway 实战指南:统一接口、智能路由与成本优化
  • 都说电路板维修赚大钱,其实新手入门就靠这几样元件
  • SCI论文写作实战指南:从战略准备到投稿修改的系统方法
  • To B 市场部要做真增长,怎么安排关系户
  • Grok Bot:从AI工具到工作流引擎,如何构建自动化智能助手
  • SGLang源码深度解析:从编译执行到RadixAttention的推理优化实践
  • 结构体与函数:从数据封装到模块化编程的实战指南
  • Linux运维面试题
  • Linux重定向操作符>与>>深度解析:从内核原理到脚本实战
  • 2026甄选:粤泓(深圳)建筑咨询有限公司,输变电资质二级代办的稳健合作伙伴 - 卓企推荐
  • 2026 抖音小店无货源一件代发盈利核心拆解 抖掌柜 AI 运营 + 密文发货 + 精细化选品 新手零囤货轻资产起店不封店全实操指南 - 抖掌柜—键铺货
  • GEO优化会被大模型限流吗?装修建材实战解析 - 装企自媒体训练营辉哥
  • 如何正确安装ESP32 IDF中的ESPADF组件? ​
  • 从零构建情境化AI应用:基于本地大模型与提示词工程的沉浸式交互实践