csdn_spider/blog/ds19991999/原创-- Python数据结构(一)——Python...

239 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 原创
Python数据结构——Python数据类型
# Python数据结构——Python数据类型
## 回顾Python数据类型
本系列需要用到的源码:[Python数据结构类封装](https://download.csdn.net/download/ds19991999/10571330)
>
Python支持面向对象的编程模式这意味这Python在解决问题的过程中重点是数据.
### 基本类型
```
False or True
```
```
True
```
```
not (False or True)
```
```
False
```
```
myList = [1,2,3,4]
A = [myList]*3
print(A)
myList[2]=45
print(A)
```
```
[[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]]
[[1, 2, 45, 4], [1, 2, 45, 4], [1, 2, 45, 4]]
```
```
# 与sort方法合用有效果
myList.sort()
myList
```
```
[1, 2, 4, 45]
```
```
myList.reverse()
print myList
```
```
[45, 4, 2, 1]
```
```
myName = 'dsdshahahads'
myName.split('s')
```
```
['d', 'd', 'hahahad', '']
```
```
{3,6,"cat",4.5,False,6,6,6,6,6,6,6}
```
```
{False, 3, 4.5, 6, 'cat'}
```
### 输入与输出
```
aName = input("Please enter your name ")
print("Your name in all capitals is",aName.upper(),
"and has length", len(aName))
```
```
Please enter your name 'ds'
Your name in all capitals is 'DS' and has length 4
```
```
# Python3支持Python2不支持
print("Hello","World", sep = "***")
print("Hello","World", end = "***")
```
```
Hello***World
Hello World***
```
### 控制结构
### 异常
```
import math
try:
anumber = int(input("Please enter an integer "))
print(math.sqrt(anumber))
except:
print("Bad Value for square root")
print("Using absolute value instead")
print(math.sqrt(abs(anumber)))
```
```
Please enter an integer -3
Bad Value for square root
Using absolute value instead
1.73205080757
```
```
import math
try:
anumber = int(input("Please enter an integer "))
print(math.sqrt(anumber))
except Exception as msg:
print msg
```
```
Please enter an integer -33
math domain error
```
### 定义函数
```
def f(x):
x *= x
if not x < 100:
return x
else:
return f(x)
```
```
f(5)
```
```
625
```
```
f(f(3))
```
```
43046721
```
### 类
```
def gcd(m,n):
"""取余的公约数求法"""
while m%n != 0:
m,n = n,m%n
return n
class Fraction:
def __init__(self,top,bottom):
self.num = top
self.den = bottom
def __str__(self):
return str(self.num)+"/"+str(self.den)
def show(self):
print(self.num,"/",self.den)
def __add__(self,otherfraction):
newnum = self.num*otherfraction.den + \
self.den*otherfraction.num
newden = self.den * otherfraction.den
common = gcd(newnum,newden)
return Fraction(newnum//common,newden//common)
def __eq__(self, other):
"""
覆盖__eq__方法通过相同的值创建深相等,而不是相同的引用
即"=="返回bool值
"""
firstnum = self.num * other.den
secondnum = other.num * self.den
return firstnum == secondnum
x = Fraction(1,2)
y = Fraction(2,3)
print(x+y)
print(x == y)
```
```
7/6
False
```
### 面向对象编程详见专题笔记
### 总结