1.python入门_语法篇

下面是基础语法篇的大杂烩,其中包括了基本数据类型的创建与使用,以及打印变量的内容、类型,还有基本数据类型的转换。

# 拼接字符串
temp = 42
print("now temp is" + ' 42')

# 缩进表示代码块,保存缩进一致,否则报错
a = 1
if a == 2:
    print("the result is true.")
    print("!")
else:
    print("It's error!")

# 自然字符串,r。r保证了""中的内容都是字符,不会发生转义
str1 = r"this is a nature string.\n"
print(str1)

# 处理unicode字符串
str2 = u"this is an unicode string."
print(str2)

# 同一行可显示多条语句
import sys
x = 'runoob'
sys.stdout.write(x + '\n')

# 不换行输出,就在输出结尾加上 end = " "
print("don't newline", end=" ")
print("ok")

# import 和 from...import的区别
# import是将整个模块导入,包括模块内的所有函数
# form...import是从某个模块导入某个函数或者某个成员变量
# 语法:from sys import argv,path;

''' 关于比较长的注释,可以这样来写
    这有些类似于OC和Java的文档注释
    可以详细注释函数功能以及参数代表的含义和参数示例
'''

# help(max)

# 数据类型
# Python中有6种数据类型
# Number(数字), String(字符串), List(列表), Tuple(元组), Sets(集合), Dictionary(字典)

# Number类型
# 在Python3中,数字只有4种,int, float, bool, complex
# 整数只有一种int类型,取消了python2中的长整形(在值后面加个'L',现在再加'L'编译器会报错)
# 如果你想知道某个变量的类型,可以使用type()函数
i1 = 45
f1 = 3.3
b1 = True
c1 = 4 + 5j
print(type(i1), type(f1), type(b1), type(c1))
# 输出结果为:   
# 另外Python一共了一个判断变量类型的函数
a = 111
isinstance(a, int)
# 但是这个isinstance方法在Python Shell中可以打印出结果,在Sbulime Text 3中无法打印结果

# type()函数 和 isinstance()函数 的区别
# type()函数判断类型时不识别类的继承关系,也就是说用这个类型的父类判断时返回False
# isinstance()函数会识别类的继承关系,判断是否是父类时仍然会返回 True

# 数字中有两个特殊值,True 和 False。这两个值在Python3.0之后的版本被定义为关键字,分别代表数字1 和 0
# 并且True 和 False 可以和数字类型的变量进行操作,比如加减乘除

# Del 删除语句
var3 = 234
# del var3
print(var3)
# Del 关键字的作用就是删除引用或者变量, 当你删除了引用后又使用这个引用时就会报错,原理应该类似于OC中的野指针

# 加减乘除,除法取整//,求余%,乘方**
# 有一下几点需要知道:
# 1.一个变量通过赋值可以指向不同的类型的对象
# 2.在混合计算时,Python会自动把结果改为Float类型(以免丢失精度)

# 最后一个数值类型,复数Complex, 比如表示 1+2j,有如下两种方式:
var4 = complex(1, 2)
var5 = 1 + 2j

# String  字符串
# Python中用''或者""表示字符串,用\表示转义
# 截取字符串
# 索引从0开始,-1代表倒数第二个
str3 = "abcdefg"
print(str3)
print(str3[0:-1])  # 范围选取
print(str3[2:])   # 输出索引3开始之后的所有字符
print(str3[0])    # 单个选取
print(str3 * 2)   # 连续输出两次(中间无空格或者制表符‘\t’)
# r代表原始字符串 ,在输出时会忽略转义字符\n\t等
print(r"\n fdafsf\t")
# 与C语言字符串不同的是,Python字符串不能改变,如果你想向某个字符串的索引位置赋值时,就会报错
# Python字符串的索引有两种方式,从左向右从0开始,从右向左从-1开始
# 最后,再说一遍,Python中的字符串不能改变

# List 列表
# 在Python中,List使用非常频繁,可以完成大多数集合类的数据结构的实现
# List中可以存放各种类型的数据,支持数字,字符串,也可以包含列表(嵌套)
listLikeArray = ["abcd", 456, 7.89, 'unicode']
tinyList = [123, 'abc']
print(tinyList)             # 列表也可以直接打印
print(listLikeArray[0])     # 列表中第一个元素
print(listLikeArray[1:3])  # 列表中从第2个到第3个元素(范围是左闭右开,同Java)
print(tinyList * 2)         # 输出两次列表

