C/C++选手初学Python可能遇到的问题

Koarz
2023-07-08 / 0 评论 / 0 阅读 / 正在检测是否收录...

列表:


- 1.记得给变量初始化
- 2.在需要的时候转换变量类型
- 3.CP字符串
  - 3.1字符访问(下标)
  - 3.2 substr()与[:]
  - 3.3其他


1.记得给变量初始化

  C++ 中每个变量都有指定的类型,类型决定了变量存储的大小和布局,C++的变量是不需要初始化的(编译器已经帮你完成了)。

  Python中虽然也有基本类型,但是Python的变量只是变量,并不具有特定的类型,它是可以“随时根据需求转换的”,并且Python的变量需要初始化,也就是说,下面这行代码是错误的。

a
a = 1
print(a)

在PyCharm运行之后结果如下:

  所以在创建你的Python变量之前请记得给它初始化。

2.在需要的时候转换变量类型

  就像前文说的Python的变量并不具有特定的类型,也就是说即使你申明了一个整型变量,它也可能在后续的操作中变成其他类型的变量(感觉这样的说法对于py来说并不准确,但是对c++人来理解是这样的),下边就是一个例子:

a = 2
a /= 2
print(a)

运行结果:

  可以看到我们本来申明为整型的变量在经过 “ /= ” 操作后变成了一个浮点型, 如果想保持整型就需要使用 “ //= ”。

  一些操作是只有特定类型才能执行的,所以记得在需要的时候转化变量类型,你可以执行这样的操作:

#此处省略......
a = int(a)
#一样......
3.CP字符串

  C++中字符串可以由多种类型表示char[]、char*、string,在对其赋值时都是用 " " 双引号。

  Python中单引号和双引号都是可以的,并且Python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。就是说可以这样写:

str = """
生活不能等待别人来安排,要自己去争取和奋斗;
而不论其结果是喜是悲,但可以慰藉的是,你总不枉在这世界上活了一场。\n有了这样的认识,你就会珍重生活,而不会玩世不恭;
同时,也会给人自身注入一种强大的内在力量。
"""
print(str)

运行结果:

下边以C++的string对象进行类比

3.1字符访问(下标)

  C++和Python都可以通过下标直接访问字符串中的单个字符,不同的是Python的[]用法并不单一,除了访问单个字符外还可以执行很多操作,这个后边再说。

  Python的下标可以是负数,也就是说str[-1]是允许的,它代表字符串从尾到头的第一个元素,正数情况二者相同。

3.2 substr()与[:]

  C++中药取得一个字符串的子串我们一般使用 substr() 函数

  Python则可以直接用方括号加冒号[:]实现这样的操作

  比如给定一字符串“Hello world”我们可以分别用两个语言进行如下操作:

Python:

str="Hello world"
 
print(str[0:5])#从[0]截到[4]
print(str[-11:-6])#从[-11]截到[-7]
#只有头下标/尾下标的情况
print(str[:5])#尾下标是5,从[0]开始截取到[4]
print(str[6:])#头下标是6,从[6]开始向后截取
'''
注:[]中的头尾下标是左闭右开的[)
'''

运行结果:

C++:

#include <iostream>
#include <string>
using namespace std;
int main() {
    string str = "Hello world";
    cout << str.substr(0,5) << endl    /*Hello*/
         << str.substr(6,5);           /*world*/
    return 0;
}

3.3其他

  除此之外两种语言的string对象都差不多:它们都有很多内置函数大大简化了C语言中的一些字符串算法;你可以对字符串进行+=的操作来连接两个字符串;不同的是Python的字符串可以进行 * 运算。

  Python的输入一般用input(),这个函数默认的数据类型是string,所以还是第一条注意你需要的数据类型。

你可以在CSDN上观看这篇文章: C/C++选手初学Python可能遇到的问题

0

评论 (0)

取消