About me
本蒟蒻是悉尼大学计算机科学大一的学生,这篇博客记录了学习INFO1110这门课的一些心得,希望能对大家有帮助。
To start with
因为计算机只能识别机器语言,所以我们需要编译器将其他语言翻译成机器语言。编译器有编译(complier)和解释(interpreter)两种。python是属于解释型语言。
- 编译型语言:程序在执行前需要一个专门的编译过程,把程序编译成机器语言的文件,运行时不需要重新翻译,直接使用编译的结果。效率高,跨平台略差
- 解释型语音:编写的程序不进行预先编译,以文本方式储存代码,会将代码一句一句直接运行。要先解释再运行
Python的安装网上教程很多,这里不再赘述
执行python的两种种方式
- 解释器运行
用记事本(e.g. sublime)写好文件,保存在本地(记得文件要以.py结尾,这能让计算机知道这是一个python文件),在终端输入:
//python3 文件名.py
python3 hello.py
你也可以编译python文件:
python -m py_compile HelloWorld.py
//This makes a .pyc file for your program. The class file is called HelloWorld.class
python HelloWorld.pyc
- 交互式运行:
在终端输入python3进入Python环境,不需要输入要执行的文件名,多用于验证局部语法或代码,但不能保持和运行过大程序 。输入exit()退出环境 - IDE(集成开发环境):
集成了开发开发软件需要的工具包括图形界面,代码编辑器,解释器,调试器,比较常用的是vscode
变量
变量类型:
- 数字型:
int: 整数, e.g. 10
bool: 布尔,e.g. 0,1,True, False
float: 浮点数/小数,e.g. 0.5 - 非数字型
str:字符串
list: 列表
tuple: 元组
dict: 字典
Python允许你同时为多个变量赋值。
>a = b = c = 1
>a
>1 //返回 1
>b
>1
也可以为多个对象指定多个变量。
>a, b, c = 1, 2, "Joe He"
>a
>1
>c
>Joe He
注释
注释里的代码不会被执行。
快捷键:sublime和vscode里,选中要注释的代码(一行的话可以 ctrl+L),ctrl+/ 一键注释
# 这是一个当行注释,不会被运行
'''
这是一个多行注释
程序员最讨厌两件事:
第一是写注释
第二是别人不写注释
'''
字符串
合并字符串
用+号把两个字符串连接起来
first_name=“Joe”
last_name=“He”
full_name=first_name+" "+last_name
print(full name)
//Joe He
修改字符串大小写
- str.title(): 字符串内所有的首字母母大写, 注意are’t会变成Are’T
- str.capitalize(): 字符串的第一个单词的首字母大写, “there is a tree” -> “There is a tree”
- str.upper(): 字符串的所有单词大写
- str.lower(): 字符串的所有单词小写
name="joe he"
print(name.title()) //Joe He
print(name.capitalize()) //Joe he
print(name.upper()) //JOE HE
print(name.lower())//joe he
转义字符
Python识别字符串时,以 ’ (quote) 开头,以 ’ 结尾。 如果文字中有 ’ 或 ‘’ 会导致python无法读完全部文字。e.g. ‘I’am OK.’。这时候我们需要转义字符
// 转义
print('I\'m ok.')
// 制表符 (tab)\t
print("\tpython")
// 换行符 \n
print("Jan\nFeb\nMar\nApr\nMay\nJun\nJul\nAug" )
删除头尾的空白
- strip():用于移除字符串头尾指定的字符
- rstrip(): 删除 string 字符串末尾的指定字符
- lstrip():用于截掉字符串左边的空格或指定字符
string = ' hello '
string.strip() //'hello'
favourite language = 'python '
favourite language.rstrip() //'python'
number = 'foo123'
number.rstrip('0123456789') //'foo'
忽略新行
Python中每次print都会另起一行, 默认是print(‘xx’, end = ‘\n’),我们可以用一下方法忽略新行
print("line1 \
line2 \
line3") // line1 line2 line3
print("#", end="")
格式化
当我们想要在字符串中插入变量时,我们可以用格式化
//把string看做object,调用format method
name = 'Joe'
print("hello, {}".format(name))
一些常用的格式化:
#()里可以是字符串或数字
'{} {}'.format('one', 2) #'one 2'
#传入顺序可以通过数字1,2换
'{1} {0}'.format('one', 'two') #'two one'
#format里套format
'{:>{}}'.format('hello', 10) #' hello'
#打印{}
'{{{}}}'.format('hello') #{hello}
String
#10个字符框,靠右
'{:>10}'.format('test') #' test'
#靠左
'{:10}'.format('test') #'test '
#靠左,10位,剩余的用_补齐
'{:_<10}'.format('test') #'test______'
#居中
'{:^10}'.format('test') #' test '
#只取前几个字符
'{:.5}'.format('xylophone') # xylop '
'{:10.5}'.format('xylophone') #'xylop '
Number
#整数
'{:d}'.format(42) #'42'
#保留小数点后六位
'{:f}'.format(3.141592653589793) # 3.141593
#不足4位用空格补
'{:4d}'.format(42) # ' 42'
#六位,不足时0占位,保留到小数点后2位
'{:06.2f}'.format(3.141592653589793 #003.14
'{:+d}'.format(42) # +42
'{: d}'.format((- 23)) # -23
'{:=+5d}'.format(23) # + 23
读写文档
Python可以读入并改写文档 (.txt等),常见的有两种方法:
file = open('filename.txt', 'r')
print(file.readline())
file.close()
or
with open('filename.txt', 'r') as file:
print(file.readline())
这两个区别是第一种方法最后需要 file.close(), 第二种不需要。open()的第一个参数是要打开文件的名字,第二个参数是打开的模式(常用的模式有’r’和’w’)。
read模式
读文档有read(), readlines(), readline()这几种方法
# test.txt
deposit 5.00
withdraw 2.05
deposit 15.30
withdraw 935.50
wdeposit 500.50