Practical Python基础1(数据类型,运算,比较符号,字符串,列表,函数等)
Practical Python基础1(数据类型,运算,比较符号,字符串,列表,函数等)
Python是一种解释性的高级编程语言。它通常被归类为“脚本语言”,被认为类似于Perl、Tcl或Ruby等语言。Python的语法大致受到C编程元素的启发。
Python程序总是在解释器中运行。python程序是一系列语句:每条语句都以换行符结束。语句一个接一个地执行,直到控件到达文件末尾。
注释是不会执行的文本。
shell中是交互式模式,当开始键入语句,它们将立即运行。没有编辑/编译/运行/调试周期。
- 设置http代理服务器
import os
os.environ['HTTP_PROXY'] = 'http://yourproxy.server.com'
- 下划线_保存最后一个结果,只在交互模式正确
>>> 37 * 42
1554
>>> _ * 2
3108
>>> _ + 50
3158
>>>
- 变量是值的名称,可以使用从a到z的字母(小写和大写)以及字符下划线_。数字也可以是变量名称的一部分,但第一个字符除外。
height = 442 # valid
_height = 442 # valid
height2 = 442 # valid
2height = 442 # invalid
- Python是动态类型的。当程序执行时,变量的感知“类型”可能会根据分配给它的当前值而改变。区分大小写,语言语句总是小写;缩进用于表示一起出现的语句组;使用空格而不是制表符;每层使用4个空格;使用Python感知编辑器;Python的唯一要求是同一块中的缩进保持一致。
if a > b:print('Computer says no')
elif a == b:print('Computer says yes')
else:print('Computer says maybe')
python print()打印多值,单值,自动末尾添加换行符,可以使用end抑制换行符。
print('Hello', end=' ')
print('My name is', 'Jake')# Hello My name is Jake
- input()输入,pass语句指定一个空代码块。关键字pass用于它。
Python有4种类型的数字:布尔值、整数、浮点、复数(虚数)
x + y Add
x - y Subtract
x * y Multiply
x / y Divide (produces a float)
x // y Floor Divide (produces an integer)
x % y Modulo (remainder)
x ** y Power
x << n Bit shift left
x >> n Bit shift right
x & y Bit-wise AND
x | y Bit-wise OR
x ^ y Bit-wise XOR
~x Bit-wise NOT
abs(x) Absolute valueimport math
a = math.sqrt(x)
b = math.sin(x)
c = math.cos(x)
d = math.tan(x)
e = math.log(x)x < y Less than
x <= y Less than or equal
x > y Greater than
x >= y Greater than or equal
x == y Equal to
x != y Not equal toand or not
- 转换数字
a = int(x) # Convert x to integer
b = float(x) # Convert x to floata = 3.14159
int(a)
# 3b = '3.14159' # It also works with strings containing numbers
float(b)
# 3.14159
- 字符串,单引号,双引号,三重引号(括起来的多行文本都是字符串)
- 转义码用于表示控制字符和不能在键盘上直接键入的字符。以下是一些常见的转义码:
'\n' Line feed
'\r' Carriage return
'\t' Tab
'\'' Literal single quote
'\"' Literal double quote
'\\' Literal backslash
字符串的工作方式类似于访问单个字符的数组。使用整数索引,从0开始。负索引指定相对于字符串结尾的位置。还可以使用:分割或选择指定索引范围的子字符串。yang
连接,长度,成员资格和复制
删除串前串尾空格,大小写转换,文本替换以及其他很多函数
字符串可变性,字符串是“不可变”或只读的。一旦创建,值就不能更改,对字符串的操作每次都会创建一个全新的字符串。重新分配变量名符号时,它将指向新创建的字符串。之后旧字符串被销毁,因为它不再被使用。
所有操作字符串数据的操作和方法都会创建新字符串
一个8位字节的字符串,通常在低级I/O中遇到data=b’你好世界\r\n’
通过在第一个引号前放一个小b,可以指定它是字节字符串,而不是文本字符串转换为文本字符串/从文本字符串转换
使用in运算符检查子字符串
symbols.lower() 与 c = symbols.lower() 结果不一致dir()生成可以出现在(.)之后的所有操作的列表。使用help()命令获取有关特定操作的详细信息:help(s.upper)
a = 'Hello world'
b = a[0] # 'H'
c = a[4] # 'o'
d = a[-1] # 'd' (end of string)d = a[:5] # 'Hello'
e = a[6:] # 'world'
f = a[3:8] # 'lo wo'
g = a[-5:] # 'world'# Concatenation (+)
a = 'Hello' + 'World' # 'HelloWorld'
b = 'Say ' + a # 'Say HelloWorld'# Length (len)
s = 'Hello'
len(s) # 5# Membership test (`in`, `not in`)
t = 'e' in s # True
f = 'x' in s # False
g = 'hi' not in s # True# Replication (s * n)
rep = s * 5 # 'HelloHelloHelloHelloHello'# stripping any leading / trailing white space.
s = ' Hello '
t = s.strip() # 'Hello'# Case conversion.
s = 'Hello'
l = s.lower() # 'hello'
u = s.upper() # 'HELLO'# Replacing text.
s = 'Hello world'
t = s.replace('Hello' , 'Hallo') # 'Hallo world's.endswith(后缀) #检查字符串是否以后缀结尾
s.find(t) #t在s中首次出现
s.index(t) #t在s中首次出现
s.isalpha()) #检查字符是否为字母
s.isdigit()#检查字符是否为数字
s.islower() #检查字符是否为小写
s.isupper()#检查字符是否为大写
s.join(slist)#使用s作为分隔符连接字符串列表
s.lower() #转换为小写
s.replace(旧,新) #替换文本
s.rfind(t) #从字符串结尾搜索t
s.rindex(t) #从字符串末尾搜索t
s.split([delim]) #将字符串拆分为子字符串列表
s.startswith(prefix) #检查字符串是否以前缀开头
s.strip() #删除前导/尾随空格
s.upper() #转换为大写# 转换为文本字符串/从文本字符串转换
text=data.decode('utf-8') #字节->文本
data=text.encode('utf-8') #text->字节s = 'hello'
print(dir(s))
# ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']print(s.upper)
- 基本字符串操作的一个限制是它们不支持任何类型的高级模式匹配。为此需要转向Python的re模块和正则表达式。 正则表达式处理是一个很大的主题,但这里有一个简短的示例:
import retext = 'Today is 3/27/2018. Tomorrow is 3/28/2018.'# 查找日期的所有事件
print(re.findall(r'\d+/\d+/\d+', text))
# ['3/27/2018', '3/28/2018']# 用替换文本替换所有出现的日期
print(re.sub(r'(\d+)/(\d+)/(\d+)', r'\3-\1-\2', text))
# Today is 2018-3-27. Tomorrow is 2018-3-28.
- Lists Python用于保存有序值集合的主要类型。
如果元素出现多次,index()将返回第一次出现的索引,如果找不到元素,它将引发ValueError异常。
删除remove()不会创建孔。其他项目将向下移动以填充腾出的空间。如果元素出现多次,remove()将仅删除第一次出现的元素。
就地排序,sort(),反向排序 sort(reverse=True) 注意:对列表进行排序将修改其内容“就地”。也就是说,列表中的元素被打乱,但不会因此创建新的列表。
成员测试,in 和 not in
某个词计数:s.count(“yoho”)
获取字符串列表并将它们连接到一个字符串中:‘,’.join(s)
列表可以包含任何类型的对象,包括其他列表(例如嵌套列表),通过使用多个索引操作,可以访问嵌套列表中的项。
s = [10, 1, 7, 3]
s.sort() # [1, 3, 7, 10]# Reverse order
s = [10, 1, 7, 3]
s.sort(reverse=True) # [10, 7, 3, 1]# It works with any ordered data
s = ['foo', 'bar', 'spam']
s.sort() # ['bar', 'foo', 'spam']# 使用sorted()创建一个新列表
t = sorted(s) # s unchanged, t holds sorted values
- 文件应该正确关闭,这是一个容易忘记的步骤。因此,首选的方法是这样使用with语句。逐行读取,写入文件,print重定向
读取压缩文件gzip库
f = open('foo.txt', 'rt') # Open for reading (text)
g = open('bar.txt', 'wt') # Open for writing (text)# 读取所有数据
data = f.read()with open(filename, 'rt') as file:# pass# 一次将整个文件读入data = file.read()import gzip
with gzip.open('Data/portfolio.csv.gz', 'rt') as f:for line in f:print(line, end='')
- 函数是一系列执行任务并返回结果的语句。return关键字需要显式指定函数的返回值
- 异常处理及抛出异常
for line in file:fields = line.split(',')try:shares = int(fields[1])except ValueError:print("Couldn't parse", line)raise RuntimeError('What a kerfuffle')
- 使用库函数:Python附带了一个大型的标准函数库如csv模块
import csvf = open('Data/portfolio.csv')
rows = csv.reader(f)
headers = next(rows)
print(headers)
# ['name', 'shares', 'price']
for row in rows:print(row)# ['AA', '100', '32.20']
# ['IBM', '50', '91.10']
# ['CAT', '150', '83.44']
# ['MSFT', '200', '51.23']
# ['GE', '95', '40.37']
# ['MSFT', '50', '65.10']
# ['IBM', '100', '70.44']
f.close()
参考
- https://github.com/dabeaz-course/practical-python/
Practical Python基础1(数据类型,运算,比较符号,字符串,列表,函数等)相关推荐
- Python零基础速成班-第2讲-Python基础(上),运算、变量、数据类型、输入输出
Python零基础速成班-第2讲-Python基础(上),运算.变量.数据类型.输入输出 学习目标 使用print输出结果 运算及运算符 变量 数据类型(4种最常用的) 输入输出 课后作业(4必做+1 ...
- 【python基础】——数据类型(列表、字典、集合)
骏马金龙--python语法基础 python基础 变量与运算 符号 // % ** 意义 整除 整除取余 幂次方 数据种类 #mermaid-svg-7nSRRijcYFCYwTDr .label{ ...
- 1. Python基础之数据类型与注释
文章目录 Python基础之数据类型与注释 1.变量 2.数据类型 2.1 Number类型 Int 整型 Float 浮点型 2.2 Bool 布尔类型 2.3 String 字符串类型 2.4 L ...
- Python基础之数据类型(一)
Python基础之数据类型(一) 一.数据类型种类 二.int类型 三.float类型 1.float介绍 2.float简单示例 三.bool类型 1.布尔值为true 2.布尔值为false 四. ...
- Python基础之数据类型II
Python基础之数据类型II 3.List(列表) 引子 我们现在已经学过的基础数据类型: int float str bool,str类型可以帮我们存储少量的数据,但是str有什么缺点? str存 ...
- python基础之数据类型III
python基础之数据类型III 5.Dictionaries(字典) 5.1字典的认识 引子 我已经讲过的数据类型 int float str bool tuple list,我们讲的列表的数据类型 ...
- python和R数据类型查看、赋值、列表、for循环、函数用法对比示例
python和R数据类型查看.赋值.列表.for循环.函数用法对比示例 很多工程师可能刚开始的时候只熟悉python或者R其中的一个进行数据科学相关的任务. 那么如果我们对比这学习可以快速了解语言设计 ...
- 『Python基础-12』各种推导式(列表推导式、字典推导式、集合推导式)
# 『Python基础-12』各种推导式(列表推导式.字典推导式.集合推导式) 推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的 ...
- python 只取年月日 字符串_Python基础:数据类型和变量amp;字符串和编码
Python基础:1.数据类型和变量 数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网 ...
最新文章
- 什么可以代替压感笔_什么是优生五项?一般体检可以代替优生五项检查?医生:不可以!...
- C/C++语言void及void指针深层探索 .
- Oracle 多行记录合并/连接/聚合字符串的几种方法
- 一个简单的XML文档例子
- spring里面 @Controller和@RestController注解的区别
- C# 4.0 的 Visual Studio 2010 官方示例
- HTML5 中的新特性:
- sublime for mac 注册码
- Laravel源码解析之事件系统
- 传苹果正与米高梅谈判 拟购买新007电影流媒体版权
- 打扰了!MacBook Pro 16英寸国行版正式开售:顶配46421元
- Kubernetes详解(二十七)——Deployment控制器回滚
- 深入浅出 妙用Javascript中apply、call、bind
- 409.最长回文串(力扣leetcode) 博主可答疑该问题
- zbar扫描二维码,条维码
- 数据科学工程篇_AB实验原理与实践
- Navigation导航系统
- ubuntu18.04两台电脑ntp时间同步
- windows的命令行工具和DOS工具的区别
- 简单爬取小姐姐的照片
热门文章
- Android开发第一天——Android studio连接mumu模拟器
- 传输原理及网管培训教材
- width,height为多少px时,A4纸打印时刚好一页?(转载)
- 程序猿面试经验总结(经验篇)
- linux定时任务提示没权限,Linux添加定时任务提示权限不够
- 提升论文影响力的方法
- 【C语言程序】体育老师按照学生身高编号,老师刚好排好编号,一位中等个子的男孩临时加入排列,因此老师将他排在第8号位置并重新排序他后面同学的编号。输出学生的编号。
- goland 使用 gorm 执行 存储过程 : go语言 执行存储过程
- 计算机风景画作品,电脑制作的风景画作品
- 在Windows XP 上 架设 FTP服务器