前言
此文本质为本人学习Python过程中的笔记,部分地方叙述表达可能不够清晰,欢迎留言。
(本文适合有一定程序语言基础的读者阅读(最好是c语言))
一、基本语法
1、框架:
(1)以缩进表示层次所属关系、没有大括号
(2)没有分号、没有函数约束、没有begin/end
(3)没有类型声明、没有变量定义、没有指针
2、变量相关:
(1)变量只是将名字和对象关联,赋值操作并不是实际复制值;
id() #可显示对象的地址
3、输入输出:
input()
(a)读入一个字符串,若要使用数值,需要进行类型转换
如:a = int(input())
(b)一行可输入多个值 input().split()
如: n,m=input().split()
print()
每执行一次都自动换行
print(xxxx,end=' ') #不换行的方法
二、数据类型
1、数字类型:
整数:无数据范围
浮点数:浮点运算存在不稳定尾数,有误差
解决方案:
round(x[,n])
#[,n]为可选参数部分
#n保留的小数位数
#若x的小数位小于n,为输出位数以x的小数位为准
复数:
形如:a+b*j
real取实部 imag取虚部
complex(a,b) #用于创建real + imag * j
算数运算符:
'/' #浮点数除法
'//' #整数除法
'**' #幂运算
字符串:
单双引号无区别,三引号可跨行
运算符:
'+' #链接字符串
如:'hello'+'world' -> 'helloworld'
'*' #复制字符串
如:'ab'*3 -> 'ababab'
索引:
[0~n-1] or [-n,-1]
切片:
S[a:b] #读取S(a,b)的子串
三、常用内置转换函数
1、类型类:
bool()
int ()
float() #根据传入参数穿件新的浮点数
str() #创建字符创
2、编码类:
ord()
chr()
bin()
oct()
hex()
list() #根据传入参数创建列表
如: list('abcd') -> ['a','b','c','d']
3、详解:
int():
格式:int(x[,base=10]) #方括号内为可选参数
用法:
(a)int() #不传参,return 0
(b)int("02") #去掉0
(c)int(" 35 ") #去掉空格
(d)int("35",8) #转为8进制
ord():
用法:
(a)ord('a') #转为ASCII码 输出:97
(b)ord('中') #转为Unicode码 输出20013
chr(97) #参数类型为整数 输出:'a'
4、进制转换类函数:参数为十进制
bin() #输出二进制
oct() #输出八进制
hex() #输出十六进制
四、语句
1、基本规则:
(a)通常一行一条语句
(b)一行多条语句则用分号(;)隔开
(c)语句太长需要跨行,行末用(\)
2、赋值:
用法 1:普通赋值
用法 2:序列赋值
x,y=a,b #等价于 x=a y=b
常见用法:
x,y=y,x #等价于 swap(x,y)
用法 3:
i,j=[1,2,3] #error
i,*j=[1,2,3] #等价于 i=1 j=[2,3]
3、if语句:
if 逻辑表达式
语句块
elif 逻辑表达式
语句块
else 逻辑表达式
语句块
注意事项:
如果元素有多种形式的,if语句放在for前面。
如果元素不需要分类说明时,if语句放在for的后面。
4、循环语句:
for var in 列表
语句块
示例:for i in [1,2,3,4]:
printf(i,end=' ')
range(start,stop,step)函数
start:从start开始。默认从0开始
stop:到top结束。不包括stop
step:步长,默认为1
5、列表推导式:
描述:
(a)一种穿件列表的方式
(b)可与循环、条件结合使用;
(c)生成的是字符串列表
示例:
(1)与for结合
n1=[2*i for i in [1,2,3,4,5]]
即:n1=[2,4,6,8,10]
(2)与if结合
a=[1/i if i%2==1 else -1/i for i in range(1,n+1)]
即:a=[1,1/2,1/3,...,1/n]
应用示例:
(1)求1+1/2+...+1/20的和
a=sum([1/i for i in range(1,21)])
print(a) #即可输出结果
(2)求1-1/2+1/3-1/4+1/5+...
a=sum([1/i if i%2 else -1/i for i in range(1,21)])
print(a)
(3)求6+66+666+...+666...666
n=int(input())
print(sum(int(['6'*i for i in range(1,n+1)])))