python学习之路


下层基础决定上层建筑,让我们一起学习python

基础语法

标识符

标识符定义规则:

  • 标识符由字母、数字、下划线组成
  • 第一个字符由字母和下划线组成,数字不能作为标识符的开头
  • 区分字母大小写
  • 不能使用保留字(保留字:python中自有的标识符)
  • 见名知意

变量

  • python中变量不能单独存在,变量不能只声明而不赋值,必须在声明变量的同时,进行赋值
  • python中,变量是没有类型的,虽然可以用type函数来查看类型,但本质上,变量的类型是由赋值给变量的数据来决定的

缩进

python中的代码所属关系用缩进来表示

注释

  • 单行注释:单行注释以 # 开头,根据规范,注释内容与# 间隔一个空格
a=10   # 10赋值给a
  • 多行注释:多行注释,可以用三个单引号,或者三个双引号括起来
a=10 
b=20
c=30
'''
   将10赋值给a
   将20赋值给b
   将30赋值给c
'''
"""
   将10赋值给a
   将20赋值给b
   将30赋值给c
"""

print标准输出函数

print可以输出任何你想输出的内容,一个整数,一个字符串,一个列表,只要是python的对象

print"输出字符串"# 输出字符串
print[1,2,3]# 输出列表
print100# 输出数字

input标准化输入函数

value = input("请输入一个整数:")
print(value, type(value))

input的返回值时字符串

转义字符

用转义字符表达特殊格式,例如/n代表换行,//代表/

数据类型

基础数据类型

  • 整型(int):整数,没有大小限制
  • 浮点型(float):整数部分和小数部分组成
  • 复数(complex):由实数部分和虚数部分构成,编程中几乎用不到
  • bool数据类型:只有两个值,分别是True和False

类型转换

a=33.3
a=int(a) # fioat类型数据转换成int类型数据
print(a)

输出结果
a=33

python进制转换

进制类型有10进制、2进制、8进制、16进制

print(0b1101010)   # 106         二进制用0b开头
print(0o125)       # 85          八进制用0o开头
print(0x3f2a1)     # 258721      十进制用0x开头  

函数进行进制间转换

二进制,八进制,十六进制转成十进制

使用int函数可以将二进制,八进制,十六进制的数值转成十进制数值,而且字符串的开头可以不携带进制的标识,如果你喜欢使用,也可以写成 int(‘0x3f2a1’, 16)

value = int('1101010', 2)
print(value)        # 106

value = int('125', 8)
print(value)        # 85

value = int('3f2a1', 16)
print(value)        # 258721
 

十进制转成二进制,八进制,十六进制

十进制转二进制使用bin()函数, 十进制转八进制使用oct()函数, 十进制转十六进制使用hex()函数

print(bin(106))     # 0b1101010 十进制转二进制
print(oct(85))      # 0o125     十进制转八进制
print(hex(258721))  # 0x3f2a1   十进制转十六进制

八进制,十六进制转二进制

并没有函数可以实现直接将八进制或十六进制数转成二进制,因此需要借用int()函数先将八进制的数转成十进制,然后使用bin()函数将十进制数转成二进制

print(bin(int('125', 8)))   # 八进制转二进制
print(bin(int('0x3f2a1', 16)))  # 十六进制转二进制

字符串

字符串创建

字符串创建用一对单引号或者一对双引号或者三对双引号,字符串的索引有正向和反向之分

字符串索引

正向从0开始,反向从-1开始

字符串运算

操作符描述
+字符串连接
*字符串重复
[]通过索引访问指定的索引字符
:切片操作,截取字符串指定范围
in成员运算符-如果字符串中包含给定的字符返回Ture
not in成员运算符-如果字符串中不包含给定的字符返回Ture
%格式字符串

字符串切片操作

[start:end),左闭右开,索引为end的元素不会被截取

a = 'I like python'
print( a[2:6])		# 'like'       指定开始和结束位置
print( a[2: ])		#'like python' 	指定开始位置,不指定结束位置
print(a[ :-7])		#'I like'    指定结束位置,不指定开始位置

切片操作允许越界

a = 'I like python'
print(len(a))		#用len()函数获取字符串长度
print(a[2:19])		#'like python'      字符串允许越界

指定切片间隔

[start:end :x] x表示切片间隔,可以是负数,表示反向间隔

