小此方头像
关注
C++程序员快速上手Python——看看Python和C++到底有什么不同(一)封面图

C++程序员快速上手Python——看看Python和C++到底有什么不同(一)

在这里插入图片描述

◆ 博主名称: 小此方-CSDN博客
大家好,欢迎来到小此方的博客。
⭐️Linux系列个人专栏: 【主题曲】Linux
⭐️此方的GitHub: github_此方
⭐️ Re系列专栏:我们思考 (Rethink) · 我们重建 (Rebuild) · 我们记录 (Record)


概要&序論

  Hello大家好,我是此方,这个专栏讲Python,从基础语法到Python常用的库的总体介绍。但是本专栏适用人群是对C/C++语法比较熟悉的人群。不会详细讲解Python的语法细节,只会对比差异快速上手。
  和以往不同,我们就不讲Python的历史和发展了。

  也许我可以试试条款式的写法?一定追求极致的简洁!

Tips: 我们的文章使用的Python环境

  适用于多种工作场合:

运行环境:Ubuntu20.04 ;
解释器:Python3 版本3.8.10 ;
编辑器:VScode

一、 语法基础与变量

条款 1:舍弃句末分号 ;,即使失去它你会感到别扭,Python 靠换行分隔语句。
条款 2:变量无需显式声明类型,在赋值时自动确定类型。

a = 10
print(type(a))

条款 3:使用 type() 内置函数直接查看变量类型。
条款 4:支持“动态类型”,变量类型可在程序运行过程中随时发生变化(C++ 无法做到)。

二、 数据类型差异

条款 5:小数只有 float 一种类型(没有 double),底层等价于 C++ 的双精度浮点数 double。
条款 6:单引号 ‘hello’ 与双引号 “hello” 完全等价,无 C++ 中 char 与 std::string 的区别。
条款 7:使用 len() 函数直接获取字符串长度。

a = 'hello'
print(len(a))

条款 8:布尔类型为 True 和 False,首字母必须大写!
条款 9:单行注释用 #;多行注释或文档字符串用连续三个单引号 ‘’’ 或双引号 “”"。

# 这是一行注释.
"""
这是文档字符串
这是文档字符串
"""

三、 输入输出与类型转换

条款 10:使用前缀 f 格式化字符串(f-string),通过 {} 内嵌变量或表达式(C++ 原生无此语法)。

num = 10
print(f'num = {num}')

条款 11:使用 input() 获取控制台输入,参数为可选提示词,返回值为 str 类型。

num = 0
num = input('请输入一个整数:')
print(f'你输入的整数是 {num}')

条款 12:使用 int()、float()、bool()、str() 进行显式类型转换(即“强制类型转换”)。

a = input('请输入第一个整数:')
b = input('请输入第二个整数:')

a = int(a)
b = int(b)

print(f'a + b = {a + b}')

四、 运算符与特殊语法

条款 13:除法 / 默认保留小数(如 2 / 3 得到 0.666…),不同于 C++ 截断整数;使用 // 进行取整除法(地板除,向下取整)。
条款 14:使用 ** 进行乘方运算,同时支持整数和小数次方。

print(4 ** 2)
print(4 ** 0.5)

条款 15:逻辑运算符弃用 &&、||、!,改用英文单词 and(一假则假)、or(一真则真)、not(取反)。

a = 10
b = 20
c = 30

print(a < b and b < c)
print(a < b and b > c)

print(a > b or b > c)
print(a < b or b > c)

print(not a < b)
print(not a > b)

条款 16:支持连续比较语法(如 a < b < c),等价于 a < b and b < c。
条款 17:支持多元赋值,交换两变量无需临时变量,直接 a, b = b, a 即可。

a, b = 10, 20
a = 10
b = 20
a, b = b, a

条款 18:取消 ++ 和 – 运算符,如需自增/自减,必须使用 += 1 或 -= 1。

五、 条件语句

Python 中的条件语句写法,和很多编程语言不太一样:

条款 19:if 后面的条件表达式取消圆括号 (),并使用冒号 : 作为结尾。

条款 20:取消花括号 {},严格使用缩进(通常是 4 个空格或 1 个 tab)来界定“语句块”。

条款 21:多条件分支不写 else if,而是合体写作 elif。

(1) if 例子

if expression:
    do_something1
    do_something2
next_something
  • 如果 expression 值为 True, 则执行 do_something1, do_something2, next_something
  • 如果 expression 值为 False, 则只执行 next_something, 不执行 do_something1, do_something2

(2) if - else 例子

if expression:
    do_something1
else:
    do_something2
  • 如果 expression 值为 True, 则执行 do_something1
  • 如果 expression 值为 False, 则执行 do_something2

