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(数据类型,运算,比较符号,字符串,列表,函数等)相关推荐

  1. Python零基础速成班-第2讲-Python基础(上),运算、变量、数据类型、输入输出

    Python零基础速成班-第2讲-Python基础(上),运算.变量.数据类型.输入输出 学习目标 使用print输出结果 运算及运算符 变量 数据类型(4种最常用的) 输入输出 课后作业(4必做+1 ...

  2. 【python基础】——数据类型(列表、字典、集合)

    骏马金龙--python语法基础 python基础 变量与运算 符号 // % ** 意义 整除 整除取余 幂次方 数据种类 #mermaid-svg-7nSRRijcYFCYwTDr .label{ ...

  3. 1. Python基础之数据类型与注释

    文章目录 Python基础之数据类型与注释 1.变量 2.数据类型 2.1 Number类型 Int 整型 Float 浮点型 2.2 Bool 布尔类型 2.3 String 字符串类型 2.4 L ...

  4. Python基础之数据类型(一)

    Python基础之数据类型(一) 一.数据类型种类 二.int类型 三.float类型 1.float介绍 2.float简单示例 三.bool类型 1.布尔值为true 2.布尔值为false 四. ...

  5. Python基础之数据类型II

    Python基础之数据类型II 3.List(列表) 引子 我们现在已经学过的基础数据类型: int float str bool,str类型可以帮我们存储少量的数据,但是str有什么缺点? str存 ...

  6. python基础之数据类型III

    python基础之数据类型III 5.Dictionaries(字典) 5.1字典的认识 引子 我已经讲过的数据类型 int float str bool tuple list,我们讲的列表的数据类型 ...

  7. python和R数据类型查看、赋值、列表、for循环、函数用法对比示例

    python和R数据类型查看.赋值.列表.for循环.函数用法对比示例 很多工程师可能刚开始的时候只熟悉python或者R其中的一个进行数据科学相关的任务. 那么如果我们对比这学习可以快速了解语言设计 ...

  8. 『Python基础-12』各种推导式(列表推导式、字典推导式、集合推导式)

    # 『Python基础-12』各种推导式(列表推导式.字典推导式.集合推导式) 推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的 ...

  9. python 只取年月日 字符串_Python基础:数据类型和变量amp;字符串和编码

    Python基础:1.数据类型和变量 数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网 ...

最新文章

  1. 什么可以代替压感笔_什么是优生五项?一般体检可以代替优生五项检查?医生:不可以!...
  2. C/C++语言void及void指针深层探索 .
  3. Oracle 多行记录合并/连接/聚合字符串的几种方法
  4. 一个简单的XML文档例子
  5. spring里面 @Controller和@RestController注解的区别
  6. C# 4.0 的 Visual Studio 2010 官方示例
  7. HTML5 中的新特性:
  8. sublime for mac 注册码
  9. Laravel源码解析之事件系统
  10. 传苹果正与米高梅谈判 拟购买新007电影流媒体版权
  11. 打扰了!MacBook Pro 16英寸国行版正式开售:顶配46421元
  12. Kubernetes详解(二十七)——Deployment控制器回滚
  13. 深入浅出 妙用Javascript中apply、call、bind
  14. 409.最长回文串(力扣leetcode) 博主可答疑该问题
  15. zbar扫描二维码,条维码
  16. 数据科学工程篇_AB实验原理与实践
  17. Navigation导航系统
  18. ubuntu18.04两台电脑ntp时间同步
  19. windows的命令行工具和DOS工具的区别
  20. 简单爬取小姐姐的照片

热门文章

  1. Android开发第一天——Android studio连接mumu模拟器
  2. 传输原理及网管培训教材
  3. width,height为多少px时,A4纸打印时刚好一页?(转载)
  4. 程序猿面试经验总结(经验篇)
  5. linux定时任务提示没权限,Linux添加定时任务提示权限不够
  6. 提升论文影响力的方法
  7. 【C语言程序】体育老师按照学生身高编号,老师刚好排好编号,一位中等个子的男孩临时加入排列,因此老师将他排在第8号位置并重新排序他后面同学的编号。输出学生的编号。
  8. goland 使用 gorm 执行 存储过程 : go语言 执行存储过程
  9. 计算机风景画作品,电脑制作的风景画作品
  10. 在Windows XP 上 架设 FTP服务器