python速成(fromc++/java)

九九乘法表

for i in range(1,10):
    for j in range(1,i + 1):
        print(str(j) + " * " + str(i) + " = " + str(i * j), end='\t')
    print()

列表

#列表插入操作
lis = [12,32,232,123,1234,1234,12345,12346,4563734,23452345]

lis1 = lis[2:5:1]# 切片操作 start end 步长

list1.appand(100)#在列表末尾添加一个元素

list2 = [1234,12346,6456]

list1.extend(list2)#在列表末尾添加多个元素

list1.insert(1,90)#在列表任意位置添加元素

#列表元素的删除
lst = [123,5346,2345]

lst.remove(30)#从列表中移除30

lst.pop(1)#根据索引删除

lst[1:3] = [] #切片删除

lst.clear()
del lst
#列表排序
list = [123,345236,254576,3454,234,5,6]

list.sort(reverse = true)#降序,不产生新对象,在原列表上改变
new_list = sorted(list) #产生新列表
#列表生成式
lst = [i for i in range(1,10)]
#计算列表中某个元素的个数
lst.count(3)#查找3的个数

字典(键值对,无序序列)

#创建字典
scores = {'张三':100, '李四':200}

student = dict(name = 'jack', age = 20)

scores.get('张三',99)#更安全,找不到返回None,不会报错. 99是指找不到时默认的

del scores['张三'] #删除字典中指定键值对

#字典元素的遍历
for item in scorces:
    print(item,scores[item])

#字典生成式
items = ['fruits','sss','qqq']
prices = [234,3456,45]
d = {item:price for item, price in zip(items, prices)}

元组(不可变序列)

#元组的创建
t = ('python', 'ss', 978)#可以省略小括号,只包含一个元素需要加上逗号
t2 = ('asdf',)
t1 = tuple(('python', 'ss', 978))

集合

#集合的生成
s = {2,3,45,5}#集合中元素不允许重复
s = set(range(6))
s = set([1,2,3,4])#利用set将列表、元组、字符串类型的数据转为集合
s = set()#定义空集合


#集合的新增操作
print(10 in s)#in not in
s.add(12)#向集合中新增一个元素
s.update({12,4,534,53})#一次至少更新一个元素,可以放列表和元组


#集合的删除操作
s.remove(12)#删除集合中的一个元素
s.discard(12)#集合中五无该元素时不会报错
s.pop()#无参
s.clear()


#集合间的关系
s1 == s2#判断两个集合是否相等
b.issubset(a)#b是否为a的子集
a.issuperset(b)#a是否为b的超集
a.isdisjoin(b)#两个集合是否有交集


#集合的数学操作
s1.intersection(s2)#返回交集 和&运算符一样
s1.union(s2)#并集操作 和|运算符一样
s1.difference(s2)#差集操作 和-运算符一样
s1.symetric_difference(s2)#对称差集,去除相同的元素


集合生成式
s = {i for i in range(6)}

字符串

 驻留是指共用一个内存空间

pycharm进行了优化处理,字符串相同的就是同一对象

#字符串的查询操作
s = 'hello,hello'
s.index('lo')#3
s.find('lo')#3不会抛出异常
s.rfind('lo')#9最后一个出现位置


#大小写转化
upper() lower()


#对齐操作
s.center(20,'*')#居中对齐,填充*
s.ljust()#左对齐


#字符串的分割
s = s.split(sep = '|', maxsplit = 1)#默认分隔符为空格
rsplit()#从右边开始分割


#字符串的替换
s = 'hello python'
s.replace('python', 'java',4)#将python替换为java,最大替换次数为4


'*'.join('python')#返回p*y*t*h*o*n
t = ('hello', 'java', 'python')
''.join(t)#返回hellojavapython



#字符串的切片操作
s = s1[1:5:1] #从1开始截到4,步长为1
s = s1[::2]默认从0开始,步长为2


#格式化字符串
print('我是$s' % (name))
'我的名字叫{0}.今年{1}岁'.format(name,age)

print('%10d' % 99)#10代表宽度


#字符串的编码
byte = s.encode(encoding = 'GBK')#UTF-8编码
print(byte.decode(encoding = 'GBk'))#解码

类与对象

class Person(object):#Person 类,python支持多线程
    def __init__(self,name):
        self.name = name

class Student(Person):#Student 类 继承了Person类
    home = '浙江' #直接写在类里的变量为类属性

    def __init__(self,name,age):#构造函数
        super().__init__(name)
        self.age = age#实体属性

    def eat(self):
        print(self.name+'在吃饭')

    @staticmethod
    def method():
        print('我使用了staticmethod修饰,所以我是静态方法')

    @classmethod
    def cm(cls):
        print('我使用了classmethod进行修饰,所以我是类方法')

#创建Student类的对象
stu1 = Student('张三',10)

#调用的两种方式
stu1.eat()
Student.eat(stu1)#通过类名调用

深拷贝

#深拷贝
computer3 = copy.deepcopy(computer)

 第三方模块的安装

map函数

map(h, a)
#相当于对a应用h函数,其中h不是变量而是函数h()
#如
squares = list(map(lambda x: x**2, range(10)))

文件操作

使用with语句会自动关闭

>>> with open('sample.txt') as fobj:
...     for line in fobj:
...         print(line, end = '')
... 
I love Python
I love shiyanlou

读取文件+分析 

#!/usr/bin/env python3

import os
import sys


def parse_file(path):
    """
    分析给定文本文件,返回其空格、制表符、行的相关信息

    :arg path: 要分析的文本文件的路径

    :return: 包含空格数、制表符数、行数的元组
    """
    fd = open(path)
    i = 0
    spaces = 0
    tabs = 0
    for i,line in enumerate(fd):
        spaces += line.count(' ')
        tabs += line.count('\t')
    # 现在关闭打开的文件
    fd.close()

    # 以元组形式返回结果
    return spaces, tabs, i + 1

def main(path):
    """
    函数用于打印文件分析结果
    
    :arg path: 要分析的文本文件的路径
    :return: 若文件存在则为 True,否则 False
    """
    if os.path.exists(path):
        spaces, tabs, lines = parse_file(path)
        print("Spaces {}. tabs {}. lines {}".format(spaces, tabs, lines))
        return True
    else:
        return False


if __name__ == '__main__':
    if len(sys.argv) > 1:
        main(sys.argv[1])
    else:
        sys.exit(-1)
    sys.exit(0)

pyplot

fig, axes = plt.subplots()
#fig 画板 axes画布,在画布上画

axes.set_xlabel('x label')
axes.set_ylabel('y label')
axes.set_title('title')
axes.grid(True)#网格线
axes.plot(x, x**2, color = 'r')#color设置颜色为红色
axes.plot(x, x**3, lw = 2, ls = '--', marker = '+')#lw线的粗度,ls线条格式,marker标记点
axes.legend(['y = x**2', 'y = x**3'], loc = 0)

pandas

构造二维表

df = pd.DataFrame([{'one': 1, 'two': 4},
                   {'one': 2, 'two': 5},
                   {'one': 3, 'two': 6}])
df

取出某一列

df['one']

 对某一行某一个值进行修改

df['one'][1] = 1000

插入一个新行

df['tree'] = 1

选取某几行

s[['one', 'two']]

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值