基本输出


    语法结构: print(输出内容)
    print()函数完整的语法格出: print (value,...,sep='',end='\n',file=None)
    只有字符串可以用+连接

基本输入


    语法结构: x=input('提示文字’)
    注意事项: 无论输入的数据是什么 x 的数据类型都是字符串类型

示例:

name = input("Enter your name: ")#单行注释示例
print('我的姓名是:'+name)
fp=open('text.txt','w')#打开文件
print('人生苦短,我用Python',file=fp)#输出内容到文件
fp.close()#关闭文件
a=100
b=50
print(90)
print(a)
print(a*b)
print(a,b,'a+b')
print(chr(65))
print('hello','world',sep='啊',end='//')
print('amazing')
age=input("Enter your age:")
print('我的年龄是:'+age)
print(a,b,sep='',end='')
print('c')

  

注:输出内容到文件中,如果是中文字符,可能会显示乱码,只要更改这个.txt文件的编码格式为 GBK 就可以了(在 Windows 系统中,CMD 默认使用 GBK 编码,若 Python 脚本以 UTF-8 输出中文,CMD 会显示乱码)

print('北京欢迎您!!')
print("北京欢迎您!!")
print("'北京欢迎您!!'")
print('''北京欢迎您''')

在Python中,单双引号是等价的。 

 可以将单双引号交替使用来避免转义

保留字(关键字)

Python 语言中被赋予特定意义的单词,它们在语言内部有固定用途,不能将保留字作为变量名或函数名。Python 版本更新可能会添加或删除保留字,可以通过代码来查看当前版本的保留字列表

import keyword
print(keyword.kwlist)  # 输出当前 Python 版本的所有保留字

截至 Python 3.10,共有 35 个保留字:

False      await      else       import     pass
None       break      except     in         raise
True       class      finally    is         return
and        continue   for        lambda     try
as         def        from       nonlocal   while
assert     del        global     not        with
async      elif       if         or         yield

!!严格区分大小写

标识符

标识符是程序员在程序中为变量、函数、类、模块等自定义的名称。

命名规则:

(1)只能由字母、数字和下划线(_)组成。例如 my_variable、count1 是合法的,而 my-var 是不合法的,因为包含了 -。
(2)不能以数字开头。像 1num 就不是合法的标识符,num1 则是合法的。
(3)不能是 Python 的保留字。比如不能将变量命名为 if、for 等。
(4)区分大小写。MyVar 和 myvar 是两个不同的标识符。


命名习惯:
(1)变量和函数:通常使用小写字母和下划线组合的方式,如 student_name、calculate_sum。
(2)类:采用驼峰命名法,即每个单词的首字母大写,如 StudentInfo、PersonClass。
(3)常量:一般用全大写字母和下划线组合,如 MAX_VALUE、PI。
 

基本数据类型

int(整型)

不限长度,支持任意大小的整数。

x = 100
y = -5
z = 1_000_000  # 下划线分隔大数字

float(双精度浮点型)

表示小数,支持科学计数法。

x = 3.14
y = 1.23e6  # 等同于 1.23 * 10^6

 **和C/C++不同的是,C/C++的 float 为单精度浮点值,double 为双精度浮点值。在 Python 中不会专门区别单双精度,全部按照双精度来处理。

内置函数 round():用于对数字进行四舍五入操作。

语法

round(number, ndigits)

number:必填参数,表示要进行四舍五入的数字,可以是整数、浮点数等数值类型。

ndigits:可选参数,表示要保留的小数位数。如果不提供该参数,round() 函数会将数字四舍五入到最接近的整数。

1. 不指定保留小数位数,四舍五入到整数

num1 = 3.14159
result1 = round(num1)
print(result1)

num2 = 2.99
result2 = round(num2)
print(result2) 

 round(3.14159) 会将 3.14159 四舍五入到最接近的整数,结果为 3;round(2.99) 四舍五入后结果为 3。

2. 指定保留小数位数

num3 = 3.14159
result3 = round(num3, 2)
print(result3)

num4 = 5.6789
result4 = round(num4, 1)
print(result4) 

round(3.14159, 2) 表示将 3.14159 四舍五入到保留两位小数,结果是 3.14;round(5.6789, 1) 会把 5.6789 四舍五入到保留一位小数,结果为 5.7。 

 3. 特殊情况

当舍去部分的最高位恰好为 5,且 5 后面没有其他数字或全为 0 时,如果保留部分的末位数字是偶数,则直接舍去 5(不进位)。如果保留部分的末位数字是奇数,则进位(末位加 1)。

print(round(2.5))  # 结果:2(保留部分末位是2,偶数,舍去5)
print(round(3.5))  # 结果:4(保留部分末位是3,奇数,进位)

print(round(2.35, 1))  # 结果:2.4(保留部分末位是3,奇数,进位)
print(round(2.45, 1))  # 结果:2.4(保留部分末位是4,偶数,舍去5)

complex(复数型)

实部和虚部组成,虚部用 j 表示。

x = 3 + 4j
print(x.real)  # 输出: 3.0
print(x.imag)  # 输出: 4.0

bool(布尔型)

只有两个值 True 和 False,用于逻辑判断。

True = 1,False = 0

布尔值为 False 的情况:

(1)False 或者 None

(2)数值中的 0,包含 0,0.0,虚数 0

(3)空序列,包含空字符串、空元组、空列表、空字典、空集合
 

o=True
print(o)
print(o+10)
q=False
print(q)
print(q+10)

#非零的字符串布尔值为True
print(bool('北京欢迎你'))
print(bool(''))

str(字符串型)

表示文本,用单引号、双引号或三引号包裹。

x = "Hello"
y = 'World'
z = """多行字符串"""
inform='''
你好
世界
'''
print(inform)

**在 Python 中,没有独立的字符(Character)型,而是将单个字符视为长度为 1 的字符串(str 型)。

常见用法:

对字符串中某个子串或区间的检索称为切片

切片的语法结构:字符串或字符串变量 [N:M](从n开始到m结束但是不包含m

字符串索引从左到右的取值范围:0 到 n-1;

字符串索引从右到左的取值范围:-1到 n;

常用的字符串操作:     

(1)x+y 将字符串x与y连接起来     

(2)x*n或n*x 复制n次字符串x     

(3)x in s 如果x是s的子串,结果为True,否则结果为False

#字符串索引及切片操作
s='helloworld'
print(s[0],s[-10])
print('北京欢迎你'[3])
print('北京欢迎你'[-2])
print(s[2:7])#正向递增
print(s[-8:-3])#反向递减
print(s[:5])#默认从0开始
print(s[5:])#默认切片到结尾

#常用的字符串操作
x='2005'
y='小明出生'
z='2'
print(x+y)
print(x*10)
print(x in y,z in x)

数据类型之间的转换

函数 描述说明
int(x) 将 x 转换为整数类型
float(x) 将 x 转换为浮点数类型
str(x) 将 x 转成字符串
chr(x) 将整数 x 转换为一个字符
ord(x) 将一个字符 x 转换为其对应的整数值
hex(x) 将一个整数 x 转换为一个十六进制字符串
oct(x) 将一个整数 x 转换为一个八进制字符串
bin(x) 将一个整数 x 转换为一个二进制字符串

 **辨析 str(x) 和 chr(x) :

函数 str(x) chr(x)
功能 将任意对象转换为字符串表示形式 将 整数 转换为对应字符
参数类型 任意类型(整数、列表、自定义对象等) 必须是整数(范围:0 ~ 1,114,111)
返回值 对象的字符串形式(保留结构) 长度为 1 的字符串(单个字符)
典型场景 字符串拼接、文件写入、打印调试信息 生成特殊字符(如表情符号、非 ASCII 字符)

(1)处理整数 

str(65)    # '65'(直接转为数字的文本形式)
chr(65)    # 'A'(Unicode 码点 65 对应字符 'A')

 (2)处理容器类型

str([1, 2])  # '[1, 2]'(保留列表格式的字符串)
chr([1, 2])  # 报错!chr() 只接受整数

 (3)生成特殊字符

chr(128512)  # 😀(笑脸表情)
chr(0x4E2D)  # 中(Unicode 码点 20013)

容器数据类型

list(列表)

可变、有序的元素集合,支持任意数据类型。

x = [1, "apple", True]
x.append(3.14)  # 添加元素

tuple(元组)

不可变、有序的元素集合。

x = (1, "apple", True)
# x[0] = 2  # 错误:元组不可修改

range(范围)

不可变的整数序列,通常用于循环。

x = range(5)  # 生成 0, 1, 2, 3, 4

这里的 range 和 C/C++ 中的 for 循环有点像,主要是语法逻辑和底层机制上有些许区别:

(1)语法形式差异

Python是: range + for
Python 的 for 是迭代循环,range 生成一个可迭代的整数序列,语法聚焦 “要遍历的内容”

# 无需手动管理索引、终止条件
for i in range(3):
    print(i)  # 依次取 0,1,2

C/C++是: for 循环

C/C++ 的 for 是索引循环,语法需手动写初始化、条件、步长,更贴近 “控制循环流程” 

// 手动定义 i 的起始、终止、步长
for (int i = 0; i < 3; i++) {
    cout << i << endl;  // 依次取 0,1,2
}

(2)底层机制差异 

Python的 range

range 返回的是生成器 / 序列对象,不预先创建全部值(除非用 list(range(...)) 强制转换),更省内存,适合大数据场景。
逻辑上是 “迭代已有的序列”,而非 “控制循环次数”。

C/C++的 for
本质是通过条件判断控制循环流程,循环变量 i 是手动维护的索引,每次循环需自己确保逻辑正确(比如避免数组越界)。
逻辑上是 “手动控制循环的开始、结束、步进”。

对比维度 Python range + for C/C++ for 循环
语法设计 聚焦 “要遍历的内容”,自动迭代序列 聚焦 “控制循环流程”,需手动管理索引
底层逻辑 基于可迭代对象(迭代已有序列) 基于条件判断(手动控制流程)
内存特性 range 按需生成值,省内存 无隐式优化,需手动控制内存
典型场景 遍历已知范围的整数、序列索引 灵活控制复杂循环(如嵌套、条件跳转)

可以把 Python 的 range 看作 “自动生成可遍历的整数序列”,而 C/C++ 的 for 是“手动搭建循环的框架”

(3)形象说明

假设场景:要从 “1 号到 5 号苹果” 中逐个拿苹果

1. 用 Python 的 range(1,6) 就像这样:

  • 你告诉仓库管理员:“我要拿 1 到 5 号苹果,一个一个给我”。
  • 管理员不会先把 5 个苹果都堆在你面前,而是你要第 1 个,他就递 1 号;你要第 2 个,他再递 2 号…… 直到 5 号。
  • 全程苹果不会一次性堆出来,什么时候要,什么时候给,节省空间(仓库里的苹果不用提前搬到你面前)。

对应代码:

for apple in range(1,6):  # 1到5号苹果,逐个拿
    print("拿到苹果:", apple)
  • range(1,6) 就像这个 “按需给苹果的管理员”,只记录 “1 到 5、每次拿 1 个” 的规则,不提前生成所有苹果。

2. 用 C/C++ 的 for 循环(模拟拿苹果)更像这样:

  • 你自己当管理员,必须先想好:“我从 1 号开始拿,拿到 5 号为止,每次拿完一个就换下一个”。
  • 步骤要手动写清楚:
            ① 先站在 1 号苹果前(int i=1);
            ② 检查是不是还没到 5 号(i<=5);
            ③ 拿当前苹果(print(i));
            ④ 走到下一个苹果(i++)。

对应代码:

for (int i=1; i<=5; i++) {  // 手动写清楚:从1开始、到5为止、每次+1
    cout << "拿到苹果:" << i << endl;
}
  • 这里的 i 就像你手里的 “号码牌”,全程需要自己控制 “从哪开始、到哪停、怎么往下走”。

 

再对比 “内存占用”:

  • Python 的 range(1,1000000)(拿 1 到 100 万个苹果):
    管理员只记 “1 到 100 万、每次拿 1 个” 的规则,不用提前把 100 万个苹果堆出来,占的空间极少。

  • 如果 C/C++ 用数组存所有苹果(int arr[1000000] = {1,2,...,1000000}):
    就必须先把 100 万个苹果一个个摆在面前,占满空间,再逐个拿,很浪费。
    (当然 C/C++ 也可以像 Python 那样 “按需拿”,但步骤要自己写全,不像 range 那样一句话搞定)。

总结:

  • Python 的 range 是 “自动按规则给你想要的数,不用你管细节”;
  • C/C++ 的 for 循环是 “你必须自己写清楚怎么开始、怎么结束、怎么往下走”。

dict(字典)

无序的键值对集合,键必须唯一且不可变。

d = {"name": "Alice", "age": 30}  # 键值对用冒号分隔
d = dict(name="Alice", age=30)    # 另一种创建方式
print(x["name"])  # 输出: Alice

set(集合)

无序、唯一元素的集合,支持数学集合运算。

s = {1, 2, 3}                     # 直接用花括号
s = set([1, 2, 3])                # 通过列表创建
s = set()                         # 创建空集合(不能用 {},否则是字典)
x.add(4)  # 添加元素

1、数据去重:

lst = [1, 2, 2, 3, 3, 3]
unique_items = set(lst)  # {1, 2, 3}

2、数学集合运算

s1 = {1, 2, 3}
s2 = {3, 4, 5}
print(s1 & s2)  # 交集:{3}
print(s1 | s2)  # 并集:{1, 2, 3, 4, 5}
print(s1 - s2)  # 差集:{1, 2}

转义字符

转义字符 描述 示例(打印结果)
\\ 反斜杠本身 print('a\\b') → a\b
\' 单引号 print('I\'m') → I'm
\" 双引号 print("She said: \"Hi\"") → She said: "Hi"
\n 换行符(新行) print('a\nb') →
a
b
\t 制表符(Tab) print('Name\tAge') → Name Age
\r 回车符(覆盖当前行) print('Hello\rWorld') → WorldHello 被覆盖)
\b 退格符(Backspace) print('abc\bd') → abd(删除 c
print('老师说:\"好好学习,天天向上\"')
print('老师说:"好好学习,天天向上"')

#加r/R可以使转义字符失效
print(r'老师说:\"好好学习,天天向上\"')
print(R'老师说:\"好好学习,天天向上\"')

算术运算符

运算符 描述说明 示例 结果
+ 加法 1+1 2
- 减法 1-1 0
* 乘法 2*3 6
/ 除法 5/2 2.5
// 整除 5//2 2
% 取余 10%3 1
** 幂运算 2**4 16

和 C/C++ 的除法计算不同, C/C++ 的除法运算会直接舍去小数部分(相当于 Python 中的整除)

赋值运算符 

运算符 描述说明 示例 展开形式
= 简单的赋值运算 x=y x=y
+= 加赋值 x+=y x=x+y
-= 减赋值 x-=y x=x-y
*= 乘赋值 x*=y x=x*y
/= 除赋值 x/=y x=x/y
%= 取余赋值 x%=y x=x%y
**= 幂赋值 x**=y x=x**y
//= 整除赋值 x//=y x=x//y

比较运算符

运算符 描述说明 示例 结果
> 大于 98>90 True
< 小于 98<90 False
== 等于 98==90 False
!= 不等于 98!=90 True
>= 大于或等于 98>=98 True
<= 小于或等于 98<=98 True

逻辑运算符

运算符 描述说明 用法 结合方向
and 逻辑与 表达式 1 and 表达式 2 从左到右
or 逻辑或 表达式 1 or 表达式 2 从左到右
not 逻辑非 not 表达式 从右到左
表达式 1 表达式 2 表达式 1 and 表达式 2 表达式 1 or 表达式 2 not 表达式 1
True True True True False
True False False True False
False False False False True
False True False True True

优先级从高到低依次为非与或not > and > or 

位运算符

把数字看作二进制数来进行计算。

按位与(&)、按位或(|)、按位异或(^)//不同为 1 、按位取反(~)

左移位(<<)//左边高位舍弃,右边低位补0、右移位(>>)//右边地位舍弃,左边高位补0

【左乘右除:向左移位是乘法操作,向右移位是除法操作】

运算符的优先级

运算符 描述说明
** 幂运算
~、+、- 取反、正号、负号
*、/、%、// 算术运算符
+、- 算术运算符
<<、>> 位运算符中的左移位和右移位
& 位运算符中的按位与
^ 位运算符中的异或
| 位运算符中的按位或
<、<=、>、>=、!=、== 比较运算符
= 赋值运算符

选择结构(if-elif-else)

语法
if condition1:
    # 条件1满足时执行
    statement1
elif condition2:
    # 条件1不满足但条件2满足时执行
    statement2
else:
    # 所有条件都不满足时执行
    statement3
用例
x = 15

if x < 10:
    print("x小于10")
elif x < 20:
    print("x在10到20之间")  # 输出此句
else:
    print("x大于等于20")

遍历循环(for 语句)

语法
for element in iterable:
    # 对可迭代对象中的每个元素执行操作
    statement
用例
#遍历列表
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)  # 依次输出 apple, banana, cherry

