在Python中,不需要事先声明变量名及其类型,直接赋值即可创建各种类型的对象变量。这一点适用于Python任意类型的对象。
print(type(x)) //查看x变量类型
isinstance('Hello world', str) #测试对象是否是某个类型的实例
字符串和元组属于不可变序列,不能通过修改下标的方式来修改其中的元素值,试图修改元组中元素的值时会抛出异常。
用单引号、双引号或三引号括起来的符号系列称为字符串 单引号、双引号、三单引号、三双引号可以互相嵌套,用来表示复杂字符串
常用转义字符

字符串界定符前面加字母r表示原始字符串,其中的特殊字符不进行转义,但字符串的最后一个字符不能是\。原始字符串主要用于正则表达式、文件路径或者URL的场合
+运算符除了用于算术加法以外,还可以用于列表、元组、字符串的连接,但不支持不同类型的对象之间相加或连接。
*运算符不仅可以用于数值乘法,还可以用于列表、字符串、元组等类型,当列表、字符串或元组等类型变量与整数进行“*”运算时,表示对内容进行重复并返回重复后的新对象。
Python中的除法有两种,“/”和“//”分别表示除法和整除运算
%运算符除去可以用于字符串格式化之外,还可以对整数和浮点数计算余数。但是由于浮点数的精确度影响,计算结果可能略有误差。
Python 3.5增加了一个新的矩阵相乘运算符@






