与众不同的Python(一)

1. 字符串格式化输出

age=24
print('age=%d' % age)
print('age={}'.format(age))
print(f'age={age}')

在这里插入图片描述
对于输入函数input,需要注意的是返回的是str类型对象。

2. 转义字符和原始字符

+字符,转义字符:\r、\n、\、\a…
r+字符,原始字符:print(r'D:\note'),含义就是让\n不再是转义字符换行的效果,就是字符’\n’

3. python中没有++操作

同样没有--操作
字符串后没有隐含的\0

4. 动态强类型

Python是一种 动态强类型 编程语言.
动态是指运行时进行变量类型检查; 强类型 指类型检查严格, 并且"偏向于"不允许隐式转换.
列表、字典的值可变,其它int、float、tuple、str等均不可以改变。

a=[10,'abc',[1,2,3],{'name':'zhangwei','age':20}]
'''变量a指向的对象是一个拥有4个元素的列表'''
a[3]['age']=18 
print(a)
[10, 'abc', [1, 2, 3], {'name': 'zhangwei', 'age': 18}]

5. + 用于字符串连接运算, * 用于字符重复

a,b='abc','ABC'
print(a+b)
print(a*3)
abcABC
abcabcabc

6.引用和对象

在python中一切皆对象,函数、模块、文件等都是对象。
你是否听过Key_Value结构?python对象特性:KTV
K 对象标识,可通过内建函数id()取获取某个对象在内存中的唯一标识。
T 对象类型,可通过内建函数type()获取对象的类型。
V 表示对象中具体保存的内容. 有些对象的值可以修改, 有些对象的值不能修改, 这个称为对象的 “可变性”。

而变量类似于给对象贴标签,标签指向的对象是可以改变的。

a,b='str','c'
a=a+b
print(a)
strc

str对象不可以改变,上述一共产生了3个str对象,标签a开始时候执行str对象,之后标签a指向strc,像a这种标签就是python中的引用。

7.列表解析

a=[x**2 for x in range(10)]
print(a)

b=[x*2 for x in a if x%2==1]
print(b)

在这里插入图片描述

8.作用域和生命周期

Python中, def、class、lamda 会改变变量的作用域,if、else、 elif、 while,、for、 try/except不会改变变量的作用域。
在这里插入图片描述
在C语言中,如果是{}内的变量,作用域仅限于{}内,而python不是这样的。

for i in range(10):
    pass
print(i)

也就是说上述代码是合法的。

内建函数globals()返回了全局作用域下都有哪些变量, 内建函数locals()返回了局部作用域下都有哪些变量。

9.多元赋值

x, y = 1, 2等价于x=1,y=2
在C语言中,要交换两个同类型变量的值,需要创建第三个同类型变量。醋壶装醋,油壶装油,要想让醋壶装油,油壶装醋,我们需要第三个空壶来周转。可是python不需要这样,python实现如下:

a,b=10,20
a,b=b,a
print(a,b,sep='\n')

sep是print的一个参数,表示打印元素的分隔符,默认为一个空格。

10.重新认识运算符号/

在C语言中,当需要做除法时候,我们会使用/。如果除数和被除数都是int类型,那么结果只能保留整数位,相当于C语言在做完除法之后,还隐式转换了结果的类型。
在这里插入图片描述
而在python中,/就仅仅是除法,结果是多少就是多少。如果想要C语言那种除法结果不保留小数位,那么就有了//。同时python还提供了可以得到商和余数一组结果的方法:divmod

发布了139 篇原创文章 · 获赞 55 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/Vickers_xiaowei/article/details/104166720