怎样给不同的柱子上添加不同的标准误差线(怎么给柱形图加误差线)
526
2022-05-29
一、python安装及第一个python程序
(1)官网下载最新版的python 64位安装包并进行安装
(2)配置环境变量
在安装的时候,直接勾选Add Python 3.7 to Path,单击Customize installation可以在安装时指定自定义的安装路径 单击该选项即
可开始安装。在接下来 安装界面中只 改变 Python 安装路径(建议安装在指定盘符的根路径下 ,比如安装在 D:\Python\目录下), 其他地方使用默认选项即可。
安装完成之后,打开cmd 面板,输入python 看到如下输出说明安装成功!
C:\Users\段朝旭>python
Python 3.7.4 (tags/v3.7.4:e09359112e, Jul 8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
输入以下代码进行测试
>>> print("hello world")
hello world
>>> 1 + 2
3
>>> 5.3 + 2.3
7.6
>>> 1.3-2.4
-1.0999999999999999
>>> 1.3 * 2
2.6
>>> 3.5 / 3
1.1666666666666667
>>> 3.5 // 3
1.0
>>> 3.5 ** 2
12.25
>>> 5 ** 3
125
>>> import math
>>> math.sin(1.57)
0.9999996829318346
>>> math.cos(0.78)
0.7109135380122773
>>> math.tan(math.pi / 4)
0.9999999999999999
二、python基础知识
(1)单行注释和多行注释
# 代表单行注释
#print("hello,world")
"""代表多行注释
"""
this is a duo hang de zhu shi
"""
(2)变量
Python 是弱类型语言 ,弱类型语言有两个典型特征
变量无须声明即可直接赋值 对一个不存在的变量赋值就相当于定义了一个新变量。
变量的数据类型可以动态改变:同一个变量可以一会儿被赋值为整数值,一会儿被赋值为 字符串。
type()函数返回 传入数据的数据类型
>>> type("hello")
>>> type(1)
print()函数用法
user_name = "Charlie"
user_age = 8
#打印时默认的间隔符是空格
print("用户姓名",user_name,"用户年龄",user_age)
#使用sep参数将默认的间隔符修改为|
print("用户姓名",user_name,"用户年龄",user_age,sep="|")
#print函数默认会换行,因为end参数默认是\n,我们可以指定为空字符串,打印的时候就不会换行了
print(40,"\t",end="")
print(60,"\t",end="")
#可以直接输出内容到一个文件中
f=open("D:\open.txt","w")
print("锄禾日当午",file=f)
输出结果:
用户姓名 Charlie 用户年龄 8
用户姓名|Charlie|用户年龄|8
40 60
(3)python的关键字和内置函数
使用keyword 查看 python的关键字
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
python的内置函数
basestring()
bin()
bool()
enumerate()
execfile()
isinstance()
issubclass()
object()
oct()
open()
ord()
pow()
print()
property()
range()
raw_input()
reduce()
reversed()
staticmethod()
str()
sum()
super()
unichr()
__import__ ()
以上python内置的关键字以及内置的函数不应该作为标识符。
(4)Python 整型数值有4种 表示形式
十进制形式 最普通的整数就是十进制形式的整数
二进制形式:以 Ob OB 开头的整数就是 进制形式的整数
八进制形式:以Oo或00 开头的整数就是八进制形式的整数(第 二个字母是大写或小写的O)
十六进制形式:以 Ox或 ox 开头 整数就是十六进制形式的整数,其中 10 ~15 分别以a~f(此处的a~f不区分大小写)来表示
>>> 0x13
19
>>> 0XaF
175
>>> 0b111
7
>>> 0B101
5
>>> 0o54
44
>>> 0O17
15
(5)浮点型
浮点型数值用于保存带 数点的数值, python 浮点数有两种表示形式。
十进制形式:这种形式就是平常简单的浮点数,例如 5.12 512 0.512 。浮点数必须包含 一个小数点,否则会被当成整数类型处理。
科学计数形式 例如 5.12e2 (即 5.12 *10^2 )、 5.12E2 (也是 5.12*10^2)必须指出的是,只有浮点型数值才可以使用科学计数形式表示。例 51200 个整型值,但
512E2 则是浮点型值.
(6) 复数
导入cmath模块,例如:3 + 0.2j
(7) repr和字符串
sl ”这本书的价格是
p = 99.8
#字符串直接拼接数值,程序报错
print(sl + p)
#使用 str()将数值转换成字符串
print(sl + str(p))
#使用 repr()将数值转换成字符串
print (sl+repr(p))
str() 和 repr()函数都可 将数值转换成字符串,其 str 本身是 Python 类型( 和int float 一样〉,而 repr()则 只是 个函数 ,此外, repr 还有 一个功能, 它会以 Python 表达式 形式来表示 值。对 比如下两行粗体 码。
st = "i will play my life";
print (st)
print(repr(st))
上面代码中 st 本身就是 个字符串 但程序依然使用了 repr() 对字符串进行转换。运行上面程 序,可以看到如下输出结果。
I will play my fife
’ I will play my fife ’
通过上面的输出结果可以看出,如果直接使用print()函数输出字符串 将只能看到字符串的内容, 没有引号,但如果先使用 repr()函数对字符串进行处理,然后再使用 print() 执行输出,将可以 看到带引号 字符串一一 就是字 Python的表达式形式。
(8)使用input()函数获取用户输入
python3中input()函数用于向用户生成一条提示,然后获取用户输入的内容,由于input()函数总会将用户输入的内容放入字符串中,因此用户可以输入任何内容,input()函数总是返回一个字符串
msg = input("请输入你的值:")
print("您输入得值是:",msg, "值的类型是:",type(msg))
请输入你的值:2
您输入得值是: 2 值的类型是:
请输入你的值:1.2
您输入得值是: 1.2 值的类型是:
请输入你的值:Hello
您输入得值是: Hello 值的类型是:
(9)长字符串
myPhone = """这是一个长字符串"""
print(myPhone)
myPhone ="这是一个" \
"长字符串"
print(myPhone)
num = 20+3/4+ \
2*3
print(num)
(10)原始字符串
由于字符串中的反斜线都有特殊的作用,因此当字符串中包含反斜线时,就需要对其进行转义。 比如写一条 Windows 的路径 G:\publish\codes.4 ,如果在 Python 程序中直接这样写肯定 是不行的,需要写成: G:\publish\codes\02\2.4 ,这很烦人,此时可借助于原始字符串来解决这个 问题 ,原始字符串以“r ”开头, 原始字符串不会把反斜线当成特殊字符。因此,上面的 Windows 路径可直接写成 r' G:\publish\codes.4
url = "D:\sadasda\asdsadasd"
url = r"D:\sadasda\asdsadasd";
print(url)
(11) 字节串bytes
#创建一个空的bytes
bttes1 = bytes()
print(bttes1)
#创建一个空的bytes
bttes2 = b''
print(bttes2)
#通过前缀指定hello是bytes类型的值
b3 = b'hello'
print(b3)
print(b3[0])
print(b3[2:4])
# 调用bytes方法将字符串转换成bytes对象
b4 = bytes('我爱kxm',encoding='utf-8')
print(b4)
# 利用字符串的encode()方法编码成bytes,默认使用UTF-8字符集
b5 = "我爱kxm".encode('utf-8')
print(b5)
# 将bytes解码成字符串
b5str = b5.decode("utf-8")
print(b5str)
(12)字符串格式化
price = 108
print ("the book ’s price is %s" % price)
格式化字符串中的“ %s ”被称为转换说明符(Conversion Specifier),其作用相当于一个占位符, 它会被后面的变量或者 表达式的 值代替。 %s 指定将变量或值使用 str () 函数转换为字符串。 如果格式 字符串 包含多个“%s ”占位符,第三部分也应该对应地提供多个变量,并且使 用圆括号将这些变量括起来。 如下代码:
print("the book price is %s %s" % ("我","是一个粉刷匠"))
转换说明符
d, i
转换为带符号的十进制形式的整数
转换为带符号的八进制形式的整数
x
X
转化为科学计数法表示 的浮点数( e小写)
转化为科学计数法表示 的浮点数( E大写)
g
智能选择使用 f或者e格式
智能选择使用 f或者e格式
转换为单字符(只接受整数或者单字符字符串)
(13)序列相关方法
# 希望kxm能够快点好起来
test = "希望kxm能够快点好起来"
# 获取test 从右边开始,索引为4的字符
print(test[-4])
# 获取test从2开始到结束的字符串
print(test[2:])
# 获取test 从索引为2到4的字符串
print(test[2:4])
# 获取test从索引 -6到-3的字符串
print(test[-6:-3])
# 使用in关键字判断 test 是否包含 very 字符串
print('very' in test)
print('kxm' in test)
# 获取test字符串的长度
print(len(test))
# 获取test字符串中的最大字符
print(max(test))
# 获取test字符串中的最小字符
print(min(test))
(14)大小写相关方法
dir() : 列出指定类或模块包含的全部内容(包括函数、方法、类、变量等)。
help(): 查看某个函数或方法的帮助文档。
str类中与大小写相关的常用方法如下:
test = " abC jkL"
# 将每个单词首字母改为大写
print(test.title())
# 将整个字符串改为大写
print(test.upper())
# 将整个字符串改为小写
print(test.lower())
print(dir(str))
print(help(str.lower))
# 删除字符串前后的空白
print(test.strip())
# 删除字符串前面(左边)的空白
print(test.lstrip())
# 删除字符串后面(右边)的空白
print(test.rstrip())
#判断字符串是否 以指定子串开头
print(test.startswith(" "))
print(test.endswith("l"))
#查找指定子串在字符串中出现的位置,如果没有找到指定子串 ,则返回-1
print(test.find("a"))
#查找指定子串在字符串中出现的位置,如果没有找到指定子串 ,则引发 ValueError错误。
print(test.index("a"))
#使用指定子串替换字符串中的目标子串
print(test.replace("jk","mk"))
#定义翻译映射表
table = {97:945 , 98:946 , 116: 964}
print(test.translate(table))
"""str的translate()方法需要根据翻译映射表对字符串进行查找、替换。在
上面程序中自己定义了一个翻译映射表,这种方式需要开发者能记住所有字符的编码 ,这显然
不太可能 为此, Python 为由类提供了一个 maketrans ()方法,通过该方法可以非常方便地创建翻
译映射表"""
table1 = str.maketrans("ab","OP")
print(test.translate(table1))
myStr = "my.org is a good site"
#使用空白对字符串进行分割
print(myStr.split())
#使用空白对字符串进行分割,最多只分割前两个单词
print(myStr.split(None,2))
#使用点进行分割
print(myStr.split("."))
mylist = myStr.split()
#使用 /作为分割符,将 mylist 连接成字符串
print("/".join(mylist))
#使用 ,作为分割符,将 mylist 连接成字符串
print(",".join(mylist))
(15) 运算符
# 连续赋值
a = b = c = 20
print(a, b, c)
x = - 5.0
x = -x
print(x)
y = -5.0
y = +y
# n 个字符串拼接起来
s3 = 'crazy'
print(s3 * 5)
"""“/表示普通除法,使用它除出来的结果与
平常数学计算的结果是相同的(即除不尽时,会产生小数部分);而“//”表示整除,使用它除出
来的结果只有整数部分,小数部分将会被舍弃。"""
print(19 / 4)
print(19 // 4)
"""%:求余运算符 Python要求求余运算符的两个操作数都是整数, Python 的求余运算符完全
支持对浮点数求余。求余运算的结果不一定总是整数,它是使用第一个操作数来除以第二个操作数,
得到一个整 结果后剩下的值就是余数。"""
print(5 % 3)
print(5.2 % 3.1)
# ** 乘方/ 开方运算
print('5的2次方:', 5 ** 2) # 25
print('4的3次方', 3) # 64
print('4的开平方:', 4 ** 0.5) # 2.0
print('27的开3次方', 27 ** (1 / 3)) # 3.0
"""
& : 按位与
0 0 0 (两个数都是0,所以结果才是0)
0 1 0 (两个数只有一个为1,所以结果是0)
1 1 1 (两个数结果都是1,所以结果才是1)
| :按位或
0 0 0 (两个数都是0,所以结果是0)
0 1 1 (两个数只要其中一个是1,结果就是1)
1 1 1 (两个数都是1,所以结果是1)
^ : 按位异或。
0 0 0 (相同为0,不同为1)
0 1 1
1 1 0
~ : 按位取反。(0变成1,1变成0)
0 0
1 1
<<: 左位移运算符:左移运算符是将操作数的二进制码整体左移指定位数,左移后右边空出来的位以0来填充
0010101 << 2
1010100
>>: 右位移运算符: Python 右移运算符为 >>。对于“>>”运算符而言,把第一个操作数的二进制右移指定
位数后,左边空出来的位以原来的符号位来填充。即 :如果第一个操作数原来是正数,则 左边补 0;
如果第一个操作数是负数,则 边补 o
1010011 >>2
1010000
必须指出的是,位移运算符只适合对整型数进行运算
"""
a = 'abcdefghijklmn'
# 获取索引2到索引8的子串,步长为3
print(a[2:8:3]) # 输出cf
# 获取索引2到索引8的子串,步长为2
print(a[2:8:2]) # 输出ceg
a = 3
b = a
# 判断两个变量所引用的对象是否相同,
print(a is b)
# 判断两个变量所引用的对象是否不相同.
print(a is not b)
# 使用id()获取所引用的对象的内存地址
print(id(a))
print(id(b))
# 布尔值也可以进行运算
print(True + False)
print(False - True)
print(-True)
print(-False)
# ==只比较两个变量的值,但 is要求两个变量引用同一个对象。
import time
a = time.time()
b = time.time()
print(a == b) # 输出True
print(a is b) # 输出False
# 逻辑运算符 and or not
a = "book"
if a.startswith("b") and len(a) > 2:
print(True)
else:
print(False)
a = 75
b = 60
st = a if a > b else b
print(st)
小练习:
(1)
num1, num2 = int(input("请输入第一个整数:")), int(input("请输入第二个整数:"))
print(num1 // num2)
print(num1 / num2)
print(num1 + num2)
print(num1 - num2)
print(num1 * num2)
输出结果:
请输入第一个整数:10
请输入第二个整数:2
5
5.0
12
8
20
(2)
# 打印一个字串在一个字符串中出现的次数
string, sub_string = input("请输入字符串:"), input("请输入子串:")
count = 0
subLen = len(sub_string)
print(range(len(string) - 1))
for i in range(len(string) - 1):
if string[i:i + subLen] == sub_string:
count += 1
print("子串出现的次数是 %s" % count)
输出结果:
请输入字符串:abcabcabc
请输入子串:ab
range(0, 8)
子串出现的次数是 3
(3)
num1 = int(input("请输入一个整数:"))
print("十进制:%d" % num1)
print("八进制:%s" % oct(num1))
print("十六进制(大写):%s" % hex(num1))
print("二进制:%s" % bin(num1))
输出结果:
请输入一个整数:50
十进制:50
八进制:0o62
十六进制(大写):0x32
二进制:0b110010
(4)
string, sub_string = input("请输入字符串:"), input("请输入子串:")
list = sub_string.split(" ")
index,repStr = list[0],list[1]
tem = string[int(index)]
#方法一
print(string.replace(tem,repStr,1))
#方法二
str_new = string[:int(index)] + repStr + string[int(index)+1:]
print(str_new)
请输入字符串:ab.ccc
请输入子串:3 p
ab.pcc
ab.pcc
Python
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。