dir()函数可以查看指定模块中包含的所有成员或者指定对象类型所支持的操作。
help()函数则返回指定模块或函数的说明文档。
ord()和chr()是一对功能相反的函数,ord()用来返回单个字符的序数或Unicode码,而chr()则用来返回某序数对应的字符,str()则直接将其任意类型参数转换为字符串
max()、min()、sum()这三个内置函数分别用于计算列表、元组或其他可迭代对象中所有元素最大值、最小值以及所有元素之和,sum()要求元素支持加法运算,max()和min()则要求序列或可迭代对象中的元素之间可比较大小。
内置函数type()和isinstance()可以判断数据类型。
sorted()对列表、元组、字典、集合或其他可迭代对象进行排序并返回新列表,reversed()对可迭代对象(生成器对象和具有惰性求值特性的zip、map、filter、enumerate等类似对象除外)进行翻转(首尾交换)并返回可迭代的reversed对象。
enumerate()函数用来枚举可迭代对象中的元素,返回可迭代的enumerate对象,其中每个元素都是包含索引和值的元组。
内置函数map()把一个函数func依次映射到序列或迭代器对象的每个元素上,并返回一个可迭代的map对象作为结果,map对象中每个元素是原序列中元素经过函数func处理后的结果。
标准库functools中的函数reduce()可以将一个接收2个参数的函数以迭代累积的方式从左到右依次作用到一个序列或迭代器对象的所有元素上,并且允许指定一个初始值。
内置函数filter()将一个单参数函数作用到一个序列上,返回该序列中使得该函数返回值为True的那些元素组成的filter对象,如果指定函数为None,则返回序列中等价于True的元素。
range()是Python开发中非常常用的一个内置函数,语法格式为range([start,] end [, step] )。该函数返回具有惰性求值特点的range对象,其中包含左闭右开区间[start,end)内以step为步长的整数。参数start默认为0,step默认为1。
zip()函数用来把多个可迭代对象中的元素压缩到一起,返回一个可迭代的zip对象,其中每个元素都是包含原来的多个可迭代对象对应位置上元素的元组,如同拉拉链一样。
在Python中具有自动内存管理功能,Python解释器会跟踪所有的值,一旦发现某个值不再有任何变量指向,将会自动删除该值。尽管如此,自动内存管理或者垃圾回收机制并不能保证及时释放内存。显式释放自己申请的资源是程序员的好习惯之一,也是程序员素养的重要体现之一。
在Python中,可以使用del命令来显式删除对象并解除与值之间的指向关系。删除对象时,如果其指向的值还有别的变量指向则不删除该值,如果删除对象后该值不再有其他变量指向,则删除该值。
del命令无法删除元组或字符串中的元素,只可以删除整个元组或字符串,因为这两者均属于不可变序列。
用Python进行程序设计,输入是通过input( )函数来实现的,input( )的一般格式为:
x = input('提示:')
该函数返回输入的对象。可输入数字、字符串和其它任意类型对象。
在Python 2.x中,还有另外一个内置函数raw_input()也可以用来接收用户输入的值。与input()函数不同的是,raw_input()函数返回结果的类型一律为字符串,而不论用户使用什么界定符(引号)
在Python 3.x中,不存在raw_input()函数,只提供了input()函数用来接收用户的键盘输入。在Python 3.x中,不论用户输入数据时使用什么界定符,input()函数的返回结果都是字符串,需要将其转换为相应的类型再处理。
实现输出带空格
print(i, end=' ') 10 11 12 13 14 15 16 17 18 19、
import 模块名
>>>import math >>>math.sin(0.5) #求0.5的正弦
>>>import random >>>x=random.random( ) #获得[0,1) 内的随机小数
>>>y=random.random( ) >>>n=random.randint(1,100) #获得[1,100]上的随机整数
可以使用dir函数查看任意模块中所有的对象列表,如果调用不带参数的dir()函数,则返回当前所有名字列表。
可以使用help函数查看任意模块或函数的使用帮助。
from 模块名 import 对象名[ as 别名] #可以减少查询次数,提高执行速度 from math import * #谨慎使用
如果需要导入多个模块,一般建议按如下顺序进行导入: 标准库 成熟的第三方扩展库 自己开发的库
每个Python脚本在运行时都有一个“__name__”属性。如果脚本作为模块被导入,则其“__name__”属性的值被自动设置为模块名;如果脚本独立运行,则其“__name__”属性值被自动设置为“__main__”。例如,假设文件nametest.py中只包含下面一行代码:
print(__name__)
在IDLE中直接运行该程序时,或者在命令行提示符环境中运行该程序文件时,运行结果如下:
__main__
而将该文件作为模块导入时得到如下执行结果:
>>> import nametest
nametest
利用“__name__”属性即可控制Python程序的运行方式。例如,编写一个包含大量可被其他程序利用的函数的模块,而不希望该模块可以直接运行,则可以在程序文件中添加以下代码: if __name__ == '__main__': print('Please use me as a module.') 这样一来,程序直接执行时将会得到提示“Please use me as a module.”,而使用import语句将其作为模块导入后可以使用其中的类、方法、常量或其他成员。
例1-1:用户输入一个三位自然数,计算并输出其佰位、十位和个位上的数字。
x=input('请输入一个三位数:')
#改变输入的类型
x=int(x)
#百位数
a=x//100;
b=x//10%10
c=x%10
print(a,b,c)
另解:
x=input('请输入一个三位数:')
x=int(x)
#divmod(x,y) 返回包含整商和余数的元组((x-x%y)/y,x%y)
a,b=divmod(x,100)
b,c=divmod(b,10)
print(a,b,c)
另解
x=input('请输入一个三位数:')
a,b,c=map(int,x)
print(a,b,c)

例1-2:已知三角形的两边长及其夹角,求第三边长。
import math
x=input('输入两边长及夹角(度):')
a,b,theta=map(float,x.split())
#余弦定理
c=math.sqrt(a**2+b**2-2*a*b*math.cos(theta*math.pi/180))
print('c=',c)
例1-3:任意输入三个英文单词,按字典顺序输出。
s=input('x,y,z=')
x,y,z=s.split(',')
if x>y:
x,y=y,x
if x>z:
x,z=z,x
if y>z:
y,z=z,y
print(x,y,z)
或
s=input('x,y,z=')
x,y,z=s.split(',')
#直接利用sorted函数排序
x,y,z=sorted([x,y,z])
print(x,y,z)

1370

被折叠的 条评论
为什么被折叠?



