Python自学笔记:Ch0 Python知识串讲

一、基本知识

1.print函数:

在这里插入图片描述

>>> a=100
>>> b="Hello,world!"
>>> print("point=%s\n\"%s\""%(a,b))
point=100 
 " Hello,world! " 
2.输入函数input:

a=input(‘输入提示语句:’),返回类型是字符串

>>> a=int(input('输入提示语句:'))    #输入进行类型转换
输入提示语句:1
>>> a
1
>>> a=int(input('输入提示语句:'))
输入提示语句:1.2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '1.2'

>>>a=eval(input('输入提示语句:'))    #输入当成有效的表达式来求值并返回计算结果
输入提示语句:1
>>> a
1
>>> a=eval(input('输入提示语句:'))
输入提示语句:1+1
>>> a
2
  • PY文件当中是不支持中文的,即使你输入的注释是中文也不行,为了解决这个问题,就需要把文件编码类型改为UTF-8的类型,输入这个代码就可以让PY源文件里面有中文了。
#coding:utf-8
3.符号
  • 运算符:**:幂运算,//:整除,取整数部分。
  • 逻辑符号:==等于,!=不等于,and 与,or 或。
  • \可作为续行符
4.序列

序列类型包括字符串(单双引号括起)、列表、元组、集合和字典,序列具有索引0至N-1,-n表示从后数第n个。
标准类型运算符
在这里插入图片描述
在这里插入图片描述
序列类型运算符:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、列表 list

  • list是一种有序的集合,可以随时添加和删除其中的元素。
  • 用索引来访问list中每一个位置的元素,记得索引是从0开始的
>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']
>>> classmates[0]
'Michael'
>>> classmates[1]
'Bob'
>>> classmates[2]
'Tracy'
  • 用-1做索引,直接获取最后一个元素,以此类推,可以获取倒数第2个、倒数第3个。
>>> classmates[-1]
'Tracy'
  • 可用[起:止]进行切片,前闭后开
  • [起:止:步长]可切出带步长的切片(步长可为负数)。
  • 列表名 [n] 第 n 个元素
  • 列表名[:n] 前 n 个元素
  • 列表名[-n:] 最后 n 个元素
  • 列表名[n:m ] 从 第 n+1 个元素一直到第 m 个元 素
  • 列表名[1:-1] 除 了第一个和最后一个以外的所有元素
import math

my_list1=['haha',True, math.pi,56,7,8]

#列表元素切取
print('\n')
first_three=my_list1[:3]      
print(first_three)
last_three=my_list1[-3:]
print(last_three)
without_first_last=my_list1[1:-1]
print(without_first_last)

y=my_list1[1:3]
print(y)



['haha', True, 3.141592653589793]
[56, 7, 8]
[True, 3.141592653589793, 56, 7]
[True, 3.141592653589793]
  • 列表可以是数值、字符串、列表等的混搭。
>>> c=[1,"d",classmates] 
  • 修改:列表名[索引号]=新值。
  • 删除:del 列表名[索引号]
  • 插入:列表名,insert(插入位置索引号,新元素)
>>> c=[1,2,3,"4"]
>>> c
[1, 2, 3, '4']
>>> del c[3]
>>> c
[1, 2, 3]
>>> c.insert(1,'2')
>>> c
[1, '2', 2, 3]
>>> c[0]='1'
>>> c
['1', '2', 2, 3]
>>> c.append('hehe')
>>> c
['1', '2', 2, 3, 'hehe']
  • in操作符:确认列表成员
>>> x=[1,2,3]
>>> print(1 in x)
True
>>> print('haha' in x)
False
  • 列表相加:
>>> x=[1,2,3]
>>> print(x+x)
[1, 2, 3, 1, 2, 3]
  • 其他操作:
    在这里插入图片描述
  • 列表解析:
    在这里插入图片描述- 函数式编程
    在这里插入图片描述

三、元组 tuple

另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改。可以正常地使用classmates[0],classmates[-1],但不能赋值成另外的元素。

元组使用圆括号或无括号界定:

>>> classmates = ('Michael', 'Bob', 'Tracy')
>>> classmates[1]
'Bob'
>>> x=(1,2,3)
>>> y=4,5
>>> print(x,y)
(1, 2, 3) (4, 5)
>>> try:
...     x[1]='haha'
... except TypeError:
...     print('Error')
...
Error
>>> print(x)
(1, 2, 3)

注:函数多重返回值

>>> x,y=[1,True]
>>> print(x,y)
1 True
>>> y,x=x,y
>>> print(x,y)
True 1

在这里插入图片描述
在这里插入图片描述

四、字典 dict

dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
字典使用大括号界定,方括号访问:

>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95
  • 修改:字典名[键]=新值。
  • 删除:del 字典名[键]。
  • 插入:字典名[新键]=新值。
