蓝桥杯之python基础

蓝桥杯之python基础

  • 一.问题与学习
  • 二、python基础的关键知识点
    • 2.1 Python 标识符
    • 2.2 行和缩进
    • 2.3 多行语句
    • 2.4 python引号
    • 2.5 python注释
    • 2.6 python空行
    • 2.7 等待用户输入
    • 2.8 同一行显示多条语句
    • 2.9 print()输出
    • 2.10 多个语句构成代码组
  • 三、python变量类型/标准数据类型
    • 3.1 变量赋值
    • 3.2 标准数据类型
    • 3.3 python Numbers(数字)
    • 3.4 python 字符串
    • 3.5 python列表
    • 3.6 元组
    • 3.7 字典

一.问题与学习

1.什么是交互式编程/脚本式编程
python基础01|交互式编程&脚本式编程

2.跟学:python基础教程

3.下面2.7内容报错:NameError: name ‘raw_input’ is not defined
raw_input(“按下 enter 键退出,其他任意键显示…\n”)是老版本,新版本使用input(),如下所示。

蓝桥杯之python基础_第1张图片
4.python中 sys.stdout.write() 的理解
Python中sys.stdout.write()和print()的区别
python中sys.stdout.write() 怎么用?
print的用法:

taskId = 2
percentage = 98
#保留两位小数
print("任务%d 进度百分比:%.2f %%" %(taskId, percentage))
print("任务{} 进度百分比:{:.2f} %".format(taskId, percentage))
print(f"任务{taskId} 进度百分比:{percentage:.2f} %")

以上实例执行结果为:

任务2 进度百分比:98.00 %
任务2 进度百分比:98.00 %
任务2 进度百分比:98.00 %

5.复杂点1:Python format 格式化函数
复杂点2:末尾处 Python 的字符串内建函数

二、python基础的关键知识点

2.1 Python 标识符

在 Python 里,标识符由字母、数字、下划线组成。
在 Python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。
Python 中的标识符是区分大小写的。

以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入。

以双下划线开头的 __foo 代表类的私有成员,以双下划线开头和结尾的 foo 代表 Python 里特殊方法专用的标识,如 init() 代表类的构造函数

2.2 行和缩进

学习 Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断。python 最具特色的就是用缩进来写模块。

缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。

在 Python 的代码块中必须使用相同数目的行首缩进空格数。

建议你在每个缩进层次使用 单个制表符两个空格四个空格 , 切记不能混用

2.3 多行语句

Python语句中一般以新行作为语句的结束符。

但是我们可以使用斜杠( \)将一行的语句分为多行显示,如下所示:

total = item_one + \
        item_two + \
        item_three

语句中包含 [], {} 或 () 括号就不需要使用多行连接符。

2.4 python引号

Python 可以使用引号( ’ )、双引号( " )、三引号( ‘’’ 或 “”" ) 来表示字符串,引号的开始与结束必须是相同类型的。

其中三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。

2.5 python注释

python中单行注释采用 # 开头。
释可以在语句或表达式行末。
python 中多行注释使用三个单引号 ‘’’ 或三个双引号 “”"。

2.6 python空行

函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。

空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。

记住:空行也是程序代码的一部分。

2.7 等待用户输入

下面的程序执行后就会等待用户输入,按回车键后就会退出:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

raw_input("按下 enter 键退出,其他任意键显示...\n")

以上代码中 ,\n 实现换行。一旦用户按下 enter(回车) 键退出,其它键显示。

新版本将raw_input()改为input()。

2.8 同一行显示多条语句

Python可以在同一行中使用多条语句,语句之间使用分号(;)分割,以下是一个简单的实例:

#!/usr/bin/python

import sys; x = 'runoob'; sys.stdout.write(x + '\n')

执行以上代码,输入结果为:

$ python test.py
runoob

2.9 print()输出

print 默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号 ,

#!/usr/bin/python
# -*- coding: UTF-8 -*-

x="a"
y="b"
# 换行输出
print x
print y

print '---------'
# 不换行输出
print x,
print y,

# 不换行输出
print x,y

以上实例执行结果为:

a
b
---------
a b a b

print输出格式

