Python basics

2025/11/01 学习 共 6022 字,约 18 分钟
w解释语言
保留字if else if else True False if and
x,y=y,x 交换
x,y=3,4
//取整
%取余
**平方
==比较 !=

and x>5 and x<10 #全对True
not
x<5 or x<10 #至少一个对 True
print(5+6)  11
print("5+6")  5+6
print("sum",end="\n")换行

#输入 input返回的都是字符串
num=input("输入整数")
num=int(input("输入"))//把字符串转换为int
eval(input(""))
eval(<字符串>) 

x=1
eval("x+1") 执行并解释
2
value=eval(input("请输入"))
print(value*2)

print("3+5") 3+5
eval("3+5") print(3+5) 8

num1,num2=eval(input("请输入"))
sum=(num1+num2)

0-11 
-1-12
name='HELLO WORLD'  5/-7为空格
name[0]
is['oo','qq','pp']
is[1] qq

#引号
print('he said"good"')  #1.内双外单/内单外双
print("he said \"let\'s go\"") #2.前加 \" 表后面的引号为单纯的引号

#字符串连接
print("hello "+"world"+"a")
greet="您好"
print(greet+"张三")
print(greet+"李四")

#换行
print("hello\nhi") #1.\n
print("""床前明月光 
疑是地上霜
举头望明月
低头思故乡""") #2. """ """保留原有换行

#命名 
#1.字母小写,_分隔
user_name
#2.UserName

#math库 建立python计算器
import math 
print(math.sin(1)) #引用
print(math.log2(8))
#-x*x-2*x+3=0 #求根公式
a=-1 #求另外的方程 改abc即可
b=-2
c=3
print((-b+math.sqrt(b**2-4*a*c))/(2*a))
print((-b-math.sqrt(b**2-4*a*c))/(2*a))

#多行注释 """ """

#类型
#字符串 str ""或者''
print(len('www!!')) #字符串长度len
print("hello"[0]) #提取其中一个
#浮点数 flaot
#布尔bool True False
#空值类型 None
type(True)  #返回类型 :bool

#条件语句
if[条件]:
    执行语句
else:
    执行语句
    mood_index=int(input("心情指数"))
if mood_index>=60:
    print("太好了")
else:
    print("不好哦")
    
#条件嵌套
x=int(input("x="))
if x>8:#先看条件一
    print("or")
elif x>7:#条件二
    print("no")
elif x>6:#条件三
    print("yes")
else:
    print("hh")

语句块 if 条件 else 语句块

#for<变量> in range():
#    语句块
pets=['cat','duck','monkey']
for x in pets:
    print(x,len(x))
cat 3
duck 4
monkey 6

#for 循环变量 in range (循环次数):
#    语句
sum=0
for i in range(10):#10表次数 
#for i in range(1,10): 从1到10
    sum=sum+i
    print(i)
print(sum)

pets=['a','b','c']
pets[:4]
#pets[:]=pets[0:]=pets[:4]
#['a','b','c']

#break continue
sum=0
for i in range(1,11):
    if i<=5:
        continue
    sum=sum+i;
print(sum)

#round(x[,n])
pi=3.1415
round(pi,2)#pi保留两位

#查看数据类型 type()
a=1
b=3.1415
c=True
print(type(a))
print(type(b))
print(type(c))

#round(x,n) x保留n位小数
b=3.1415
print(round(b,2))

p=[1,2,3]
print(3 in p) #3在(True)不在p里
print(4 in p)
print(4 not in p)

s=[1,2]
m=[4,5]
print(s+m) #连接
print(s*3) #把s复制n次
print(s[0],m[1]) #s索引对应值
print(len(s))
print(min(m))
print(max(s))

s=[1,2,3,4,5]
print(s[1:4]) #返回索引1到4(不包括4)的子序列
print(s[0:5:2]) #步数为2

#出现的总次数
s=[1,1,1,2,2]
print(s.count(1))
print(s.count(2))

print("a"+"b")#连接
print("hh"*3)#重复
print(len("happy"))#长度
print("happy"[3])#索引
print("happy"[1:3])#从索引1开始3结束(不包括3)

s="happy"
m="MYH"
print(s.upper())#大写
print(m.lower())

s="  hhh  "
print(s.strip())#去掉两边空格
m="##happy##"
print(m.strip('#'))#去掉两边指定字符

p="m,y,h"
print(p.split(','))#按指定字符分隔字符串

o=["m","y","h"]
print("-".join(o))#连接

s="myu"
print(s.replace("u","h"))#替换

q="myh"
print(q.find("yh"))#查找起始位置

#列表
#append()在列表末尾加
#insert()在列表中间加
Is=["a","b"]
Is.append("c")
Is.append([1,2])
print(Is)
print(Is[2],Is[3][1])
print(Is[1:4])
Is.insert(1,"i")
print(Is)

#list列表 
list=['a','b',2,3]
print(list[2])
list[2]=4#改
print(list)
del list[2]#删
list.remove(3)#删
print(list)
#remove 删除
q=[1,2,2022]
q.remove(2022)
print(q)
#list.count(x)

list=["a","b","a"]
set(list)#去重复 set()

#字典
q={'name':'Alice','age':10,'gender':'Female'}
print(q['gender'])
q['name']='Apple'#改
q.update(app=12)#加
print(q)
q['height']=170#加
print(q)
del q['age']#删
print(q)
q.clear()#清空
print(q)