>>> x={}
>>> y=dict()
>>> z={'haha':80,'wuwu':20}
>>> my_score=z['haha']
>>> print(my_score)
80
>>> print('xixi' in z)
False
>>> z['haha']=90
>>> z['hehe']=10
>>> print(z)
{'haha': 90, 'wuwu': 20, 'hehe': 10}
>>> print(z.keys())
dict_keys(['haha', 'wuwu', 'hehe'])
>>> print(z.values())
dict_values([90, 20, 10])
>>> print(z.items())
dict_items([('haha', 90), ('wuwu', 20), ('hehe', 10)])

五、集合 set

集合存放不重复元素,且无顺序定义。

#set
my_set={'123','456',89,True}
print(my_set)

{89, '456', '123', True}

六、条件语句

缩进的语句体前有四个空格。

age = 3
if age >= 18:
    print('adult')
elif age >= 6:
    print('teenager')
else:
    print('kid')
  • 注意:input()返回的数据类型是str,str不能直接和整数比较,必须先把str转换成整数。
  • Python提供了int()函数来完成这件事情。
  • 经验证,Python2.7.15不进行转换也可运行,而Python3.7.0需要转换。
s = input('birth: ')
birth = int(s)
if birth < 2000:
    print('00前')
else:
    print('00后')

七、循环语句

(1)for 变量 in range (开始值,结束值):

其中的括号内的开始、结束值也为前闭后开区间

>>> for x in range(1,10):
...     sum = sum+x
...
>>> sum
45
(2)for 变量 in 列表名:
>>> names = ['Michael', 'Bob', 'Tracy']
>>> for name in names:
...     print(name)
...
Michael
Bob
Tracy
(3)while 条件 :
>>> sum = 0
>>> n = 99
>>> while n > 0:
...     sum = sum + n
...     n = n - 2
...
>>> sum
2500
(4)终止循环用 break
(5)for与list
list_0 = [x*x for x in range(5)]
point = [(1,2), (-1,3), (5,2), (4,-2)]
list_1 = [(2*x,y) for x,y in point]
print(list_0)
print(list_1)

[0, 1, 4, 9, 16]
[(2, 2), (-2, 3), (10, 2), (8, -2)]

八、turtle 模块

import turtle                   #导入turtle模块
t = turtle.Pen ( )              #用turtle模块中的Pen类,实例化出一个叫做t的对象
							    #注意“Pen”的大小写
t.forward ( 像素点 )             # 让 t 向前走多少个像素点
t.backward ( 像素点 )            # 让 t 向前走多少个像素点
t.left ( 角度 )                  #让 t 左转多少角度
t.right ( 角度 )                 #让 t 右转多少角度
t.reset ( )                     #让 t 复位

九、函数

#定义
def hi_name (yourname):
	print ”Hello %s” yourname

#使用
 hi_name(”zhangsan”)

#输出
Hello zhangsan

十、模块 module 包

模块(module):是一个Python 文件,以 .py 结尾,包含了Python函数等语句。 先导入,再使用,用模块 .函数名调用。

>>> import time
>>> time.asctime()
'Tue Mar 19 09:19:57 2019'

包包含多个模块,调用时加上from:

from PIL import Image

十一、类 对象 面向对象

(1)实例化

实例化:对象 = 类()

t = turtle.Pen()

子类实例化出来的对象,可以使用自身和父函数与变量。

(2)类

类的定义:

class  类名 (父类名):
	pass

十二、DataFrame

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十三、可变可迭代对象修改

迭代过程存在指针:

lst = [1,2,4,3,5]
for x in lst:
    if x % 2 == 0:
        lst.remove(x)
print(lst)

运行结果:
[1, 4, 3, 5]

故创建一个list的浅拷贝:

lst = [1,2,4,3,5]
for x in lst[:]:
    if x % 2 == 0:
        lst.remove(x)
print(lst)

运行结果:
[1, 3, 5]

深拷贝:

x = [1, 2, 3]
y = x
y[0] = 4
print(x)

运行结果:
[4, 2, 3]

多级拷贝:

x = [1, 2, [3, 4]]
y = x.copy()
y[0], y[2][0] = 9, 9
print(y)
print(x)

运行结果:
[9, 2, [9, 4]]
[1, 2, [9, 4]]
import copy

x = [1, 2, [3, 4]]
y = copy.deepcopy(x)
y[0], y[2][0] = 9, 9
print(y)
print(x)

运行结果:
[9, 2, [9, 4]]
[1, 2, [3, 4]]

Python序列默认为浅拷贝。

十四、本地数据

1.打开文件

在这里插入图片描述

  • -1为默认缓冲区大小;
  • r+=r+w;w+=w+r;a+=a+r;加b表示二进制读写;
2.文件相关函数

在这里插入图片描述
推荐的写文件方法:

with open('D:\\code\\Python\\a.txt','w') as f:
	f.write('hello')
	# 文件会自动关闭

读文件:

with open('D:\\code\\Python\\a.txt') as f:
    p1 = f.read(2)
    p2 = f.read()
print(p1,p2)
3.其他读写函数

在这里插入图片描述
文件读写时存在文件指针:
在这里插入图片描述

4.应用

统计目录下所有文本文件的行数:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值