python 基础语法记录
Posted 潇、然
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 基础语法记录相关的知识,希望对你有一定的参考价值。
Python
注释
-
单行注释
#
-
多行注释
‘’’
‘’’
“”"
“”"
变量的定义
name = 'xr'
数据类型
Number (数字)
int 整形
float 浮点型
complcx 复数
String (字符串)
Boolean (布尔)
True
False
List (列表)
Set (集合)
Tuple (元祖)
numTuple = (1,2,3)
Dictionary(字典)
字符串合并
- %s 将内容转换为字符串
%d 将内容转换为整数
%f 将内容转换为浮点数
f"name"
查看数据类型 type()
age = 20
print(type(age)) # <class 'int'>
age = 2.0
print(type(age)) # <class 'float'>
bool = False
print(type(bool)) # <class 'bool'>
userList = ['xr', 'zs']
print(type(userList)) # <class 'list'>
numTuple = (1, 2, 3)
print(type(numTuple)) # <class 'tuple'>
users = 'name': 'xr'
print(type(users)) # <class 'dict'>
类型转换
int
a = 2.0
b= int(a)
print(b,type(b)) # 2 <class 'int'>
a = True
b= int(a)
print(b,type(b)) # 1 <class 'int'>
a = '123'
b= int(a)
print(b,type(b)) # 123 <class 'int'>
# 错误
a = '123a'
b= int(a)
print(b,type(b)) # ValueError: invalid literal for int() with base 10: '123a'
a = '1.23'
b= int(a)
print(b,type(b)) # ValueError: invalid literal for int() with base 10: '1.23'
float
a = 10
b= float(a)
print(b,type(b)) # 10.0 <class 'float'>
a = '10'
b= float(a)
print(b,type(b)) # 10.0 <class 'float'>
a = True
b= float(a)
print(b,type(b)) # 1.0 <class 'float'>
str
a = 1
b= str(a)
print(b,type(b)) # 1 <class 'str'>
a = 1.3
b= str(a)
print(b,type(b)) # 1.3 <class 'str'>
a = True
b= str(a)
print(b,type(b)) # True <class 'str'>
bool
# a = 0
# a = 0.0
# a = ''
# a = []
# a = ()
a =
b= bool(a)
print(b,type(b)) # False <class 'bool'>
流程控制语句
if elif else
age = 12
if age > 18:
print('大于18')
elif age < 10:
print('小于10')
else:
print('大于18小于10之间')
for in
range()
for num in range(6):
print(num)
0
1
2
3
4
5
for num in range(2, 6):
print(num)
2
3
4
5
for num in range(2, 6, 3):
print(num)
2
5
userList = ['小明', '小红']
for user in userList:
print(user)
for user in range(len(userList)):
print(user)
小明
小红
0
1
String
a = 'abcde'
# 5
print(len(a))
# 1
print(a.find('b'))
# 1
print(a.count('c'))
a=' abc '
# abc
print(a.strip())
a='1,2,3'
# ['1', '2', '3']
print(a.split(','))
a='abc'
# ABC
print(a.upper())
a='ABC'
# abc
print(a.lower())
str = 'abcd'
value = str.replace('b','e')
print(value) # aecd
print(str) # abcd
List 列表
列表的常用方法
查找某元素的下标 index(查找的元素)
list = ['a','b','c']
print(list.index('b')) # 1
print(list.index('d')) # 如果元素不存在会报错 'd' is not in list
修改列表的下标值
list = ['a','b','c']
list[1] = 2
print(list) # ['a', 2, 'c']
插入元素 insert(下标,值)
list = ['a','b','c']
list.insert(3,'d')
print(list) # ['a', 'b', 'c', 'd']
追加元素到尾部 append(值)
list = ['a','b','c']
list.append('d')
print(list) # ['a', 'b', 'c', 'd']
追加多个元素 extend([多个值,…])
list = ['a','b','c']
list.extend(['d','e'])
print(list) # ['a', 'b', 'c', 'd', 'e']
删除元素
# del list[下标]
list = ['a','b','c']
del list[1]
print(list) # ['a', 'c']
# pop(下标)
list = ['a','b','c']
ele = list.pop(1)
print(list,ele) # ['a', 'c'] b
# remove(删除的值)
list = ['a','b','c']
list.remove('b')
print(list) # ['a', 'c']
# 清空列表 clear()
list = ['a','b','c']
list.clear()
print(list) # []
统计某元素出现的次数
list = ['a','b','c','a']
count = list.count('a')
print(count) # 2
统计列表总元素个数
list = ['a','b','c']
length = len(list)
print(length) # 3
判断元素是否在列表中
list = ['a','b','c']
print('a' in list) # True
print('d' in list) # False
print('d' not in list) # True
列表的循环遍历
while
list = ['a','b','c']
index = 0
while index < len(list):
print(list[index])
index += 1
for in
list = ['a','b','c']
for i in list:
print(i)
Tuple 元组
元祖中的数据不能被修改,但是如果嵌套列表则列表里可以修改
如果元祖中只有一个值,那么结尾要加逗号否则是 int 类型
a= (4)
b=(5,)
c=()
# <class 'int'> <class 'tuple'> <class 'tuple'>
print(type(a),type(b),type(c))
元组中的方法 (与列表相同)
index()
count()
len()
元组的遍历
while
for in
序列
序列是指:内容连续,有序,可使用下标索引的一类数据容器
列表、元组、字符串均可视为序列
切片
语法:序列[起始下标(包含,可以写空):结束下标(不包含,可以写空):步长]
切片并不会影响序列,而是创建一个新的数据
a = 'abcdef'
# a
print(a[0])
# ab
print(a[0:2])
# ab
print(a[:2])
# bcdef
print(a[1:])
# ac
print(a[0:4:2])
set 集合
集合:是无序的,不是序列,不支持元素的重复
set = 'a','b'
空 是 字典
空集合需要这样定义
set = set()
常用的方法
添加元素 add(添加的元素)
set = 'a','b','c'
set.add('d')
print(set) # 'c', 'a', 'd', 'b'
移除元素 remove(移除的元素)
set = 'a','b','c'
set.remove('b')
print(set) # 'a', 'c'
从集合随机取出元素(既删除)
set = 'a', 'b', 'c'
res = set.pop()
print(res, set) # c 'a', 'b'
清空集合
set = 'a', 'b', 'c'
set.clear()
print(set) # set()
取出两个集合的差集
语法:集合 1.difference(集合 2)
取出集合 1 和集合 2 的差集(集合 1 有而集合 2 没有的元素),得到一个新的集合,集合 1 集合 2 不变
set1 = 1,2,3
set2 = 1,4,5
res = set1.difference(set2)
print(res) # 2, 3
消除两个集合的差集
语法:集合 1.difference_update(集合 2)
对比集合 1 和集合 2 的,在集合 1 内,删除和集合 2 相同的元素。集合 1 被修改了,集合 2 不变
set1 = 1,2,3
set2 = 1,4,5
set1.difference_update(set2)
print(set1,set2) # 2, 3 1, 4, 5
两个集合合并
set1 = 1,2,3
set2 = 1,4,5
set3 = set1.union(set2)
print(set3) # 1, 2, 3, 4, 5
统计集合元素数量
set = 1,2,3
print(len(set)) # 3
循环 不支持 while 循环
for in
dict 字典
常用方法
获取字典的个数
user = 'name': 'xr', 'age': 20
print(len(user)) # 2
获取 value
user = "name":"xr","age": 15
# xr
print(user['name'])
# 15
print(user.get('age'))
# None
print(user.get('sex'))
# KeyError: 'sex'
print(user['sex'])
新增和修改,有则修改,无则新增
user = "age": 15
user['name'] = 'xr'
print(user) # 'age': 15, 'name': 'xr'
删除
user = 'name': 'xr', 'age': 20
res = user.pop('name')
print(res) # xr
print(user) # 'age': 20
user = 'name': 'xr', 'age': 20
# del user["age"]
# 'name': 'xr'
del user
# 会把字典 user 包括变量整个删除
# NameError: name 'user' is not defined. Did you mean: 'super'?
print(user)
user = 'name': 'xr', 'age': 20
# 清空
user.clear()
#
print(user)
循环遍历
user = 'name': 'xr', 'age': 20
for key in user.keys():
# name
# age
print(key)
for value in user.values():
# xr
# 20
print(value)
for key,value in user.items():
# name xr
# age 20
print(key,value)
for item in user.items():
# ('name', 'xr')
# ('age', 20)
print(item)
函数
def f():
print('1')
f()
函数返回值
def sum(a,b):
return a+b
res = sum(2,3)
result = sum(b=3,a=5)
print(res,result)
多个返回值
def f():
return 1, 2
x, y = f()
print(x, y) # 1 2
函数多种参数使用形式
def user(name, age=18):
print(f"name--age")
# 位置参数
user('xr', 20) # xr--20
# 关键字参数
user(age=10, name='zs') # zs--10
# 缺省参数(默认值)
user('ls') # ls--18
# 不定长参数
def info(*args):
print(args) # 合并为元组类型
info() # ()
info('xr') # ('xr',)
def user_info(**kwargs):
print(kwargs)
# 传递 key=value
user_info(name='xr',age=20) # 'name': 'xr', 'age': 20
函数作为参数使用
def test(fun):
res = fun(1, 2)
print(res)
def fun(x, y):
return x+y
test(fun) # 3
lambda 匿名函数
函数体只能写一行
lambda x,y: x+y
def test(fun):
res = fun(1, 3)
print(res)
test(lambda x, y: x+y) # 4
函数注释
def add(x,y):
"""
add 计算两数和
:param x:
:param y:
:return: 结果
"""
result = x + y
print(f'x+y: resultPython 基础教程。因为之前我学过C++,因此在学习python的时候对语法也只是一扫而过,本篇文章我也只是想简单的记录下python的基础语法。文章结尾我会提供一个简单的python小程序,用于下载指定网址上所有的图片。
二、环境搭建
从官网上下载python安装包,默认安装即可,最后配置系统环境变量,将bin目录添加到path目录即可。在命令行输入python命令按回车,如果没有错误那就说明python环境搭建成功,具体参看:Python 环境搭建
IDE:pycharm,python是脚本语言,具有python环境就可以执行python文件,这就意味着任何文本编辑工具就可以写python代码。Python IDE
三、语法总览
python语法基本和C++类似,在这里我就只说python和C++不一样的地方。
1、字符串 列表 元组 字典
- 列表:用“[]”括起来,可修改,可删除
- 元组:用“()”括起来,不能修改项,但是可以追加;不能删除项,但是可以删除整个变量。任意无符号的对象,以逗号隔开,默认为元组
- 字典:键值对dict = {‘Name‘: ‘Zara‘, ‘Age‘: 7, ‘Class‘: ‘First‘};
2、导入模块
如想要导入模块support.py,需要把命令放在脚本的顶端:import support。现在可以调用模块里包含的函数了support.print_func("Zara")
3、循环
python基本的顺序执行、条件选择和C++一样,只是python的语句块是用缩进来组织在一起的(模块的上一行末尾使用冒号),而C++是用花括号组织在一起。如下是基本的循环示例
1 # -*- coding: UTF-8 -*-
2
3 #__author__ = ‘Administrator‘
4
5 # continue 和 break 用法
6
7 i = 1
8 while i < 10:
9 i += 1
10 if i % 2 > 0: # 非双数时跳过输出
11 continue
12 print i # 输出双数2、4、6、8、10
13
14 i = 1
15 while 1: # 循环条件为1必定成立
16 print i # 输出1~10
17 i += 1
18 if i > 10: # 当i大于10时跳出循环
19 break
20
21 for letter in ‘Python‘: # 第一个实例
22 print ‘当前字母 :‘, letter
23
24 print "通过序列索引迭代"
25 fruits = [‘banana‘, ‘apple‘, ‘mango‘]
26 for index in range(len(fruits)):
27 print ‘当前水果 :‘, fruits[index]
28
29 var = 1
30 while var == 1 : # 该条件永远为true,循环将无限执行下去
31 num = raw_input("Enter a number :")
32 print "You entered: ", num
33
34 print "Good bye!"
4、函数
1 #coding=utf-8
2 __author__ = ‘Administrator‘
3
4 # 定义函数
5 def printme( str ):
6 "打印任何传入的字符串"
7 print str;
8 return;
9
10 # 调用函数
11 printme("我要调用用户自定义函数!");
12 printme("再次调用同一函数");
13
14 # 可写函数说明
15 def printinfo( arg1, *vartuple ):
16 "打印任何传入的参数"
17 print "输出: "
18 print arg1
19 for var in vartuple:
20 print var
21 return;
22
23 # 调用printinfo 函数
24 printinfo( 10 );
25 printinfo( 70, 60, 50 );
26
27 # 可写函数说明
28 sum = lambda arg1, arg2: arg1 + arg2;
29
30 # 调用sum函数
31 print "相加后的值为 : ", sum( 10, 20 )
32 print "相加后的值为 : ", sum( 20, 20 )
33
34 import math
35
36 content = dir(math)
37
38 print content;
5、遍历目录
1 # coding=utf-8
2
3 # __author__ = ‘Administrator‘
4
5 import os
6
7 dir = r‘D:\BaiduNetdiskDownload‘
8 specify_str = ‘e‘
9
10 #指定搜索目录
11
12 results = []
13 folders = [dir]
14
15 for folder in folders:
16 # 把目录下所有文件夹存入待遍历的folders
17 folders += [os.path.join(folder, x) for x in os.listdir(folder) 18 if os.path.isdir(os.path.join(folder, x))]
19
20 # 把所有满足条件的文件的相对地址存入结果results
21 results += [os.path.relpath(os.path.join(folder, x), start=dir) 22 for x in os.listdir(folder) 23 if os.path.isfile(os.path.join(folder, x)) and specify_str in x]
24
25 # 输出结果
26 for result in results:
27 print(result)
28 print(‘找到 %s 个结果!‘ % len(results))
6、日期转换
1 #coding=utf-8
2
3 __author__ = ‘Administrator‘
4
5 import time; # 引入time模块
6
7 ticks = time.time()
8 print "当前时间戳为:", ticks
9
10 localtime = time.localtime(time.time())
11 print "本地时间为 :", localtime
12
13 localtime = time.asctime( time.localtime(time.time()) )
14 print "本地时间为 :", localtime
15
16 # 格式化成2016-03-20 11:45:39形式
17 print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
18
19 # 格式化成Sat Mar 28 22:24:24 2016形式
20 print time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())
21
22 # 将格式字符串转换为时间戳
23 a = "Sat Mar 28 22:24:24 2016"
24 print time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))
25
26 import calendar
27
28 cal = calendar.month(2016, 1)
29 print "以下输出2016年1月份的日历:"
30 print cal;
四、下载图片
下载指定网址上的所有图片
1 # coding=utf-8
2
3 # python实现简单爬虫功能
4
5 import urllib
6 import re
7
8
9 def getHtml(url):
10 page = urllib.urlopen(url)
11 html = page.read()
12 return html
13
14
15 def getImg(html):
16 reg = r‘src="(.+?\.jpg)" pic_ext‘
17 imgre = re.compile(reg)
18 imglist = re.findall(imgre, html)
19 x = 0
20 for imgurl in imglist:
21 urllib.urlretrieve(imgurl, ‘picture\%s.jpg‘ % x)
22 x += 1
23
24 html = getHtml("http://tieba.baidu.com/p/2460150866")
25
26 print getImg(html)
以上是关于python 基础语法记录的主要内容,如果未能解决你的问题,请参考以下文章