Skip to content

变量

Python变量有一个非常重要的性质:变量是将名字和对象关联起来。赋值操作并不会实际复制值,它只是为数据对象取个相关的名字。名字是对象的引用而不是对象本身。'='不是运算符,没有结合性。

id()是Python的内置函数,显示对象的地址

x=3 x=7 操作完id会变

输入输出

input()

input()从键盘输入字符串一整行,故返回的是str类型

a=int(input())输入一个整数(但这一行只能有一个整数)

a,b=input().split() split默认按照空格分割,得到两个字符串 如果写s=input.split(),默认是一个str类型的list. 如何转成int?可以一个一个转,也可以用==a,b=map(int,input().split())的方法==

print()

默认带换行 不换行的写法:

print(x,end="") #不带任何字符
print(x,end=" ") #带空格

格式化输出: - 都转成str,再用+ - 用格式化字符串print("%d + %d"%(a,b)) - format

print("*   *\n\
*   *\n\
*****\n\
*   *\n\
*   *")
print("price = {:.2f}".format(x));
print("price = %.2f"%(x)) #格式和C类似

数据类型

整数int

0b或0B 代表二进制 0o或0O 代表八进制 0x 或0X 代表十六进制 自带高精度

5c6f4a4ba8dcacc82e8b5fea63a9ebdb.png

注意负数取整 -4/3 =-1.33 -4//3=-2 (小于等于-1.33的数

类型转换用int(x)

浮点数float

和C,C++类似 注意不整除时/自动转成float

复数

字符串str

注意类型名是str不是string 用+连接 s*n表示x重复n次

列表

列表可以由零个或多个元素组成,元素之间用逗号分开,整个列表被方括号所包裹 下标从0开始

初始化

cnt = [0]*4 # 4个元素为0的list
tab = ['G','P','L','T']
cnt = list(range(10)) #0,1,2...9

成员函数

判断是否存在用count

cnt.count(x)#计数
cnt.index(x)#获得元素位置
len(cnt) #获得大小
for x in a: #只读
for i in range(0,len(a),1): #修改
a.sort() #排序

比较大小,加法 0e14fff2f36ac6737aaa706afeac7829.png

[重要!]列表复制

列表是从0开始计数的

列表的负下标表示从后往前数i个(从1开始) a = [0,1,2,3,4,5,6,7,8,9],a[-1]=9,a[-2]=8

b = a[i:j]  
表示复制a[i]到a[j-1]以生成新的list对象

案例
a = [0,1,2,3,4,5,6,7,8,9] #a[-1]=9,a[-2]=8
b = a[1:3]   # [1,2]

注意
当i缺省时默认为0 a[:3]相当于 a[0:3]. (注意下标从0开始)
当j缺省时默认为len(alist), 即a[1:]相当于a[1:10]
当ij都缺省时a[:] 就相当于完整复制一份a

b = a[i:j:s]
表示i,j与上面的一样但s表示步进缺省为1.
所以 a[i:j:1] 相当于 a[i:j]

注意
当s<0i缺省时默认为-1. j缺省时默认为-len(a)-1
所以a[::-1]相当于 a[-1:-len(a)-1:-1]也就是从最后一个元素到第一个元素复制一遍即倒序

总结倒序a[::-1],正序a[:],负下标表示循环

语句

赋值

多变量赋值(特有语法)

x,y=3,4 #x=3,y=4
x,y=y,x #x,y交换

[重要!]循环

range(a,b)表示a,a+1...b-1 range(n)表示0,1,2...n-1 for i in range(0,10,1) = C语言的for(i=0;i<10;i++) . - 记得写range,左闭右开!!!!,注意range实际上返回一个list for i in A

for i in range(1,n+1,1) 访问[1,n]

函数

import math
def isPrime(n):
    if(n<=1): return 0
    if(n==2): return 1
    for i in range(2,int(math.sqrt(n))+1,1):#注意开区间
        if(n%i==0): return 0
    return 1

if __name__ == "__main__":
    n=int(input())
    while(n>0):
        x=int(input())
        if(isPrime(x)): print("Yes")
        else: print("No")
        n-=1

列表推导式

列表推导式是从一个或者多个列表快速简洁地创建列表的一种方法,又被称为列表解析。它可以将循环和条件判断结合,从而避免语法冗长的代码,同时提高程序性能。 [ expression for item in iterable ] 输出表达式 变量

nl = [2*number for number in [1,2,3,4,5]] #nl=[2, 4, 6, 8, 10]
sum([1/i for i in range(1,21)])

带条件的列表推导

[i if i%4==1 else i for i in  range(1,50) \
       if i %2==1]
[1, -3, 5, -7, 9, -11, 13, -15, 17, -19, 21, -23, 25, -27, 29, -31, 33, -35, 37, -39,41, -43, 45, 
    -47, 49]

math模块是python语言的内置模块。

舍入函数round(x,n)表示把x四舍五入到小数点第n位

math

要使用math库,必须把语句import math放在源程序的第一行。[F]

不需要第一行

math.pi math.sqrt() math.sin() 注意输入是弧度制。 math.log 相当于\(\ln\)

Comments