(3) if - elif - else 例子

if expression1:
    do_something1
elif expression2:
    do_something2
else:
    do_something3
  • 如果 expression1 值为 True, 则执行 do_something1
  • 如果 expression1 值为 False, 并且 expression2 值为 True 则执行 do_something2
  • 如果 expression1 值为 False, 并且 expression2 值为 False 则执行 do_something3

六、缩进和代码块

  代码块指的是一组放在一起执行的代码。
  在 Python 中使用缩进表示代码块. 不同级别的缩进, 程序的执行效果是不同的。

# 代码1
a = input("请输入一个整数: ")
if a == "1":
    print("hello")
    print("world")
# 代码2
a = input("请输入一个整数: ")
if a == "1":
    print("hello")
print("world")

注意上述代码的区别.

  在代码1中, print(“world”) 有一级缩进, 这个语句属于 if 内的代码块, 意味着条件成立, 才执行, 条件不成立, 则不执行.
  在代码2中, print(“world”) 没有缩进, 这个语句是 if 外部的代码, 不属于 if 内部的代码块. 意味着条件无论是否成立, 都会执行.
  另外, 代码块内部还可以嵌套代码块.

a = input("请输入第一个整数: ")
b = input("请输入第二个整数: ")

if a == "1":
    if b == "2":
        print("hello")
    print("world")
print("python")

  在这个代码中,

  • print(“hello”) 具有两级缩进, 属于 if b == “2”: 条件成立的代码块.
  • print(“world”) 具有一级缩进, 属于 if a == “1”: 条件成立的代码块.
  • print(“python”) 没有缩进, 无论上述两个条件是否成立, 该语句都会执行.

  基于缩进的方式表示代码块, 带来的好处就是强制要求程序员要写明确的缩进, 来明确代码之间的相对关系. 如果缩进书写的不对, 则直接报错。

像 C++ / Java 这些语言, 即使完全不写缩进, 语法也不会报错, 代码可读性就比较差。

  同时, 带来的坏处就是, 如果缩进层次比较多, 就容易分不清楚某个语句属于哪个层级。

if a == 1:
    if b == 2:
        if c == 3:
            if d == 4:
                if e == 5:
                    if f == 6:
                        if g == 7:
                            print("hello")
                    print("1")
        print("2")

请问, 上述代码中的 print(“1”) 和 print(“2”) 属于哪一级缩进?

所以,写 Python 请自备游标卡尺!

在这里插入图片描述

条款 22:使用 pass 作为空语句占位。Python 不允许条件分支或函数体内部为空,若暂时无需编写具体逻辑,必须使用 pass 占位以维持语法完整(不同于 C++ 可以直接写一对空大括号 {} 或分号 ;)。

七、空语句 pass

  输入一个数字,如果数字为 1,则打印 hello。

a = int(input("请输入一个整数:"))
if a == 1:
    print("hello")

  这个代码也可以等价写成:

a = int(input("请输入一个整数:"))
if a != 1:
    pass
else:
    print("hello")

  其中 pass 表示空语句,并不会对程序的执行有任何影响,只是占个位置,保持 Python 语法格式符合要求。
  如果代码写作:

a = int(input("请输入一个整数:"))
if a != 1:

else:
    print("hello")

  程序是不符合 Python 语法的,会直接报错。

八、for循环

  while循环的语法没有太大差别
条款 23:Python 的 for 循环没有 C++ 式的“初始化语句”、“条件判定语句”和“循环变量更新语句”,而是通过 for 循环变量 in 可迭代对象: 的结构直接遍历对象。
条款 24:常用 range(begin, end, step) 函数生成可迭代区间,包含范围为前闭后开区间 [begin, end);第三个参数 step 用于指定步长(支持正数和负数)。
  基本语法格式:

for 循环变量 in 可迭代对象:
    循环体

  代码示例: 打印 1-10

for i in range(1, 11):
    print(i)

  使用 range 函数, 能够生成一个可迭代对象. 生成的范围是 [1, 11), 也就是 [1, 10]
  代码示例: 打印 2, 4, 6, 8, 10

for i in range(2, 12, 2):
    print(i)

   通过 range 的第三个参数, 可以指定迭代时候的 “步长”. 也就是一次让循环变量加几。
  代码示例: 打印 10-1

for i in range(10, 0, -1):
    print(i)

  range 的步长 也可以设定成负数.
  continue,break这些和C++都一样。不讲。


好的本期内容就到这里,如果对你有帮助,还不要忘记点赞三联支持。我是此方,我们下期再见。bye! 。

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/Z2314246476/article/details/164375713

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--