python学习-第二天

今晚主要是python3的基础数据类型的学习。

#等待用户输入
# input("请输入:")
#将输入的值输出
# print(input("请输入"))

#python执行代码是一行一行执行的,若在同行中使用多条语句,可以用;进行分割
# print(888);print("999");


# a=10
# b=10
# #多行代码租场的代码组  称为子句 (注意缩进格式)
# if a==b:
#     print("a==b")
# else:
#     print("a!=b")

# 模块的导入
#导入整个模块
import sys
#调用模块中的函数 模块名.函数名
for i in sys.argv:
    print(i)
print("python的路径为",sys.path)

#导入模块中的特定函数 不用模块名. 出来 而是可以直接用函数名
from sys import argv,path
print("导入部分函数测试")
print('path:',path)
print('argv:',argv)
# 数据类型

'''
python中变量不需要声明,比较自由,不像java一般需要把每个变量的类型确定死
比较灵活 但容易造成维护困难,程序不跑,可能不知道这个变量的类型
所以要注意写好注释
'''

number=100 #整型变量
weight=50.6 #浮点型变量
name ='小王' # 字符串
# 赋值方式 =号赋值
print(name,number,weight)

a=b=c=1 #多个变量赋值
print(a,b,c)
a,b,c='123',456,"用逗号多赋值"
print(a,b,c)

#python3中有六种标准数据类型
'''
Number 数字  不可变
String 字符串  不可变
List  列表    可变
Tuple 元组    不可变
Set 集合      可变
Dictionary 字典   可变
'''

# Number  数字类型
'''
整型 int  代表长整型
浮点型 float 
布尔 bool (True和False 首字母一定要大写)
复数 complex
'''
#判断变量的类型
print(type(a),type(b),type(c)) # <class 'str'> <class 'int'> <class 'str'>
print(isinstance(a,int)) # 判断变量是否是这个类型 返回布尔值

# type 与 isinstance的区别
'''
type()不会认为子类是一种父类类型。
isinstance()会认为子类是一种父类类型。
'''

'''
当指定一个值的时候,Number对象就会被创建(应该可以理解为,指定值后,就分配了内存)
可以利用del语句删除引用
'''
temp=10;
print(temp)
del temp
# print(temp) # NameError: name 'temp' is not defined 被删除

# 数值运算

print(5+4) #加
print(5-4) #减
print(5*4) #乘
print(6/3) #除法  浮点数除法 得到结果是一个浮点数
print(6//2) # 除法 整数除法
print(7%3) #取余
print(2**5) # 乘方

# 在混合计算时,Python会把整型转换成为浮点数。



# 基本数据类型

# String 字符串

str="zxy test"

'''
要弄清楚的是python字符串可以从前往后截取,也可以从后往前截取
非常简单 根据下标截取 
'''
print(str[1:3]) # 输出xy
print(str[0:3]) # 输出zxy
print(str[0:-1]) # 输出 zxy tes

# print(1+'')
# TypeError: unsupported operand type(s) for +: 'int' and 'str'
# java中,经常把其他类型的变量加一个空串,就变成了字符串,python不可以

print(str[0])
# str[0]='9' # TypeError: 'str' object does not support item assignment
# python 不支持 用下标更改字符串
print(str[0])

# 基础数据类型

#List 列表 用[]
# 区分 java 中List是集合  而python中是 列表

'''
列表中元素可以是不同的类型
'''
list_1=[1,'a',2,'5','b','a',True]
print(list_1)
list_2=[9,10,'8',False]

#连接列表
print(list_1+list_2)

#列表的值是可以改变的
list_1[0]=100
print(list_1)
list_1[0:2]=[]
print(list_1)

# 步长读取
# list[statr:end:step]


# 元组
'''
元组与列表相似,但元组中的元素不能修改,用()
元组中的数据虽然不可变,但它可以含有可变的数据类型
'''
tuple_1=(1,2,3,4,5,6,'7')
print(tuple_1)
# tuple_1[0]=100 # TypeError: 'tuple' object does not support item assignment
# print(tuple_1)  #不能修改
#修改元组中的可变类型的数据的值
tuple_2=(list_1,list_2)
print(tuple_2)
tuple_2[0][0]='100'
print(tuple_2)
# tuple_2[0]=100 # TypeError: 'tuple' object does not support item assignment
print(tuple_2)

# Set 集合
'''
使用{}或者set(value)函数创建
但空集合一定要用set函数创建,因为用{}创建空集合会被判定为创建一个字典
基本功能是进行成员关系测试和删除重复元素。
'''
# 可以用type函数来看看结果
# set_1={}
# print(type(set_1)) # <class 'dict'> 字典类型

set_1={1,5,3,5,'5',10,'10'}
print(set_1) # 输出 {1, 3, 5, '10', '5', 10} 集合会去掉重复元素

# 判定成员
if '10' in set_1:
    print("'10' 在集合中")
else:
    print("'10' 不在集合中")

# 使用函数创建集合
set_2=set('abcdefsaadasdsada')
print(set_2)
print(type(set())) # <class 'set'>
# 集合可以进行 集合运算
'''
a-b 差集
a | b 并集
a & b 交集
a^b a和b中不同时存在的元素
'''
a={1,2,3,4,5,6}
b={5,6,7,8,9,10}
print(a^b) # {1, 2, 3, 4, 7, 8, 9, 10}


# Dictionary 字典
'''
字典,key:value形式的集合 用{}标识
可以用java中的map理解,但没有泛型的严格规范
还可以当成最常用的json格式来看
'''
dict_1={} #一个空字典
dict_1[1]=1
print(dict_1[1])
dict_1['name']='zxy'
dict_1['name']='888'
print(dict_1)
dict_2={'name':'zxy','age':18,'weight':100,'name':'yyy'}
# 这会使name的值为yyy
print(dict_2)
print(dict_2.keys()) # 输出所有key
print(dict_2.values()) # 输出所有值

'''
key 必须为不可变类型,且不能重复 重复会覆盖
'''
# a=[1,2,3]
# dict_3={}
# dict_3[a] ='test' # TypeError: unhashable type: 'list' 不能为list
# 基本数据类型

# 数据类型转换函数

print(int('15')) # def __init__(self, x, base=10): 将x转换为int型整数,默认是十进制

print(float('18')) # 转化为浮点数

print(str(18)) # 转为字符串

print(repr(18)) # 转换为表达式字符串

'''
str 与 repr的区别
str()函数:将值转化为适于人阅读的字符串的形式

repr()函数:将值转化为供解释器读取的字符串形式

repr打印字符串时,会带上''号,对eval执行时比较有效
'''

print(eval('3*8')) #eval() 函数用来执行一个字符串表达式,并返回表达式的值。

test_list=[1,2,3,4,5,5,4,3,2,1]
test_tuple=(1,2,3,4,5,4)
test_set={1,2,3,4,5,6,5,4,3}
test_dict={'name':'zxy','age':18}

# 将序列转化为元组
print(tuple(test_list))

# 将序列转化为列表
print(list(test_tuple))

#转换为可变集合
print(set(test_tuple))

# 创建一个字典。d 必须是一个 (key, value)元组序列。
print(dict(zip(['one','two'],[1,2]))) # 映射函数方式来构造字典
print(dict([("name","zxy"),("age",12)]))

#创建一个不可变的集合
a=frozenset(test_list)
print(a)
# a[0]=100 # 'frozenset' object does not support item assignment
# print(a)

# 整数转字符
print(chr(97)) # ASCII 得到a

#字符转整数
print(ord('a')) # ASCII 得到97

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值