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 = 20

formatted_string = "姓名:%s, 年龄:%d " % (name, age)
print(formatted_string)

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

  • 字符串format()方法
name = "张三"
age = 20

formatted_string = "姓名:{}, 年龄:{}".format(name, age)
print(formatted_string)

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

  • f-字符串

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

name = "张三"
age = 20

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

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

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值