# 与String相比,List中的元素是可以改变的
# 而且直接通过索引改变即可
tinyList[0] = 456
print(tinyList)

# List 同样可以使用+操作符拼接
print(tinyList + listLikeArray)

# Tuple 元组
# Tuple 和 List相似,同样可以存放多种类型数据,元素之间用,隔开 ,写在()中
tupleArray = ('abcde', 666, "yuioop", 8.887)
print(tupleArray)  # 打印tupleArray
print(tupleArray[1])  # 按索引取元素
print(tupleArray[1:-1])  # 按索引区间取元素
# 在List中有的操作,在Tuple中基本都存在,区别就在于Tuple中的元素的值不可改变

# 如果想要构建一个空的元组 或者 只有一个元素的元组
tupleSingle = ()  # k空元组
tupleSingleElement = (667)
newTuple = (tupleSingleElement, 668)  # 给元组添加元素
print(newTuple)

# 提示:String, List, Tuple都属于Sequense(序列)

# Set 集合
# Python中的集合比较特殊,不同于C#和Java,Python中的集合是一个不重复的元素序列
# 基本功能是成员关系测试、删除重复元素
# 创建集合可以使用{},也可以使用set()函数
set1 = set('abcdeeeeefg')
set2 = {'tom', 'jack', 'william', 'tom', 'steven'}
# 但是如果你要创建一个非空的集合的话,只能使用set()函数
# 因为{}内为空,表示创建一个空字典

print(set1)  # set1中重复的元素被自动去掉

set3 = set('tom')
# 成员测试
print('tom' in set2)  # 只能判断某个元素是否能在集合中
print(set3 in set2)  # 不能这样写,结果为False

# Set 既然是集合,也就意味着可以进行 ‘差,交,并’等基本运算
set4 = set('abcdef')
set5 = set('bcd')
print(set4 - set5)      # 差集
print(set4 | set5)      # 并集
print(set4 & set5)      # 交集
print(set4 ^ set5)      # 两个集合不同时存在的元素

# Dictionary 字典
# Dictionary 和 List 有点类似,不同的是:List为有序的对象集合,Dictionary为无需的对象集合
# 在取值赋值等操作也有不同,List根据索引来操作,而Dictionary根据键(key)来操作

# 创建空字典
dic1 = {}
# 给空字典添加键值对
dic1['one'] = "第一个字符串"
dic1['two'] = "第二个字符串"
print(dic1)  # 在Python sehll中可以打印,Sublime Text3 中不能打印字典的内容

# 创建并初始化一个字典
dic2 = {'one': 'one\'s string', 'two': 'two\'s string', 'three': '3', 4: 4444}
print(dic2)  # 大括号创建的字典在Sublime中可以打印出来
print(dic2['one'])  # 根据key取Value
print(dic2[4])      # key可以是String,也可以是数值
print(dic2.keys())  # 输出所有dic2的key  打印内容:dict_keys(['one', 'two', 'three', 4])
print(dic2.values())  # 输出所有dic2的value

# 使用构造函数构造字典,语法如下
dic3 = dict([('firefox', 1), ('Google', 2), ('Internet Explore11', 3)])
print(dic3)

# 字典还有一些其他内置API,用到再说
# 最后再说一遍,key的值必须唯一,有重复会报错。

# Python数据转换
var6 = int(66.89)
var7 = float(77)
var8 = str(99999)
print(var7, type(var8))
var10 = "666"
var9 = repr(var10)  # 将对象x转换为表达式字符串(repr函数中不支持字符串拼接、强转等方式)
print(var9)

var11 = eval(var8)  # 用来计算字符串在Python有效表达式,并返回一个对象
print(var11)

s = ['123', '456', '789']
var12 = tuple(s)    # 把List(列表) 转为 Tuple(元组)
print(var12)

s2 = set('aaaaaaaa')
var13 = tuple(s2)  # 把Set(集合) 转为 Tuple(元组)时,只能转第一个字符
print(var13)        # var13 = ('a',)

# 这样的转换还有很多,等用到时可以写的demo测试一下就明白了,不用一一学习,千篇一律

你可能感兴趣的:(1.python入门_语法篇)