print math.log(3,9) #√
print (math.log(3,9)#√
print "result:",math.log(3,9) #√,先输出逗号前的"result:",再输出逗号后的math.log(3,9)
a=1;print ("result:%d" %a) #√
# print ("result:",math.log(3,9))#×,结果为('result\xef\xbc\x9a', 0.5)
# a=1;print ("result:%d",%a) #×,不能有“,”

2.10 多个语句构成代码组

缩进相同的一组语句构成一个代码块,我们称之代码组。

像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。

我们将首行及后面的代码组称为一个子句(clause)。

如下实例:

if expression : 
   suite 
elif expression :  
   suite  
else :  
   suite 

三、python变量类型/标准数据类型

python变量类型/标准数据类型菜鸟教程

3.1 变量赋值

Python 中的变量赋值不需要类型声明

每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。

每个变量在使用前都必须赋值变量赋值以后该变量才会被创建

等号 = 用来给变量赋值。

等号 = 运算符左边是一个变量名,等号 = 运算符右边是存储在变量中的值。

Python允许你同时为多个变量赋值。

a = b = c = 1

以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。
您也可以为多个对象指定多个变量。例如:

a, b, c = 1, 2, "john"

以上实例,两个整型对象 1 和 2 分别分配给变量 a 和 b,字符串对象 “john” 分配给变量 c。

3.2 标准数据类型

在内存中存储的数据可以有多种类型。

例如,一个人的年龄可以用数字来存储,他的名字可以用字符来存储。
Python 定义了一些标准类型,用于存储各种类型的数据。

Python有五个标准的数据类型:
Numbers(数字)
String(字符串)
List(列表)
Tuple(元组)
Dictionary(字典)

3.3 python Numbers(数字)

学习链接:

菜鸟教程之python Numbers(数字)
Python中DEL语句的运用

简单理解:

Python Number 数据类型用于存储数值。

数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间。

Python支持四种不同的数字类型:
int(有符号整型)
long(长整型,也可以代表八进制和十六进制)
float(浮点型)
complex(复数)

长整型也可以使用小写 l,但是还是建议您使用大写 L,避免与数字 1 混淆。Python使用 L 来显示长整型。

Python 还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。

Python数学函数应用:

1.math.log(x) 就相当于数学中的ln(x),x>0,求底数为e的对数,e = 2.718281828459;

2.math.log10(x) 就相当于数学中的lg(x),x>0,求底数为10的对数,如math.log10(100)返回 2.0;

3.print(math.log(3,9))的结果为0.5

4.round() 方法返回浮点数x的四舍五入值,语法为round( x [, n] )
参数含义:x – 数值表达式,n – 数值表达式,表示小数点位数。
5.sqrt() 方法返回数字x的平方根。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
import math   # 导入 math 模块
 
print "math.log(100.12) : ", math.log(100.12)
print "math.log(100.72) : ", math.log(100.72)
print "math.log(119L) : ", math.log(119L)
print "math.log(math.pi) : ", math.log(math.pi)
# 设置底数!!
print "math.log(10,2) : ", math.log(10,2)

print "---------------------"
print "round(80.23456, 2) : ", round(80.23456, 2)
print "round(100.000056, 3) : ", round(100.000056, 3)
print "round(-100.000056, 3) : ", round(-100.000056, 3)

print "---------------------"
print "math.pow(100, 2) : ", math.pow(100, 2)
# 使用内置,查看输出结果区别!!!
print "pow(100, 2) : ", pow(100, 2)
print "math.pow(3, 0) : ", math.pow(3, 0)

print "---------------------"
print "math.sqrt(100) : ", math.sqrt(100)
print "math.sqrt(7) : ", math.sqrt(7)
print "math.sqrt(math.pi) : ", math.sqrt(math.pi)

以上实例运行后输出结果为:

math.log(100.12) :  4.60636946656
math.log(100.72) :  4.61234438974
math.log(119L) :  4.77912349311
math.log(math.pi) :  1.14472988585
math.log(10,2) :  3.32192809489
---------------------
round(80.23456, 2) :  80.23
round(100.000056, 3) :  100.0
round(-100.000056, 3) :  -100.0
---------------------
math.pow(100, 2) :  10000.0
pow(100, 2) :  10000
math.pow(3, 0) :  1.0
---------------------
math.sqrt(100) :  10.0
math.sqrt(7) :  2.64575131106
math.sqrt(math.pi) :  1.77245385091

3.4 python 字符串

学习链接:

菜鸟教程之python 字符串
python学习之字符串

简单理解:

字符串或串(String)是由数字、字母、下划线组成的一串字符,可以使用引号 ( ’ 或 " ) 来创建字符串。

Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。

Python 访问子字符串,可以使用方括号来截取字符串

python的字串列表有2种取值顺序:

从左到右索引默认0开始的,最大范围是字符串长度少1
从右到左索引默认-1开始的,最大范围是字符串开头
蓝桥杯之python基础_第2张图片
如果你要实现从字符串中获取一段子字符串的话,可以使用 [头下标:尾下标] 来截取相应的字符串。

其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。

[头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符。

>>> s = 'abcdef'
>>> s[1:5]
'bcde'

加号(+)是字符串连接运算符,星号(*)是重复操作。如下实例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
str = 'Hello World!'
 
print str           # 输出完整字符串
print str[0]        # 输出字符串中的第一个字符
print str[2:5]      # 输出字符串中第三个至第六个之间的字符串
print str[2:]       # 输出从第三个字符开始的字符串
print str * 2       # 输出字符串两次
print str + "TEST"  # 输出连接的字符串

以上实例输出结果:

Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST

Python 列表截取可以接收第三个参数,参数作用是截取的步长,以下实例在索引 1 到索引 4 的位置并设置为步长为 2(间隔一个位置)来截取字符串:
蓝桥杯之python基础_第3张图片
python 转义字符:

在需要在字符中使用特殊字符时,python 用反斜杠 \ 转义字符,如下:
\(在行尾时) 续行符
\\ 反斜杠符号
’ 单引号
\b 退格(Backspace)
\e 转义
\000 空
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页

Python字符串运算符:

+ 字符串连接

>>>a + b
'HelloPython'

* 重复输出字符串

>>>a * 2
'HelloHello'

[ : ] 截取字符串中的一部分

>>>a[1:4]
'ell'

in 成员运算符 - 如果字符串中包含给定的字符返回 True

>>>"H" in a
True

not in 成员运算符 - 如果字符串中不包含给定的字符返回 True

>>>"M" not in a
True

r/R 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。

>>>print r'\n'
\n
>>> print R'\n'
\n

Python 字符串格式化:

  %c	 格式化字符及其ASCII码
  %s	 格式化字符串
  %d	 格式化整数
  
  %u	 格式化无符号整型
  %o	 格式化无符号八进制数
  %x	 格式化无符号十六进制数
  %X	 格式化无符号十六进制数(大写)
  
  %f	 格式化浮点数字,可指定小数点后的精度
  %e	 用科学计数法格式化浮点数
  %E	 作用同%e,用科学计数法格式化浮点数
  %g	 %f和%e的简写
  %G	 %F 和 %E 的简写
  
  %p	 用十六进制数格式化变量的地址

格式化操作符辅助指令:

  *	定义宽度或者小数点精度
  -	用做左对齐
  +	在正数前面显示加号( + )
  	在正数前面显示空格
  #	在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
  0	显示的数字前面填充'0'而不是默认的空格
  %	'%%'输出一个单一的'%'
  (var)	映射变量(字典参数)
  m.n.	**m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)**

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

Python format 格式化函数

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))
 