#set 无序
q={"a","b","c"}#加update
q.update({1,2},[3,4],[5,6])#加
print(q)
q.remove("a")#删
q.discard("b")#删
q.add("d")#加
print(q)

#函数
#def<函数名>(<形参>):
#    <函数体>
#    return<返回值列表>
def myfun():
    print("hh")
myfun()
def area(width,height):
    z=width*height
    return z
print(area(2,3))

def hh(a,*p):#不定长参数前加*
    print(a)
    print(*p)
hh(1,2,3)
def qq(x,*y,z):#不定长参数在中间:后面必须要写z=?
    print(x,y,z)
qq(1,2,3,4,5,z=7)
def ss(n,**m):#两个**以字典传入
    print(n)
    print(m)
ss(1,a=2,b=3)

#匿名函数lambda 一行
fun=lambda x,y:x+y
res=fun(2,3)
print(fun)

##判断n是否为素数
import math
def is_prime(n):
    x=True##不能在上面当全局变量 不然改不了了
    for i in range(2,int(math.sqrt(n))+1):##把浮点数转为整数
        while n%i==0:
            x=False
            break##跳出循环
    print("yes"if x else"no")##if x:
n=int(input())
is_prime(n)

##随机生成10个数
import random
random.seed(123)##使每次一样
for i in range(10):##生成10个
    print(random.randint(1,999),end=",")
 
#判断输入字符串中数字 字母 空格 其他数
def count(s):
    digit=0
    letter=0
    space=0
    other=0
    for char in s:
        if char.isdigit():
            digit+=1
        elif char.isalpha():
            letter+=1
        elif char.isspace():
            space+=1
        else:
            other+=1
    return digit,letter,space,other
s=input("请输入字符串:")
digits,letters,spaces,others=count(s)
print(f"数字{digits}")
print(f"字母{letters}")
print(f"空格{spaces}")
print(f"其他{others}")

#判断字符串是整数浮点数复数返回True,否则FalseS
def isNum(s):
    try:
        int(s)
        return True
    except ValueError:
        try:
            float(s)
            return True
        except ValueError:
            try:
                complex(s)
                return True
            except ValueError:
                return false
test=["123","1.1","3j"]
for case in test:
    print(f"{isNum(case)}")dabbddbab/;

#class 类名:
#  def 方法名(self,参数列表):
#    语句
class Person:#类名首字母大写
    pass
p1=Person()#创建对象:调用构造方法

class Student:
    def info(self):#self是当前对象
        print(a)
        stu1=Student()
        stu1.info()
 
#@staticmethod静态方法
class Person:
  salary=2000000#类属性 可通过Person.salary访问
  def __init__(self,name,age):
    self.name=name
    self.age=age
  def say_hi(self):
      print('请叫我',self.name)
  @staticmethod
  def c_f(c):
      c=float(c)
      f=c*2/3
      return f
p3=Person("tom",20)
print(p3.c_f(3))

#算圆周长面积
class Circle:
    def __init__(self,radius):
        self.radius=radius
    def sarea(self):
        return 3.14*self.radius**2
    def cc(self):
        return 2*3.14*self.radius
circles=[]
for i in range(3):
    print(f"当前录入第{i+1}个圆信息")
    r=float(input("请输入半径"))
    circle=Circle(r)
    circles.append(circle)#append函数:将元素添加到列表末尾 将Circle对象circle添加到列表circles中
    for idx,circle in enumerate(circles,1):
        area=circle.sarea()
        c=circle.cc()
        print(f"{idx}个圆,半径{circle.radius},面积{area:.2f},周长{c:.2f}")#:.2f控制小数点后几位

#继承
class a:
class b(a):
class c(b)

#split
print('a b c'.split(' '))
print('a b c'.split(' ',1))#拆一次
#去除首尾字符
'<a href=换行>'.strip('<a href=>')
'\r\t<hh>\n\t '.strip()
#replace
print('hh'.replace('h','b'))

#格式控制标记:填充
print('{1:*<10}有{0:,}人口,占世界{2:.1%}d的土地'.format(130000000,'中国',0.0072))

print('hh\nkk')
print('12\t34')


#正则表达式
#a..b 由a开始b结束的四个字符字符串
#| 或
#[abc] 'a','b','c'
#[a-z]a-z任意
#1-5 1-5任意
#* abc* 前一个字符0或多次重复
#+ abc+ 前一个字符1或多次重复
#? 前一个字符0/1次重复 abc? ab/abc
#[^] 非 [^abc] 不是a,b,c的其他字符
#{n}  ab{2}c abbc
#{a,b} 前一个字符扩展m-n次 ab{2,4} abbc/abbbc/abbbbc
#x{n,} 至少n次x
#^abc abc在字符串开头
#(|) 
#\s [\t\v\n\f\r]
#\d [0-9]
#\D [^0-9]
#\w [a-z0-9A-Z_]

import re
pattern=re.compile('画质.*[好差]')
comments='相机自动模式画质好,但夜景模式画质差'
pattern.search(comments)

import re
text="电话13811261512,邮箱13811261512@163.com"
phone=re.search(r"\d{11}",text).group()
print(phone)
email=re.search(r"\w+@\w.\w+",text).group()
print(email)



#索引
a=np.array([[1,2,3],[4,5,6]])
print(a[0,1])
print(a[1,:2])


文档信息

Search

    Table of Contents