#遍历字符串
for char in "hello":
    print(char)  # 依次输出 h, e, l, l, o

#遍历范围(range)
for i in range(5):  # 等价于 range(0, 5)
    print(i)  # 依次输出 0, 1, 2, 3, 4
与C/C++的for语句进行对比

python 和 C/C++ 的 for 语句不同的地方是,python 的 for 语句是自动对可迭代对象的每个元素进行操作(逐项遍历)而 C/C++ 的 for 循环语句的循环方式是完全手动的,包括起始元素,终止条件,以及步长,这说明不是每个元素都可能会操作到。

 无限循环(while 语句)

语法
while condition:
    # 条件为True时重复执行
    statement
    # 需包含使条件趋向于False的操作,否则会导致死循环
用例
#计数循环
count = 0
while count < 3:
    print(count)  # 依次输出 0, 1, 2
    count += 1

#用户交互
password = ""
while password != "secret":
    password = input("请输入密码:")
print("密码正确!")

循环控制语句

break

立即终止整个循环。

for i in range(10):
    if i == 5:
        break
    print(i)  # 输出 0-4
continue

跳过当前循环的剩余代码,直接进入下一次循环。

for i in range(5):
    if i % 2 == 0:
        continue
    print(i)  # 输出 1, 3

嵌套结构

示例:

#九九乘法表
for i in range(1, 10):
    for j in range(1, i+1):
        print(f"{j}×{i}={i*j}", end="\t")
    print()  # 换行

今天的分享就到这里啦~~

谢谢你的观看!!

Logo

欢迎加入西安开发者社区!我们致力于为西安地区的开发者提供学习、合作和成长的机会。参与我们的活动,与专家分享最新技术趋势,解决挑战,探索创新。加入我们,共同打造技术社区!

更多推荐