Python基础语法

参考: https://www.cnblogs.com/wupeiqi/p/5444685.html

一、运算符

1.1、字符串进行乘法运算(只能进行乘法运算)

>>> print('tom-'*3)
tom-tom-tom-

1.2. 可以对数字进行加减乘除等各种运算

>>> 19 % 5 #取余
4
>>> 19//5 #两个//表示取商
3
>>> 2**2 #表示2的2次方
4

1.3、in 和 not in ,计算的结果是bool值

name = '你好'
if '你' in name:
    print('OK')
else:
    print('NO')

if '看' not in name:
    print('YES')
else:
    print('ERROR')

二、 基本的数据类型

1、数字
int(整型)

在32位机器上,整数的位数为32位,取值范围为-231~231-1,即-2147483648~2147483647
  在64位系统上,整数的位数为64位,取值范围为-263~263-1,即-9223372036854775808~9223372036854775807
2、布尔值
  真或假
  1 或 0
3、字符串
字符串常用功能:
移除空白、分割、长度、索引、切片
4、列表
对应的类list
创建列表:

name_list = ['alex', 'seven', 'eric']
或
name_list = list(['alex', 'seven', 'eric'])

基本操作:索引、切片、追加、删除、长度、切片、循环、包含
列表的解包:

# 列表的解包
sec, *first, three= ['www', 'baidu', 'com', '?'] # 参数对应列表中的值,*代表中间的值
print(first)

5、元祖
对应的类tuple
可理解为对列表的二次加工,不同之处是元祖不能被修改、增加、删除;
元祖的一级元素不可修改,二级元素可以修改;

创建元祖:

ages = (11, 22, 33, 44, 55,) #一般建议在后边加一个,
或
ages = tuple((11, 22, 33, 44, 55))

基本操作:索引、切片、循环、长度、包含
6、字典(无序)
对应的类dict
列表、字典不能作为字典的KEY;
如果键重复了,会被覆盖掉;

创建字典:

person = {"name": "mr.wu", 'age': 18}
或
person = dict({"name": "mr.wu", 'age': 18})

常用操作:索引、新增、删除、键、值、键值对、循环、长度
获取字典的最大值:

# 获取字典的最小值与最大值,并进行排序
zidian = {'100':'d', '0':'a', '1':'b', '2':'c'}
print(zidian.keys()) # 获取字典的键
print(zidian.values()) # 获取字典的值
print(min(zip(zidian.keys(), zidian.values()))) # 字典中的最小的值

7、集合
对应的类set
定义:由不同元素组成无序集合中的元素必须是不可变类型
创建集合:

s= {1,2,3,4,5,6}
或
s= set("hello")

集合常用操作:

l1 = {'linux','PHP','Redis'}
l2 = {'Java','PHP','Redis'}
print(l1&l2) # &表示取交集
print(l1|l2) # |表示求并集
print(l1-l2) # -表示求差集
print(l1^l2) # ^表示求交叉补集

数据类型中常用的魔术方法:
1、数字
int()
2、字符串
replace、find、join、strip、startswith、split、upper、lower、format
3、列表
append、extend、insert
4、元祖
5、字典
get、update、keys、values、items
6、布尔值
为假的情况:None "" () [] {} 0

三、 流程控制

1)if条件语句

a = 1

if a == 1:
    print('这是1')
elif a == 2:
    print('这是2')
else:
    pass #表示什么也不执行

print('开始服务啦')

2)while条件语句

import time #引入时间函数

count = 0
while count < 10:
    print(count,time.time())
    count = count + 1

3)for循环

v = 'tom'
for item in v:  #item是任意取的值
    print(item)

四、函数

1、函数的定义(用def关键字)

# 函数的定义及参数的替换
def prodiet_gf_age(my_age = 29):
    gf_age = my_age / 2 + 8
    return gf_age

age1 = prodiet_gf_age()
age2 = prodiet_gf_age(28)
print(' My girl firend age is : ', age1 )
print(' My girl firend age is : ', age2 )


def keyword_arg(a = 'v', b = 'p', c = 'n'):
    print(a, b, c)

keyword_arg('vv', 'pp')
keyword_arg(c = 'vv')

