目录
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))