Python基础

基本语法

输入与输出

#输出和输入
s="""迪迦
你还好吗"""
print(s) #换行输出

# name=input('您的名字:')
# print(name)

变量与数据类型

标识符

  1. 标识符包含字母、数字、下划线,且不能以数字开头
  2. 大小写敏感
  3. 以下划线开头的标识符具有特殊含义

关键字

变量
在这里插入图片描述

1.Python是弱类型语言,不需要声明变量的数据类型,变量的类型由存放的数据决定。
2.Python也是动态类型语言,a开始时int类型,被重新赋值后,a又变成了str类型。
3.以上两点和Java、C不同

对变量重新赋值,本质是改变变量指向内存地址
在这里插入图片描述
基本数据类型
1.数值类型:int float
2.布尔类型 :bool
3.字符串类型:str

转义字符

数据类型的转换

#错误示例
# age=1008
# print('我的年龄是:'+age)

#正确示例
age=1008
print('我的年龄是:'+str(age))

格式化字符串

1.使用%格式化

name='奥德彪'
age=23
print('my name:%s,my age:%d' % (name,age))
print('my name:%s,my age:%010d' % (name,age)) #指定宽度,高位补0

# 指定宽度和小数位数
pi=3.14159265
print('%10f' % pi)
print('%10.2f' % pi)
print('%-10.2f' % pi) #左对齐

2.f’ '函数格式化

name='李逵'
age=0
print(f'name:{name},age:{age}')

pi=3.14159265
print(f'圆周率:{pi:10.2f}')

运算符