# 通过字典设置参数
site = {"name": "菜鸟教程", "url": "www.runoob.com"}
print("网站名:{name}, 地址 {url}".format(**site))
 
# 通过列表索引设置参数
my_list = ['菜鸟教程', 'www.runoob.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list))  # "0" 是必须的

输出结果为:

网站名:菜鸟教程, 地址 www.runoob.com
网站名:菜鸟教程, 地址 www.runoob.com
网站名:菜鸟教程, 地址 www.runoob.com

3.5 python列表

学习链接:

菜鸟教程中之Python 列表(List)
python学习之列表
【Python】Python列表基本操作&python列表操作大全,互相补充

简单理解:

List(列表) 是 Python 中使用最频繁的数据类型。

列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。

列表用 [ ] 标识,是 python 最通用的复合数据类型。

列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。
蓝桥杯之python基础_第4张图片
加号 + 是列表连接运算符,星号 * 是重复操作。如下实例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
 
print list               # 输出完整列表
print list[0]            # 输出列表的第一个元素
print list[1:3]          # 输出第二个至第三个元素 
print list[2:]           # 输出从第三个开始至列表末尾的所有元素
print tinylist * 2       # 输出列表两次
print list + tinylist    # 打印组合的列表

以上实例输出结果:

['runoob', 786, 2.23, 'john', 70.2]
runoob
[786, 2.23]
[2.23, 'john', 70.2]
[123, 'john', 123, 'john']
['runoob', 786, 2.23, 'john', 70.2, 123, 'john']

3.6 元组

学习链接:

菜鸟教程之 python元组
python学习之元组和集合

简单理解:

元组是另一个数据类型,类似于 List(列表)。

元组用 () 标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。

元组不允许更新,而列表允许更新。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tuple[2] = 1000    # 元组中是非法应用
list[2] = 1000     # 列表中是合法应用
元组是不允许更新的,所以以上代码执行错误,结果如下:

Traceback (most recent call last):
  File "test.py", line 6, in <module>
    tuple[2] = 1000    # 元组中是非法应用
TypeError: 'tuple' object does not support item assignment

3.7 字典

菜鸟教程之python 字典(Dictionary)
python学习之字典
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。

两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典用"{ }"标识。字典由索引(key)和它对应的值value组成。

键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
 
tinydict = {'name': 'runoob','code':6734, 'dept': 'sales'}
 
 
print dict['one']          # 输出键为'one' 的值
print dict[2]              # 输出键为 2 的值
print tinydict             # 输出完整的字典
print tinydict.keys()      # 输出所有键
print tinydict.values()    # 输出所有值

输出结果为:

This is one
This is two
{'dept': 'sales', 'code': 6734, 'name': 'runoob'}
['dept', 'code', 'name']
['sales', 6734, 'runoob']

你可能感兴趣的:(python,python,蓝桥杯,开发语言)