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

Python | 平均绩点

  • 字符串的概念和特点

字符串既可以使用单引号'',也可以使用双引号""来创建

可以使用+运算符来拼接字符串,并返回字符串拼接后的结果。

first_name = "Tom"
last_name = "Jerry"
full_name = first_name + " " + "and" + " " + last_name
# full_name 现在是 Tom and Jerry
  • 字符串的创建、索引、元素的访问以及遍历操作

索引、for循环遍历、切片获取子字符串(切片后会返回新字符串,需要一个变量来接受)

  • 字符串的常用方法

len()、split()

join(): 将列表中的字符串连接成一个新的字符串,你可以指定连接符号,比如下面的示例。

persons = ["tom", "jerry", "mike"]
text = " ".join(persons)
#将列表中的字符串以空格连接在一起,相当于split的反向操作。"tom jerry mike"

replace(): 用于替换字符串中的指定子字符串。

str1 = "Hello, world!"
str2 = str1.replace("World", "Python")
  • 格式化字符串

在Python中,整数相除会得到浮点数结果,即使结果是一个整数,也会以浮点数的形式表示。(如果用//呢?)

想要在Python中输出保留两位小数的数字,可以使用format()方法, format()方法通常用于字符串中的占位符替换,占位符通常用花括号 {} 表示。你可以将占位符插入到字符串中,然后使用 format() 方法来将实际值插入这些占位符。

number = 3.1415926
# {}是一个占位符,输出结果时会将format()参数里的内容替换在{}中,:.2f 表示保留两位小数
formatted_number = "{:.2f}".format(number)
print(formatted_number)

为什么要用双引号“{ }”呢?是因为变量类型是字符串?还是只有语法的要求?

  • flag编程思想

当循环遇到{A, B, C, D, F}以及空格之外的字符时,会输出"Unknown", 然后退出for循环的执行,但是仍然会执行循环之后的语句,即print语句,实际上,这行代码不应该被执行,应该怎样做才能避免这行代码的执行呢?

我们知道if(条件)可以控制语句的执行,当条件为真的时候,if结构体中的代码可以执行,条件为假的时候则不用执行,所以我们可以联想到下面的形式:

if condition:print("{:.2f}".format(sum_grade / count))

也就是说,我们可以采用这样一种思路,事先给每一行字符串一个“真的令牌”,字符串遍历处理过程中,如果有哪一行字符串中有{A, B, C, D, F}以及空格之外的字符,则把“真令牌”替换成“假令牌”,这样当走出循环之后再进行输出处理时,就会因为不认识这个“假令牌”而不进行输出。

字符串的格式化输出

  • 使用%操作符进行格式化
name = "张三"
age = 20formatted_string = "姓名:%s, 年龄:%d " % (name, age)
print(formatted_string)

使用%会将后面的变量name, age一一对应插入到对应的占位符上,其中%s表示字符串,%d表示整数, %f表示浮点数。

  • 字符串format()方法
name = "张三"
age = 20formatted_string = "姓名:{}, 年龄:{}".format(name, age)
print(formatted_string)

format()方法允许使用占位符{}来插入值,并使用format()方法的参数来提供要插入的值,和上面的操作符很类似。

  • f-字符串

f开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去。

name = "张三"
age = 20formatted_string = f"姓名: {name},年龄:{age}"
print(formatted_string)

while True:try:s = input()score = 0count = 0# flag = 1for c in s:flag = 1# count += 1if c == "A":score += 4count += 1elif c == "B":score += 3count += 1elif c == "C":score += 2count += 1elif c == "D":score += 1count += 1elif c == "F":score += 0count += 1elif c == " ":continueelse:flag = 0print("Unknown")breakif flag:print("{:.2f}".format(score/count))except:break

相关文章:

  • Diffle-Hellman Key Exchange密钥交换
  • java面试题及答案2024,java2024最新面试题及答案(之一)
  • 【面试题】Node.js高频面试题
  • Android handler 一次通关
  • Go Modules 使用
  • 使用system verilog进行流水灯和VGA打印字符
  • CentOS 7基础操作01_安装CentOS 7操作系统
  • 【C语言】动态内存管理
  • 外星人Alienware m16R1 原厂Windows11系统 oem系统
  • 16、matlab求导、求偏导、求定积分、不定积分、数值积分和数值二重积分
  • 数据挖掘 | 实验三 决策树分类算法
  • 深入理解Redis事务、事务异常、乐观锁、管道
  • 解决odbc 数据源创建之后删除失败问题
  • 抄袭瓜!斯坦福作者已删库跑路!面壁和刘知远老师的最新回应
  • 师彼长技以助己(3)逻辑思维
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • 2017年终总结、随想
  • axios 和 cookie 的那些事
  • happypack两次报错的问题
  • JavaScript服务器推送技术之 WebSocket
  • leetcode讲解--894. All Possible Full Binary Trees
  • overflow: hidden IE7无效
  • Python学习之路16-使用API
  • springMvc学习笔记(2)
  • tab.js分享及浏览器兼容性问题汇总
  • 分布式任务队列Celery
  • 聊聊sentinel的DegradeSlot
  • 区块链技术特点之去中心化特性
  • 容器服务kubernetes弹性伸缩高级用法
  • 微信公众号开发小记——5.python微信红包
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • hi-nginx-1.3.4编译安装
  • Java性能优化之JVM GC(垃圾回收机制)
  • linux 淘宝开源监控工具tsar
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (06)Hive——正则表达式
  • (1)(1.13) SiK无线电高级配置(五)
  • (23)mysql中mysqldump备份数据库
  • (3)nginx 配置(nginx.conf)
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (WSI分类)WSI分类文献小综述 2024
  • (五)c52学习之旅-静态数码管
  • (五)网络优化与超参数选择--九五小庞
  • (一)VirtualBox安装增强功能
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • *算法训练(leetcode)第三十九天 | 115. 不同的子序列、583. 两个字符串的删除操作、72. 编辑距离
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET MAUI Sqlite程序应用-数据库配置(一)