print(5/2) #2.5
print(5//2) #2
print(5%2)
print(5**2) #5的2次方

print(5==3) #False
print(5!=3) #True

a=3
b=2
b+=a*b
print(b)

#与、或、非
a=True
b=False
print(a and b)
print(a or b)
print(not a)

#按位与、或、取反运算
print(3&5)
print(3|5)
print(~5)

#左移、右移
print(4<<1)
print(4>>1)

选择和循环语句

#if选择语句
money=9999
if money>0 and money<1:
    print("吃蛇皮!")
elif money<5:
    print("吃包子")
else:
    print("吃鲍鱼")

num = 3
if num in (1,3,5):
    print("中奖!")
else:
    print("没中!")

gua=False
print('刘华强买瓜')
if gua==False:
    haveGua=False
    if haveGua==False:
        print('没瓜,买瓜!')
        gua=True
    else:
        print('有瓜,买一个番茄!')
else:
    print('有瓜')

#while循环
a=1
sum=0
while a<5:
    sum+=a
    a+=1
print(sum)

#for循环
sum=0;
for i in range(1,101): #从1~100循环100次
    sum+=i
print(sum)

for i in range(4): #从0~3循环4次
    for j in range(4):
        print('*',end=' ')
    print()

for i in range(1,10):
    for j in range(1,i+1):
        sum=i*j
        print(f'{j}*{i}={sum:2d}',end=' ')
    print()

#break与continue
#略

List列表

Python中的数据结构:

  1. 序列
    1.可变序列:List列表
    2.不可变序列:Tuple元组,字符串String
  2. 非序列
    1.映射:Dict字典
    2.集合:Set集合
list1=[1,1.1,'abc',True] #列表中的元素可以是任意数据类型,包括数据结构
print(list1[0])

#常用操作列表的函数

print(len(list1))

list2=[1,-99,20,100]
print(max(list2))
#增加列表元素
list2.append(5)
print(list2)
#删除列表元素
# list2.pop() #默认删除最后一个元素
# list2.pop(2)
#根据元素值删除
# list2.remove(元素值)

#遍历列表-迭代
for i in list2:
    i+=1
    print(i)
print(list2)

#遍历列表-按index下标
for i in range(len(list2)):
    list2[i]+=1
    print(list2[i])
print(list2)

'''
以上两种方式分别是浅拷贝和深拷贝
第一种没有修改list2的值
第二种修改了list2的值
'''

#列表推导式

list3=[x*0.9 for x in range(10)]
print(list3)

list4=[1,2,3,4,5,6]
list5=[x**2 for x in list4 if x<5]
print(list5)

Tuple元组

tuple1=(1,1.1,'abc',False)
print(tuple1[2])
print(tuple1[-1]) #-1代表序列的最后一个元素

#不能对元组进行增删改

#其他操作同列表

序列的常用操作

list1=[1,1.1,'abc',True] #列表中的元素可以是任意数据类型,包括数据结构
print(list1[0])

#常用操作列表的函数

print(len(list1))

list2=[1,-99,20,100]
print(max(list2))
#增加列表元素
list2.append(5)
print(list2)
#删除列表元素
# list2.pop() #默认删除最后一个元素
# list2.pop(2)
#根据元素值删除
# list2.remove(元素值)

#遍历列表-迭代
for i in list2:
    i+=1
    print(i)
print(list2)

#遍历列表-按index下标
for i in range(len(list2)):
    list2[i]+=1
    print(list2[i])
print(list2)

'''
以上两种方式分别是浅拷贝和深拷贝
第一种没有修改list2的值
第二种修改了list2的值
'''

#列表推导式

list3=[x*0.9 for x in range(10)]
print(list3)

list4=[1,2,3,4,5,6]
list5=[x**2 for x in list4 if x<5]
print(list5)




tuple1=(1,1.1,'abc',False)
print(tuple1[2])
print(tuple1[-1]) #-1代表序列的最后一个元素

#不能对元组进行增删改

#其他操作同列表


#序列中包含序列
list1=[
    [1,2,3],
    [4,5,6],
    [7,8,9]
]
print(list1[0][0])
print(list1[1][1])

for i in list1:
    for j in i:
        print(j,end=',')
    print()

#切片
list1=[1,2,3,4,5,6]
print(list1[1:2]) #起点为1(index),终点为2
print(list1[::2]) #起点终点省略,步长为2

#相同类型序列拼接
list1=[1,2,3]
list2=[4,5,6]
list3=list1+list2
print(list3)

#不同类型序列拼接
#错误示范
# list1=[1,2,3]
# tuple1=(4,5,6)
# print(list1+tuple1)

#正确示范
list1=[1,2,3]
tuple1=(4,5,6)
print(list1+list(tuple1))

练习

在这里插入图片描述

list=[89,98,00,75,68,37,58,90]
for i in range(len(list)):
    if list[i]==00:
        list[i]=2000
    else:
        list[i]+=1900
list.sort()
print(list)

在这里插入图片描述

# list1=[]
for i in range(100,1000):
    tmp=i
    num=0
    while tmp!=0:
        num+=(tmp%10)**3
        tmp//=10     #一定记住,python不留余数的除法是'//'
    if num==i:
        print(i)
        # list1.append(i)
# print(list1)

在这里插入图片描述

print(2)
for i in range(3,101):
    flag = False
    for j in range(2,i):
        if i%j==0:
            flag=True
            break
    if(flag==False):
        print(i)

冒泡排序

#冒泡排序
list=[4,85,3,234,45,345,345,122,30,12]
n=len(list)
while n>2:
    for i in range(0,n-1):
        if(list[i]>list[i+1]):
            tmp=list[i]
            list[i]=list[i+1]
            list[i+1]=tmp
    n-=1
print(list)

#冒泡排序-2
list=[4,85,3,234,45,345,345,122,30,12]

for i in range(len(list)-1,0,-1):
    for j in range(0,i):
        if list[j]>list[j+1]:
            list[j],list[j+1]=list[j+1],list[j]

print(list)

字符串

str='你好,玛卡巴子'

print(str[0])

for i in str:
    print(i,end=' ')

print()
#字符串切片
str1=str[1:5] #start,end:包左不包右
str2=str[1:]
str3=str[:5]
str4=str[::2] #步长为2
print(str1)
print(str2)
print(str3)
print(str4)

str1='你好,'
str2='怪盗基德'
str=str1+str2
print(str)

#操作字符串函数
str1='我是速趴赛亚人'
print(len(str1))
print(list(str1))
print(tuple(str1))
print(list(reversed(str1)))

#将字符串切割为列表
str1='老大24冰红茶:http://www.laoda.com'
list1=str1.split(':')
list2=str1.split('.')
list3=str1.split('/')
print(list1)
print(list2)
print(list3)

#将列表拼接为字符串
list1=['老大24冰红茶:','http://www.laoda.com']
str1=''.join(list1)
print(str1)

str1='老大24冰红茶:http://www.laoda.com'
#统计某字符个数
print(str1.count(':'))
print(str1.count(':',0,6)) #start,end:包左不包右

#find检查是否包含某字符,返回位置
print(str1.find('www')) #15
print(str1.find('www',0,6)) #-1 没有找到

#index检查是否包含某字符,没有找到抛出异常
print(str1.index('www')) #15
print(str1.index('www',0,6)) #ValueError: substring not found

练习

在这里插入图片描述

str1='11:12:11> 001 enter charroom, level2'
id=str1[10:10+3]
level=str1[30:30+6]
print(f'id:{id},level:{level}')

获取所有用户id和等级

str1='''11:12:11> 001 enter charroom, level2
11:12:11> 022 enter charroom, level3
11:12:11> 021 enter charroom, level5
11:12:11> 003 enter charroom, level99'''
list1=str1.split('\n')
list2=[]
for i in list1:
    i=i.split(' ')
    # print(i)
    list2.append(i[1])
    list2.append(i[4])
print(list2)

去除字符串中的重复字符

str1='abcaadef'
str2=''
for i in str1:
    if i not in str2:
        str2+=i
print(str2)

正则表达式

在这里插入图片描述
举个例子
在这里插入图片描述
在这里插入图片描述

import re

pattern=r'laoda\w+'
str='laoda24.com LAODA24.com'
match=re.match(pattern,str,re.I) #re.I 不区分大小写
print(match)
print('匹配值的起始位置:',match.start())
print('匹配值的结束位置:',match.end())
print('匹配值的位置:',match.span())
print('要匹配的字符串:',match.string)
print('匹配到的字符串:',match.group())

# <re.Match object; span=(0, 7), match='laoda24'>
# 匹配值的起始位置: 0
# 匹配值的结束位置: 7
# 匹配值的位置: (0, 7)
# 要匹配的字符串: laoda24.com LAODA24.com
# 匹配到的字符串: laoda24


str1='_LAODA24.com laoda24.com'
print(re.match(pattern,str1,re.I)) #None
print(re.search(pattern,str1,re.I)) #<re.Match object; span=(1, 8), match='LAODA24'>
print(re.findall(pattern,str,re.I)) #['laoda24', 'LAODA24']

#替换字符串
pattern=r'1[345678]\d{9}'
str2='中奖号码为:8888 联系电话为:13912345678'
str3=re.sub(pattern,'110',str2)
print(str3)

#根据正则表达式分割字符串
pattern=r'[?|&]'
url='http://www.laoda24.com/index.html?user="admin"&passwd="123456"'
list1=re.split(pattern,url)
print(list1)

注意:
match()从字符串的开始进行匹配,如果开始不符合,就匹配失败
search()遍历整个字符串,只找到一个匹配的,否则匹配失败
findall()找到所有匹配的字符串

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值