2、函数的参数中的可变参数(参数前加*

# 可变参数
def add_number(*args):
    total = 0
    for a in args:
        total += a
    print(total)

add_number(1)
add_number(1, 11)
add_number(1, 11, 111)
add_number(1, 11, 111, 1111)

# 函数参数的解包
def heath_cat(age, apple_num, smoke_num):
    value = (100 + age) + (apple_num * 3.5) - (smoke_num * 2)
    print(value)
ban = [28, 20, 5]
heath_cat(*ban)

3、zip 函数

first = ['a', 'b', 'c']
last = ['x', 'y', 'z', 'aa']
leter = zip(first, last)
for i, j in leter:
    print(i, j)

4、lambda函数(是一个没有名称的函数)

anser = lambda a:a*100
print(anser(2)) #200

def ab(anser = lambda x:x*10):
    print(anser(5))
ab()
ab(lambda x:x*5)

五、类

# 类
class Enemy: # 类的声明
    life = 3 # 类变量
    live = 99
    # 构造函数
    def __init__(self, x):
        self.life = x # 实例变量
        print('init构造函数被使用')

    def attack(self):
        print('掉一滴血')
        self.life -= 1

    def checkLife(self):
        if self.life <= 0:
            print('我屎了')
        else:
            print('我还活着,来打我')


enemy1 = Enemy(6) # 实例化一个对象,参数是向构造函数中传的值
enemy1.attack() # 对象的调用
enemy1.checkLife()
print(enemy1.live)

class Maril:
    def move(self):
        print('移动')

# 类的继承,Python允许多继承
class Child(Enemy, Maril): # ()包裹的就是要继承的类,继承多个类用,隔开
    def find_num(self):
        print(100)
    def attack(self): # 同名的函数会覆盖父类的函数
        print('掉两滴血')
        self.life -= 2

a = Child(6)
a.move()

六、基础算法

1、map 函数(对列表中的每一个值都调用函数)

# map函数
price = [10, 20, 23]
def new_price(NUM):
    return NUM * 2;
print(list(map(new_price(), price)))  # [20, 40, 46]

2、字典的计算与排序

# 字典的计算与排序
zidian = {
    '0':'b',
    '1':'c',
    '2':'a',
    '3':'d',
}
# 排序需要用到zip函数
print(sorted(zip(zidian.values(), zidian.keys()))) # [('a', '2'), ('b', '0'), ('c', '1'), ('d', '3')]

3、列表中案某个键值进行排序

# 列表的最大值与最小值
import heapq # heapq 队列算法模块
grad = [
    {'tick':'Apple', 'price':'201'},
    {'tick':'Google', 'price':'800'},
    {'tick':'HuaWei', 'price':'100'},
    {'tick':'FB', 'price':'50'}
]
print(heapq.nsmallest(3, grad, key=lambda grad:grad['price'])) # 取集合中最小的三个, 第三个函数是自定义的

4、通过key值对自定义对象中的额多个键对应的值进行排序

# 通过key值对自定义对象中的多个键对应的值进行排序
from operator import itemgetter
grad = [
    {'tick':'Apple', 'price':201},
    {'tick':'Google', 'price':800},
    {'tick':'aoogle', 'price':800},
    {'tick':'boogle', 'price':800},
    {'tick':'HuaWei', 'price':100},
    {'tick':'FB', 'price':50}
]
for x in sorted(grad, key=itemgetter('price', 'tick')):
    print(x)

七、初出茅庐

1、 从网上爬取图片

import random
import urllib.request

def download_web_image(url):
    name = random.randrange(1, 1000)
    full_name = str(name) + '.jpg'
    urllib.request.urlretrieve(url, full_name)

download_web_image('https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq/it/u=119124115,3768443592&fm=173&app=49&f=JPEG?w=640&h=400&s=4CD700C6EC599FD608B5E10B030010D2')

2、读写文件

# 写
fw = open('sample.txt', 'w')
fw.write('Holle Word')
fw.close() # 关闭资源
# 读
fr = open('sample.txt', 'r')
content = fr.read()
print(content)

3、异常处理

while True:
    try:
        numb = int(input('你喜欢的数字是 : '))
        print(18/numb)
        break
    except ValueError: # 捕获wring
        print('请确保输入的是数字')
    except ZeroDivisionError: # 捕获是0导致的错误
        print('除数不能为0')
    except: # 捕获所有的异常,不建议使用,错误不明确
        break
    finally: # 不管是否捕获异常,都执行
        print('本次循环结束')

4、线程

import threading

class wxMessenger(threading.Thread):
    def run(self):
        for x in range(10):
            print(threading.current_thread().getName()) # 输出线程的名称
x = wxMessenger(name = '发送消息')
y = wxMessenger(name = '接==收消息')
x.start()
y.start()

案例:

# 9*9乘法表
for i in range(1,10):
    string = ""
    for j in range(1,i+1):
        string += str(j) + "*" + str(i) + "=" + str(i*j)+"\t"
    print(string)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值