python基础语法——下

发布时间:2024年01月20日

python基础语法——上

在前面我们已经讲解了python的一些基础语法知识,今天继续补充一些余下的部分

字符串的进阶操作

对字符串的操作使用,在我们后期会经常使用,因此掌握字符串的操作至关重要,在上一节中我们已经讲解了python中字符串的三种定义方式,下面我们来讲讲有关字符串的其他操作。

字符串拼接

字符串拼接具有广泛的实际应用,在Python中,字符串拼接是将两个或多个字符串连接在一起的操作。有多种方式可以进行字符串拼接,下面看一下详细的示例:

使用+运算符

如果我们有两个字符串(文本)字面量,可以将其拼接成一个字符串,通过+号即可完成,如

print("Hello" + "World") #输出 我是串1我是串2

直接这样的输出有点呆,也不是很常用+也可用于与字符串变量的拼接,如

str1 = "Hello, "
str2 = "World!"
result = str1 + str2
print(result)  # 输出 "Hello, World!"

注意字符串只能和字符串变量进行拼接,否则会报类型错误,如果实在想拼接的话可以使用前面所讲的类型强制转换把非字符串类型转换为字符串类型如

str1 = "Hello"
num = 10
print(str1 + num) # 报错 TypeError: can only concatenate str (not "int") to str

print(str1 + str(num)) # 输出 Hello10

使用,逗号

str1 = "Hello"
str2 = "World"
print(str1, str2) # 输出 Hello World

注意到使用,拼接的话中间会自动加一个空格,而使用+运算符拼接则会原封不动的把两个字符串拼接在一起,这点大家可以根据实际需要选择。

字符串格式化

从上面的字符串拼接中我们发现些什么问题呢?

  1. 变量过多,拼接起来实在是太麻烦了
  2. 字符串无法和数字或其它类型完成拼接

字符串格式胡就可以很好的解决这些问题,字符串格式化是一种将变量值插入到字符串中的方法,以便根据需要创建动态的字符串。在Python中,有多种字符串格式化的方式,下面介绍一些常见的方法:

1. 使用 % 运算符():

name = "John"
age = 30
formatted_string = "My name is %s and I am %d years old." % (name, age)
print(formatted_string)
# 输出 "My name is John and I am 30 years old."
  • 其中%s%d称为占位符,我先把这个位置占着,等有人来了就把对用元素放在这个位置上,

    除了 %s 表示字符串和 %d 表示整数外,还有其他一些常用的格式化占位符,用于表示不同类型的数据。以下是一些常见的格式化占位符:

    %s: 字符串
    %d: 十进制整数
    %f: 浮点数
    %x: 十六进制整数
    %o: 八进制整数
    %r: 使用 repr() 进行字符串表示
    %c: 字符
    %e 或 %E: 用科学计数法表示浮点数
    %g%G: 自动选择 %f%e 表示浮点数

    这种方式称为旧式的字符串格式化。

2. 使用 format() 方法:

name = "John"
age = 30
formatted_string = "My name is {} and I am {} years old.".format(name, age)
print(formatted_string)
# 输出 "My name is John and I am 30 years old."
  • {} 用于占位符,format() 方法会将括号内的值替换到相应的位置。

3. 使用 f-strings(Python 3.6及以上版本)个人最常用也最推荐的方法:

name = "John"
age = 30
formatted_string = f"My name is {name} and I am {age} years old."
print(formatted_string)
# 输出 "My name is John and I am 30 years old."
  • 在字符串前加上 fF,可以直接在字符串中引用变量。

4. 使用 format() 方法指定位置:

name = "John"
age = 30
formatted_string = "My name is {0} and I am {1} years old.".format(name, age)
print(formatted_string)
# 输出 "My name is John and I am 30 years old."
  • 使用 {0}, {1} 等格式指定占位符的位置。

注意事项:

  • 在格式化字符串时,确保占位符的类型与传入的值类型匹配,以避免类型错误。
  • f-strings 提供了一种简洁而直观的格式化方式,但要注意它仅在 Python 3.6 及以上版本中可用。
  • 字符串格式化的选择通常取决于你的个人偏好和代码的上下文。在现代Python代码中,个人推荐使用 format() 方法或 f-strings。

格式化的精度控制

对于整数我们直接格式化输出是没有问题的,可以达到我们预想的结果,但是对于小数,有时我们需要对精度进行控制如,

在字符串格式化中,可以使用格式控制符来控制浮点数的显示精度。格式控制符使用在 % 符号后,表示为 %.nf,其中 n 为要显示的小数点后的位数。

下面是一些示例:

float_value = 3.141592653589793

# 显示两位小数
formatted_value = "%.2f" % float_value
print(formatted_value)  # 输出 3.14

# 显示四位小数
formatted_value = "%.4f" % float_value
print(formatted_value)  # 输出 3.1416

在这里,.2f 表示显示两位小数,.4f 表示显示四位小数。你可以根据需要调整小数点后的位数。

另外,在使用 format() 方法和 f-strings 时,也可以使用相似的语法:

float_value = 3.141592653589793

# 使用 format() 方法
formatted_value = "{:.2f}".format(float_value)
print(formatted_value)  # 输出 3.14

# 使用 f-strings
formatted_value = f"{float_value:.2f}"
print(formatted_value)  # 输出 3.14

这种方式同样允许你控制浮点数的显示精度。在实际应用中,根据需要调整小数点后的位数,以满足格式化输出的要求。

数据输入

在之前的所有使用中都只讲了有关数据的输出,那么我们应该如何获取键盘的输入呢?在Python中,用户输入可以通过内置函数 input() 来实现。input() 函数允许用户在程序执行过程中输入数据,并将输入的数据作为字符串返回。以下是关于数据输入的基本用法:

简单的输入示例

# 简单的输入示例
user_input = input("Enter something: ")
print("You entered:", user_input) #输出你输入的内容

在这个示例中,input() 函数用于接收用户的输入。用户输入的任何内容都将被视为字符串,并存储在变量 user_input 中,然后通过 print() 函数输出。

input() 函数可以接受一个字符串参数,作为用户输入的提示信息:

name = input("Please enter your name: ")
print("Hello, " + name + "!")

转换输入数据类型

由于 input() 返回的是字符串,如果需要得到其他类型的数据,需要将输入转换为其他数据类型(如整数或浮点数),可以使用相应的类型转换函数,即我们前面讲到的强制类型转换(例如 int()float()):

age_str = input("Enter your age: ")
age = int(age_str)
print("Next year, you will be", age + 1, "years old.")

在这个示例中,用户输入的年龄被存储为字符串,然后通过 int() 函数转换为整数,以便进行数学运算。

注意事项

  1. input() 函数返回的始终是字符串,因此如果期望输入为数字,必须进行相应的类型转换。
  2. 用户输入通常需要进行错误处理(这个放在后面再将),以确保输入的数据符合程序的预期。
  3. 在实际应用中,要对用户输入进行适当的验证和处理,以提高程序的健壮性。

以上就是今天的分享,如果对大家有所帮助,还请点赞支持一下,有什么其他问题也欢迎大家评论区留言或者私信我!

文章来源:https://blog.csdn.net/qq_49231165/article/details/135691438
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。