a = '123456789'
print(a[::-2]#'97531'       反向每两个索引做一次切片处理

字符串格式化

%s格式化字符串
%d格式化数字
%c格式化字符及其ASCII码

#例1
print('我喜欢%s色'%'红')
#输出结果:
#我喜欢红色
#例2
a='我是%s,今年%d'
b=a%('小明',14)
print(b)
#输出结果:
#我是小明,今年14岁

字符串方法

待补充

编号方法名称功能描述
1capitalize()将字符串的第一个字符转换为大写

字符串类型转换

用内置函数str将int、float、bool数据类型转换为字符串

a=100
str_a=str(a)
print(type(str_a))
#结果:
#<class 'str'>

在这里插入图片描述

列表(list)

列表、元组,集合,字典是容器类型数据
列表中数据是有序的

创建列表

列表里可以存放任意类型的数据,每个数据之间,用逗号分隔,整个列表被包裹在一对中括号[]里,如果你定义lst = [],[]表示一个空列表。

list1=[1,2,3,4,5]
list2=[1,'2',ture]
list3=[[1,2,3],4,'列表']

列表索引

在这里插入图片描述

向列表中添加数据

insert :指定插入位置
append:默认在列表尾部插入数据

lst = [3, 5, 8, 1, 2, 6, 9]
lst.insert(2, 22)  # 将22插入到索引为2的位置上
lst.append(33)     # 将33增加到列表尾部
print(lst)
#结果
#[3, 5, 22, 8, 1, 2, 6, 9, 33]

列表遍历

方法1:索引遍历

lst = [3, 5, 8, 1, 2, 6, 9]
for i in range(len(lst)):
   print(lst[i])

方法2:迭代器遍历

lst = [3, 5, 8, 1, 2, 6, 9]
for item in lst:
   print(item)

方法3:enumerate函数遍历

lst = [3, 5, 8, 1, 2, 6, 9]
for index, item in enumerate(lst):
   print(index, item)

删除列表中元素

删除列表里的元素有两种方法,一种是根据索引来删除,一种是根据值来删除
根据索引删除:用列表的pop方和del关键字

lst = [3, 4, 1, 4, 2]
lst.pop(0)     # 删除索引为0的元素
print(lst)
#结果
#[4, 1, 4, 2]
lst = [3, 4, 1, 4, 2]
del lst[0]	 # 删除索引为0的元素
print(lst)
#结果
#[4, 1, 4, 2]
del lst[0] 等价于 lst.pop(0)

根据值删除列表里的元素:
根据值删除,使用remove方法,remove会删除列表里指定的值,比如你想删除4

lst = [3, 4, 1, 4, 2]
lst.remove(4)	# 删除列表中的4
print(lst)
#结果
#[3, 1, 4, 2]
'''需要注意的是,remove方法一次只会删除一个值,列表里有两个4,它会删除索引最小的那个4'''

列表相关内置函数

1、len计算列表长度

lst = [3, 4, 1, 4, 2]
print(len(lst))

2、max返回列表中最大值

lst = [3, 4, 1, 4, 2]
print(max(lst))

3,min返回列表中最小值

lst = [3, 4, 1, 4, 2]
print(min(lst))

4、sum返回列表中所有数据之和

lst = [3, 4, 1, 4, 2]
print(sum(lst))

列表嵌套

lst = [1, [1, 5], 3, [9, 8, [1, 3]], 5]
print(lst[3][2][0])
print(lst[1:4])
#结果为 1

列表方法

待补充

方法功能
count()统计某个元素在列表中出现的次数

元组(tuple)

元组和列表非常相似,不同之处在于,元组里的元素不能修改。
元组使用小括号,列表使用中括号

tup1 = (1,2,3,4)
tup2 = (1, )

如果元组里只有一个元素,也必须使用逗号
对于元组的理解,参照列表即可

元组与列表之间可以使用list()和tuple()函数进行转换

lst = [1,2,3]
tup = tuple(lst)
lst2 = list(tup)

字典(dict)

字典存储的是key:value对, 字典中存储的数据总是成对的, key被称之为键, value称之为值, 值可以是任意数据且可重复, 而键不可重复且必须是可hash的,字典中数据是无序的

创建字典

字典是一个容器类型数据,字典里存储的是键值对,键值对用冒号分割key与value,每个键值(key-value)对用逗号分割,整个字典包裹在花括号{}中

contacts_dict = {
   "小王": '13892339876',
   "小张": '13898320987',
   "小李": '13890348745'
}

新增字典键值对和修改value

新增键值对的方式,一对中括号紧跟在字典后面,中括号里写key,等号右侧写value

score_dict['小丽'] = 100

字典中key值不能重复,修改键值对时如果key不存在,那么就会新增键值对,如果key已经存在,就会修改value

访问字典中的值

用key值访问

score_dict = {
   '小明': 99,
   '小刚': 98,
   '小红': 94
}

print(score_dict['小红'])
#结果为 94

删除字典里的键值对

指定key值删除

del score_dict['小红']

除了这种方法外,你还可以使用字典的pop方法

score_dict.pop('小红')

字典嵌套

stu_dict = {
   'name': '小明',
   'age': 12,
   'score': {
       '语文': 90,
       '数学': 98
   }
}
print(stu_dict['score']['语文'])
#结果为90

字典方法

方法功能作用
clear()删除字典内所有的元素

集合(set)

集合中的元素有3个特性:

  • 确定性:给定一个集合,任何对象是不是这个集合的元素是确定的了
  • 互异性:集合中的元素一定是不同的
  • 无序性:集合中的元素没有固定的顺序

创建集合

set_1 = set()   # 空集合
set_2 = {'python', 32, 983.9, 'python', 'php'}

集合添加删除元素

my_set = {'python', 32, 983.9, 'python', 'php'}
my_set.clear()
print(my_set)

集合常用操作

1 、clear,清空集合
列表,字典,集合的清空操作,都可以使用clear来完成

my_set = {'python', 32, 983.9, 'python', 'php'}
my_set.clear()
print(my_set)

2 、in 和 not in
in 和 not in 是成员运算符,对于列表,元组,字典,集合,判断一个数据是否在这些容器类型数据中,都可以使用成员运算符

my_set = {'python', 32, 983.9, 'python', 'php'}
print('php' in my_set)

3、交集

set1 = set(lst1)
set2 = set(lst2)
inter_set = set1.intersection(set2)
print(inter_set)

4、并集

union = set1.union(set2)
print(union)

5、差集

diff_set = set1.difference(set2)
print(diff_set)

集合方法

待补充

方法描述
add()为集合添加元素

程序控制

条件控制

if语句

if condition:
    block

condition 是一个表达式
如果condition等价于True,则进入block代码块执行代码
block代码块相比于if语句缩进4个空格

else

value = input("请输入一个正整数:")
i_value = int(value)
if i_value % 2 == 0:
    print("你输入的整数是:{value}, 它是偶数".format(value=value))
else:
    print("你输入的整数是:{value}, 它是奇数".format(value=value))

elsf

value = input("输入一种颜色:")
if value == '红色':
    print("红灯停")
elif value == '绿色':
    print("绿灯行")
elif value == '黄色':
    print("等一等")
else:
    print("无法识别")

if嵌套

num = int(input("输入一个数字:"))
if num < 50:
    if num % 3 == 0:
        print('可以被3整除')
    else:
        print('不能被3整除')
else:
    if num % 5 == 0:
        print("可以被5整除")
    else:
        print("不能被5整除")

循环控制

for循环

在这里插入图片描述

  • tmpVar 是临时变量
  • Iterable 是可迭代对象
  • 绿色区域是循环条件,当对可迭代对象的迭代遍历结束时,for循环也就结束
  • block是循环体,每一次循环,程序都要进入到这个block内来执行代码

for循环,从形式上可以分为两种

  • 使用range函数自由控制循环次数
  • 遍历容器
    1、range函数
    range函数返回一个对象,该对象产生一个整数序列。

range函数有3个参数

  • start 整数序列开始的位置
  • stop 整数序列结束的位置
  • step 步长

开始与结束位置所组成的区间[start, stop)是左闭右开的,start默认是0,step默认是1。下面向你展示range函数的使用方法

  • range(1, 5) 产生的整数序列是1, 2, 3, 4
  • range(0, 4, 2) 产生的整数序列是0,2
  • range(5, 0, -1) 产生的整数序列是5, 4, 3, 2, 1
  • range(3) 产生的整数序列是0,1,2
    2、遍历容器数据
    下面的代码向你展示如何判断一个数据是不是可迭代对象
from collections import Iterable

print(isinstance(range(5), Iterable))    # range函数返回值是可迭代对象
print(isinstance([1, 2], Iterable))   # 列表
print(isinstance((1, 2, 3), Iterable))   # 元组
print(isinstance({1, 2, 3}, Iterable))   # 集合
print(isinstance({"a": 1, "b": 2}, Iterable))   # 字典

python 循环中的continue 与 break

  • coninue的中文翻译是继续,在循环体里,continue的作用是跳过当前循环的剩余语句,结束本次循环,继续进行下一轮循环,下面用一个简单的例子来演示continue的功能
  • 满足某个条件时,我们希望能终止循环,这时,你需要使用break语句。不同于continue,break具有很强的破坏力,它的作用是直接停止当前所在的循环

while循环

python中的while语句用于循环执行程序,当给定的判断条件为True时执行循环体,循环体里是一段需要重复执行的代码。每一次执行完循环体都要重新对判断条件进行计算,只有当判断条件为False的时候才会终止循环, 此外,也可以使用break语句终止循环

python while循环的一般形式

while 表达式:
    代码块

函数

函数调用和定义

1、函数定义

def 函数名(参数列表):
    函数体

2、函数调用

def hello_word():   #参数可以为空
    print('hello world')

hello_word()

数据存储

文件读写

读取文件时,首先要打开文件,获得句柄

f = open('学生信息.txt','r')

使用open函数,可以打开一个文件,返回文件句柄,open函数的第一个参数是文件地址,第二个参数是打开模式,打开模式详细介绍如下

访问模式说明
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式
w打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值