Python学习之【数据类型】

学习内容:

Python学习之【数据类型】


学习时间:

2022/6/12 上午11:26


学习产出:

一、输出

1.输出到显示器
print(123)
2.输出到文件

⚠️:盘符必须存在;file=content;’ a+'的意思是文件不存在就创建, 存在就在文件后继续追加;

content=open('/Users/chenxing/exercise/text.txt', 'a+')
print('content', file=content)
content.close()

二、变量

name = 'Amber'
print('标识:', id(name)) #内存地址 4412283120
print('类型 :', type(name)) #<class 'str'>
print('值:', name) #Amber

三、数据类型

a = 123
b = "123"
c = 12.3
print(type(a)) #int
print(type(b)) #str
print(type(c)) #float
1.整数类型:int 可以表示整数、负数、0

整数的不同表示方式:
十进制 默认的进制;
二进制 0b开头,逢2进1,基本数只有0和1;
八进制 0o开头,逢8进1,基本数0-7;
十六进制 0x开头,逢16进,基本数0-9,A-F;

int1 = 123
int2 = 0b100111
int3 = 0o176
int4 = 0x1F2
print(int1) #123
print(int2) #39
print(int3) #126
print(int4) #498
2.浮点类型 float
from decimal import Decimal
# 直接相加 有问题
print(1.1+2.2) #3.3000000000000003
#引入模块
print(Decimal('1.1')+Decimal('2.2')) #3.3
3.布尔类型 bool
# 可以转换为整型进行进计算:True=1  False=0
f1 = True
f2 = False
print('f1+f2+3=',f1+f2+1) #f1+f2+3= 2
4.字符类型 str
# 只有三引号可以多行
str1 = '单引号'
str2 = "双引号"
str3 = """三
引
号"""
print(str1,str2,str3)

字符串方法

str4 = 'hello world'
# 首字母大写
print(str4.title())
# 全大写
print(str4.upper())
# 全小写
print(str4.lower())
# 某字符是否在字符串中
print('单' in '单引号') # True

四、数据类型转换:为了将不同类型的数据拼接到一起

1.str 将其他数据类型转换为字符类型
print(str(123),type(str(123))) #123 <class 'str'>
print(str(True),type(str(True))) #True <class 'str'>
print(str(12.3), type(str(12.3)))#12.3 <class 'str'>
2.int 将其他数据类型转换为整数
# 文字类无法转换
# 浮点型使用int会舍掉小数位
print(int(12.3)) #12
print(int(True)) #1
print(int('123')) #123
# 非整数串会 报错invalid literal for int()
# print(int('12.3'))
3.float 将其他数据类型转换为浮点数
print(float(123)) #123.0
print(float("123")) #123.0
print(float(False)) #0.0
# 报错 could not convert string to float
# print(float("文字")) #0.0

五、运算符

1.数字运算符:

加:+, 减:-, 乘:* , 除:/
整除://, 一正一负向下取整,eg:9//-4=-3
取余:% 一正一负要公式,余数=被除数-除数商,即 a % b = a - a // b * b, eg: 9%-4=9-(-4)(-3)=-3

2.赋值运算符: =
3.比较运算符:
a = 10
b = 10
list1 = [1, 2, 3]
list2 = [1, 2, 3]

# (1).比较值相等 ==
print(a == b) #True
print(list1 == list2)#True

# (2).比较标识符 is,is not
print(id(a) == id(b)) #True
print(id(list1) == id(list2)) #False

print(a is b) #True
print(list1 is list2) #False

print(a is not b) #False
print(list1 is not list2) #True
4.布尔运算符

and, or, not, in, not in

content1 = 'keyworld'
print('w' in content1) #True
5.位运算 先都转换为2进制的数
# 按位与:8位上都为1的位,组成2进制数,再转换为10进制得到的数
print(4&8) #0
# 按位或:8位上有1个数为1的位,组成2进制数,再转换为10进制得到的数
print(4|8) #12
# 向左移动1个位置,相当于*2,高位溢出,低位补0
print(4<<1) #8
# 向左移动2个位置,相当于*2*2,高位溢出,低位补0
print(4<<2) #16
# 向右移动1个位置,相当于/2,高位补0,低位截断
print(4>>1) #2
# 向右移动2个位置,相当于/2/2,高位补0,低位截断
print(4>>2) #1
6.运算符的优先级

() > 算数运算 > 位运算 > 比较运算 > 布尔运算 >赋值运算

六、程序的组织结构

顺序 选择 循环

条件表达式:

a = int(input('请输入a'))
b = int(input('请输入b'))
print('a<b' if a < b else 'a>=b')

ps:pass 啥也不做 占位符 用在需要写语句的地方。

range 内置函数:

用于生成一个整数序列;包括起始值,不包括结束值;返回值是一个迭代器对象;
优点:不管range表示的整数序列有多长,占用的内存空间都相同,只需要存储start,end,step,用到range对象时才会去计算序列中的元素。

1.只传1个参数

r = range(10)
print(r) # range(0, 10)
print(list(r)) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

2.传2个参数,range[start, end) 步长默认为1

r = range(2,8)
print(list(r)) #[2, 3, 4, 5, 6, 7]

3.传3个参数,range[start, end, step)

r = range(1, 10, 3)
print(list(r)) #[1, 4, 7]

in,not in判断整数是否存在于序列中

while循环

练习:1-100的偶数和

sum = 0
i = 0
r = range(1,101)
print(list(r))
while i < 101:
    if bool(i % 2):
        sum += i
    i += 1

print('sum', sum)
for in 循环 不需要使用自定义变量的话用_代替i

练习:1-10 偶数和奇数 分别存入arr1和arr2

arr1 = []
arr2 = []
for i in range(10):
    arr1.append(i) if not bool(i % 2) else arr2.append(i)
print(arr1, '\n',arr2)

"""
输出100-999之间的水仙花数,例153=3*3*3+5*5*5+1*1*1
"""
res = []
for i in range(100,1000):
    g = i%10
    s = i//10%10
    b = i//100
    if g**3 + s**3 + b**3 == i:
        res.append(i)
print(res)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值