python个人复习篇

容器

1.列表list

# 容器类型
# 列表 list  类似java中的数组,表现为【元素1,元素2,元素n】
# 元组 tuple  不可变的可迭代,且有序的,表现为(元素1,元素2,......)
# 字典dict    键值对结构,键是基于hash函数实现唯一值,是无序的,表现为{"key":value}
# 集合 set,无序,不可重复,表现{1,2,3}

# 列表 相当于栈
num_list=[2.3,"56","58.33"]
print(num_list)
num_list.append(10)#入栈
print(num_list)
n1=num_list.pop()#出栈
n2=num_list.pop(0)
print(n1,n2,num_list)
num_list.insert(0,100)#插入一个数
print(num_list)
print(num_list[0])#截取列表第一个数
print(num_list[2:4])#截取第三个数到第五个数
print(num_list[1:2:2])#list[start:end:step]表示从start开始到end,步长为step进行切片

#创建一个列表lis=[0,1,2,3,4,5,6,7,8,9]
lis=[i for i in range(10)]
#取后4个数,下面两个结果是一样的,一个是按照倒叙的索引,一个是正序索引
lis_=lis[-4:]
lis_=lis[6:]
#取3、5、7、9
lis_=lis[3::2]
上面最后一个切片就用到了两个冒号,其实就是这个lis[start:end:step],对应上面的例子就是start=3,end没写就是到列表的最后,step=2,意思就是从索引为start到end,步长为step进行切片

2.元组tuple

# 元组tuple
num_tuple=(4.2,55,48,123)
print(num_tuple)
print(num_tuple[0])#输出第一个元素
num_tuple=(1,2,3,4)
print(num_tuple)
list=[1.2]


#type()可以获取一个变量的类型
print(type(num_tuple))
print(type(list))
结果为
<class 'tuple'>
<class 'list'>

3.字典dict

# 字典dict
info_dict={"name":"迪迦奥特曼","age":"18","hobby":"打怪兽"}
# info_dict["age"]+=2
info_dict['height']=1.8
# print(info_dict['weight']   报错字典中不存在的key会报错
print(info_dict.get("weight",None))
print(info_dict.keys(),info_dict.values())
print(info_dict.items())

结果
None
dict_keys(['name', 'age', 'hobby', 'height']) dict_values(['迪迦奥特曼', '18', '打怪兽', 1.8])
dict_items([('name', '迪迦奥特曼'), ('age', '18'), ('hobby', '打怪兽'), ('height', 1.8)])

4.集合set

# 集合
num_set=(22,33,55)
print(num_set)
print(num_set[0])
print(num_set & {34,56})#报错
print(num_set | {1,2,5})#报错

s=set()
print(type(s))

结果
print(num_set & {34,56})
TypeError: unsupported operand type(s) for &: 'tuple' and 'set'
(22, 33, 55)
22

判断语句

# 分支语句
# if 条件 :
# 条件为True的语句块

n=int(input("请输入一个数:"))
if n>7:
    print(n,'大于七这个还是可以')
# 如果n是小于七,则什么都不打印,即省略条件不成立的情况。

# if-else条件语句
# if 条件:
    #条件为True的语句块
# else:
    #条件为假的语句块

phone=input('输入你的电话号码:')
#len()函数计算字符或文本内容的长度(字符长度)
if len(phone) == 11:
    print(phone,'长度合法')
else:
     print(phone,"长度不足,无效")

# if-elif-else

#if 条件:
    #条件为True的语句块
#elif 条件2:
    #条件2为True的语句块
#else:
    #条件2为False的语句块

score=float(input('请输入你的成绩:'))
if score>80:
    print(score,'你的成绩是良好')
elif score>=60:
    print(score,'你的成绩合格')
else:
    print(score,'你的成绩不合格!')

for循环

# for循环
# for 变量名 in 可迭代的对象:
# 对变量名进行有效操作的语句
# 可迭代的对象有列表list,元组tuple,字典dict,集合set
for item in [1, 2, 3, 4]:
    print(item)

for i in range(20):
    print(i)
# 列表list
list = [1, 2, 3, 4, 5, 6, '迪迦奥特曼', '塞罗奥特曼', '盖亚奥特曼']
for a in list:
    print(a)
# 元组tuple
tuple = ('     *', '    ****', '   ******', '  ********', ' **********')
for b in tuple:
    print(b)
# 字典dict
# dict={'name':'詹姆斯','age':36,'sex':'男','work':'篮球小皇帝'}
info_dict = {"name": "张三", "age": 18, "hobby": "吹牛逼"}
for c in info_dict:
    print(c)
# 列表推导式
print([i for i in range(100) if i % 2 == 0])
for d in range(5):
    print(d, end='\t')
# 字典推导式
# enumerate() 枚举化列表的方法, 枚举化的结果是 [ (0, 'a'),  (1, 'b'),  (2, 'c') ]
print({i: v for i, v in enumerate(['a', 'b', 'c'])})

while循环

#while循环
#while 条件:
      #条件为True时的语句块
      #修改条件中的变量值
i=0
total=0
while i<=10:
    total+=i
    i+=1
print('十以内的和是:',total)

#解构二
#while True:
       #执行语句
       #修改退出条件的变量
       #判断 退出条件是成立,成立则break

i=1
total=0
while True:
    if i % 2 == 0:
        total+=i
    i+=1
    if i>100: break
print("100以内的偶数之和",total)

练习

#统计100以内个位数是2并且能够被3整除的数的个数。
sum=0
for i in range(0,100):
    if i%3==0 and i%10==2:
        sum+=1
print(sum)

#输入任意一个正整数,求他是几位数?
n=int(input('请输入一个数:'))
n_str=str(n)
print('%d位数'% len(n_str))
print(n_str[::-1])

var_int=int(input('输入一个正整数:'))
var_str=str(var_int)
print('%d位数' % len(var_str))
print(var_str[::-1])
#::表示按照间隔为1去取元素,负号表示逆序print(var_str[::-1])

# 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,
# 其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,
# 因为153=1的三次方+5的三次方+3的三次方。
# ----------------------------------------------------------------------
# 把任意三位数的百位、十位、个位拆解出来就好办了。
# 思路:将任意3位数除以100再向下取整,
# 即可得到百位数。将这个3位数减去(百位数*100),即可去掉百位数,然后除以10再向下取整,
# 即可得到十位数。将这个3位数除以10再取整再乘以10(得到整几百几十的数字),
# 然后拿这个3位数减去这个数字,即可得到个位数。代码如下:
import math
for i in range(100, 1000):
    x = math.floor(i/100)  #获得百位数
    y = math.floor((i - x*100)/10)  #获得十位数
    z = i - math.floor(i/10) *10  #获得个位数
    if i == x**3 + y**3 + z**3:
        print(i, end=', ')
        
#打印出所有的水仙花数, 所谓水仙花数是指一个三位数,其各位数字⽴方和等于该数本身。例如: 153
# 是 ⼀个⽔仙花数, 因为
# 1³ + 5³ + 3³ 等于
# 153
import math
#引入数学运算库,添加之后就能运算数字运算
for i in range(100,1000):
#range能够产生随机数
    m=math.floor(i/100)#获得百位数
    n=math.floor((i-m*100)/10)#获得十位数
    p=i-math.floor(i/10)*10#获得个位数
    if i==(m**3)+(n**3)+(p**3):
       print(i,end=',')
       
       
       
       
  结果
  153,370,371,407,     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值