一、参考资料
Python核心编程(第二版)
Mooc北京理工大学讲解
二、学习内容
1.Python环境配置
我的是windows-64,选择对应的安装文件进行下载,按照提示一步步安装即可。
我安装的最新版本3.9.6,进入后选择windows-64的安装文件
下载文件后运行,按照提示安装即可。
我的安装路径为:C:\Python
2.我的第一个python脚本
启动Python交互解释器。在DOS中键入python即可打开。
输入命令
print ('hello world!')
执行结果
这里按照书上指示我先出现没有输入括号的错误,以及根据以往经验将‘打为“的错误。
3输入输出以及运算
1)通过字符串输出
定义一个字符串mystring并赋值,通过print输出
mystring="Hello World!"
print (mystring)
注:输出的变量用括号框起来
通过%进行替换输出,和C语言中类似,注意整体带上括号后,%后的局部还要带上括号,用逗号隔开。
2)print输出不换行
参考:(11条消息) python-不换行输出+print()完整参数详解_shangyj17的博客-CSDN博客_python 不换行输出
print('hello',end='')
print('world')
#result:helloworld
当print()函数,指定end参数为空字符后,print()函数就不再主动添加换行符了。并且,hello和world之间也不存在任何空格。可通过给end灵活赋值改变结尾换行或不换。
3)运用input函数输入
书上用的raw_input,在python 3.x后不再有效,用input替代即是一个意思
这里看到书上替换输出时,有的用的是逗号而不是%,这里与C#类似,用逗号隔开时,代表一段一段的连接,以下为测试代码
4)逻辑运算
//用于浮点除法,结果四舍五入
**表示乘方
其余与C大致相同,有不同再补充。
4.eval()与format()
1)eval()函数
参考博客:(11条消息) python中的eval函数的使用详解_涤生手记-CSDN博客
功能:
eval是Python的一个内置函数,功能十分强大,这个函数的作用是,返回传入字符串的表达式的结果。就是说:将字符串当成有效的表达式 来求值 并 返回计算结果。eval函数就是实现list、dict、tuple与str之间的转化,同样str函数把list,dict,tuple转为为字符串
语法:
eval(expression[, globals[, locals]])
expression : 表达式。
globals : (可选参数)变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
locals : (可选参数)变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
其他注意:
a)python3中input将接受的结果存为字符串,一般来说,可以使用eval实现表达式的还原,并且实现表达式的计算
b)可以将字符串转成表达式并执行,就可以利用执行系统命令,删除文件等操作。比如用户恶意输入就会获得当前目录文件
2)format()函数
参考:Python format 格式化函数 | 菜鸟教程 (runoob.com)
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。
基本语法是通过 {} 和 : 来代替以前的 % 。
format 函数可以接受不限个参数,位置可以不按顺序。
示例:
>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序
'hello world'
>>> "{0} {1}".format("hello", "world") # 设置指定位置
'hello world'
>>> "{1} {0} {1}".format("hello", "world") # 设置指定位置
'world hello world'
设置参数:
print("姓:{firstname}, 名 {name}".format(firstname="范", name="饭"))
# 通过字典设置参数
site = {"firstname": "范", "name": "饭"}
print("网站名:{firstname}, 地址 {name}".format(**site))
# 通过列表索引设置参数
my_name = ['范', '饭']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_name)) # "0" 是必须的
5.字符串
1)字符串截取
参考:python的字符串截取 - 寻步 - 博客园 (cnblogs.com)
str = ‘0123456789’
print str[0:3] #截取第一位到第三位的字符
print str[:] #截取字符串的全部字符
print str[6:] #截取第七个字符到结尾
print str[:-3] #截取从头开始到倒数第三个字符之前
print str[2] #截取第三个字符
print str[-1] #截取倒数第一个字符
print str[::-1] #创造一个与原字符串顺序相反的字符串
print str[-3:-1] #截取倒数第三位与倒数第一位之前的字符
print str[-3:] #截取倒数第三位到结尾
print str[:-5:-3] #逆序截取,具体啥意思没搞明白?
参考输出:
012
0123456789
6789
0123456
2
9
9876543210
78
789
96