当前位置: 首页 > 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

http://www.lryc.cn/news/361837.html

相关文章:

  • 2024年有什么值得入手的5G长期套餐大流量卡推荐?大流量手机卡入手指南(超4款正规手机卡实测总结)
  • 《尚上优选》项目Bug记录
  • Flutter 中的 PopupMenuTheme 小部件:全面指南
  • uni-app的网络请求库封装及使用(同时支持微信小程序)
  • 力扣524. 通过删除字母匹配到字典里最长单词
  • 【代码随想录】【算法训练营】【第27天】 [39]组合总和 [40] 组合总和II [131]分割回文串
  • 解决 git 命令 Problem with the SSL CA cert (path? access rights?)
  • 详解:重庆耶非凡的选品师项目有哪些优势?
  • DSP28335模块配置模板系列——GPIO配置模板
  • 【SringBoot项目中MyBatis-Plus多数据源应用实践】
  • Android 图表开发开源库 MPAndroidChart 使用总结
  • 手机号脱敏
  • java基础篇(1)
  • 2022年全国职业院校技能大赛高职组“信息安全管理与评估”赛项第三阶段任务书
  • 微信小程序蓝牙连接部分Android14调用wx.setBLEMTU协商低功耗最大传输单元失败解决方案(部分安卓14设置超过23就会报错)
  • PDF格式分析(八十二)——电影注释(movie)
  • Opentracing 代码Demo
  • 笔记93:关于 C++ 中的 Eigen 库
  • 【微服务】部署mysql集群,主从复制,读写分离
  • 【Java】设计一个支持敏感数据存储和传输安全的加解密平台
  • iOS AVFoundation 音视频源码分享
  • Ubuntu开发入门之“制作Ubuntu rootfs根文件系统镜像“
  • 基于FPGA的SystemVerilog练习
  • 【数据结构】详解堆的基本结构及其实现
  • python无限弹窗的代码
  • 多线程新手村5--线程池
  • 数据库 mysql 的彻底卸载
  • Meterpreter工具使用
  • 第四讲 单片机STC89C52+RA8889代码移植范例(包含API接口)
  • QT 音乐播放器【一】 显示音频级别指示器