python 从小白到大白

目录

1.最简单最入门的打印

2.注释

2.1单行注释

2.2多行注释

3.开始做题

3.1

3.2求阶乘

3.2.1.利用循环

3.2.2导入math库

3.3

3.4求最大公约数最小公倍数

3.5斐波那契数列(Fibonacci sequence),

3.6


1.最简单最入门的打印

在面向结果的打印时,python的输出最方便。Python的输出格式非常简单,语法易于理解,输出结果易于阅读。Python使用缩进来表示代码块,不需要额外的语法标记,使得代码可以更加紧凑和易读。

print("hello python")

2.注释

在学习代码时,我们要学会做注释。

注释可以说明代码的用途和功能,提供代码编写过程中的思考过程和决策依据,方便后续的修改和调试。

2.1单行注释

# 这是代码的注释

2.2多行注释

"""
我是注释
"""
'''
我也是注释
'''

3.开始做题

从题中去感受python的魅力

3.1

编写一个程序,查找所有此类数字,它们可以被7整除,但不能是5的倍数(在2000和3200之间(均包括在内))。获得的数字应以逗号分隔的顺序打印在一行上。

l=[] #创建一个列表
for i in range(2000, 3201): #python的循环格式
    if (i%7==0) and (i%5!=0):  #循环条件
        l.append(str(i))
 
print( ','.join(l)) #以逗号分隔

 l.append(str(i))

这行代码是将一个整数i转换成字符串类型,然后将该字符串添加到列表l的末尾。更具体地说,l是一个列表,append是列表的一个方法,表示将括号内的元素添加到列表末尾。i是一个整数,通过str()函数将其转换为字符串类型,并将该字符串添加到列表l的末尾。这行代码的作用是将整数i添加到列表l中,以便后续对该列表的处理。

3.2求阶乘

编写一个程序,可以计算给定数字的阶乘,结果应以逗号分隔的顺序打印在一行上,假设向程序提供了以下输入:8然后,输出应为:40320

3.2.1.利用循环

def main(num):
    a=1
    for i in range(1,num+1):
        a*=i
    return a

print(main(10))

3.2.2导入math库

import math
def main(num):
    return math.factorial(num)

print(main(5))

在这里要注意 import math 是导入math库的意思,import math是用来导入Python标准库中的math模块。math模块提供了许多数学函数和常量,例如三角函数、对数函数、常数π等。通过import math语句导入math模块后,可以在代码中调用该模块中的函数和常量,例如使用math.sin()调用正弦函数,使用math.pi调用常量π的值,以及其他更多的数学计算功能。

在写项目的时候,我们一个代码里面不能装太多行代码,不利于查找,由此我们使用import

import是Python语言中用于导入模块的关键字。模块是Python程序中的一个文件,其中包含可执行的代码、函数、类、变量等。通过使用import关键字,可以在当前程序中引入其他模块的代码,以便在当前程序中使用模块中定义的函数、类和变量等。

3.3

使用给定的整数n,编写程序以生成包含(i,ixi)的字典,该字典为1到n之间的整数(都包括在内)。然后程序应打印字典。假设向程序提供了以下输入:8\

输出为{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64}

n = int(input())
ans={i : i*i for i in range(1,n+1)}
print(ans)
# 演进
try:
    num = int(input("Enter a number: "))
except ValueError as err:
    print(err)
 
dictio = dict()
for item in range(num+1):
    if item == 0:
        continue
    else:
	dictio[item] = item * item
print(dictio)

在这里又想说一下字典

3.3.1字典是什么

Python字典是另一种可变容器模型,可存储任意类型对象。如字符串、数字、元组等其他容器模型
因为字典是无序的所以不支持索引和切片。

3.3.2字典的格式

dict = {"nane": "张三", "age": 20, "sex": "男"}
dict1={}
dict2={}
print(dict)
print(dict1)
print(dict2)

{'nane': '张三', 'age': 20, 'sex': '男'}
{}
{}

3.3.3字典的一些基本操作 

1.增:
格式: 字典名[new key]=new value

# 定义一个字典
dict = {"nane": "张三", "age": 20, "sex": "男"}
# 增加元素
dict["score"] = 100
print(dict)

{'nane': '张三', 'age': 20, 'sex': '男', 'score': 100}

 2.删:
格式:del 字典名[key]

3.查:
格式: value=字典名[key]

4.改:
格式: 字典名[key]=new value

清空字典

#清空字典
dict.clear()
print(dict)
# 定义一个字典
dict = {"name": "张三", "age": 20, "sex": "男"}

#常见操作
#len():测量字典中的键值对
print(len(dict))
#keys():返回所有的key
print(dict.keys())
#values():返回包含value的列表
print(dict.values())
#items():返回包含(键值,实值)元组的列表
print(dict.items())
#in  not in
if 20 in dict.values():
    print("我是年龄")
if "李四" not in dict.values():
    print("李四不存在")

3
dict_keys(['name', 'age', 'sex'])
dict_values(['张三', 20, '男'])
dict_items([('name', '张三'), ('age', 20), ('sex', '男')])
我是年龄
李四不存在
 

5.字典的遍历

my_dict={"name":"小红","age":20,"sex":"女"}
#1.key
for i in my_dict.keys():
    print(i)
#2.value
for i in my_dict.values():
    print(i)
#3.所有项(元素)  item
for i in my_dict.items():
    print(i)
#4.依次打印key和value,通过索引
for key,value in my_dict.items():
    print(key,value)
#5.元素值和对应的下标索引  enumerate(列表名)
for i in enumerate(my_dict):
    print(i)

 name 
age
sex
小红
20

('name', '小红')
('age', 20)
('sex', '女')
name 小红
age 20
sex 女
(0, 'name')
(1, 'age')
(2, 'sex')

3.4求最大公约数最小公倍数

原理都清楚吧,辗转相除

(1)比较两数,并使m>n

(2)将m作被除数,n做除数,相除后余数为r

(3)循环判断r,若r==0,则n为最大公约数,结束循环。若r !=0 ,执行m=n,n=r;将m作被除数,n做除数,相除后余数为r

num1=int(input("请输入第一个数字:"))
num2=int(input("请输入第一个数字:"))
m=max(num1,num2)
n=min(num1,num2)#保证m是大于n的
r=m%n
while r!=0:
    m=n
    n=r
    r=m%n
print(num1,"和",num2,"的最大公约数为",n)

 其实在c语言中 代码思路是一样的 就是格式不同

3.5斐波那契数列(Fibonacci sequence),

又称黄金分割数列、因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13,特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。

def fib(n):
    a,b=1,1
    for i in range(n):
        print(a,end = " ")
        temp = a
        a = b
        b = temp + b
num=int(input(""))
fib(num)

def函数 定义函数

def add1(num1, num2):
    result = num1 + num2

    return result

x1, x2 = 1, 2
y = add1(x1, x2)
print(y)

3.6

编写一个程序,该程序接受以逗号分隔的4位二进制数字序列作为输入,然后检查它们是否可被5整除。被5整除的数字将以逗号分隔的顺序打印。

输入:0100,0011,1010,1001

输出:1010 

def check(x):                       #转换二进制整数&返回由5零中频整除
    total, pw = 0, 1
    reversed(x)
 
    for i in x:
        total+=pw * (ord(i) - 48)    #ORD()函数返回ASCII值
        pw*=2
    return total % 5
 
data = input().split(",")           #输入此处,并在','位置分割
lst = []
 
 
 
for i in data:
    if check(i) == 0:              #如果零发现它是指由零整除并添加到列		lst.append(i)
         lst.append(i)
print(",".join(lst))

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值