分享

Python入门基础知识

 算法与编程之美 2022-04-27

1 问题

最近有两个高中同学断断续续问我一些python题目。本文为初学者介绍一些Python基础知识,包括输入,输出,有序,无序序列的相关操作,函数的使用等,并出示相关的例题方便更好的理解。

2 方法

这里直接展示代码,注释部分对相关代码进行解释。

代码清单 1

# 1.拆分数据输入
#使用map()与split()将输入数据进行拆分,这两组合会自动忽略空格
a,b,c=map(int,input().split())
value=b*2-4*a*c
print(value)
#1.1 break与continue
str="Hello World"
s=''
for i in str:
   s+=i
   if i=="W":
       break  # 执行if语句后,跳出整个循环
print(s)
for i in range(10):
   if i==8:
       continue # 执行if语句后,跳出此次循环,接着下一次
   print(i)
#1.2  去掉输入前后的空格
#strip():去掉元素前后方的空格,但中间的空格不去掉
s1=input().strip()
print(s1)
#1.3 所输入即所得 eval()直接将字符串当作有效的表达式,(可以理解为暂时的去掉字符串的引号)
test=eval(input())   # 尝试输入内容[1,2,3,4]或者{”张三":18}
print(test)
print(type(test)) # type判断数据类型
# 2 输出
# 2.1 格式化输出format
a=50
b=168
c=a/b*100
print("hello{0},你的成绩提高了{1:.0f}%".format("小明",c))  #所有的(包括%)都要写在”“里面
print("hello{0},你的成绩提高了{1:.2f}%".format("小明",c))  #所有的(包括%)都要写在”“里面
print("hello%s,你的成绩提高了%d%%" % ("小明",c))  # 用两个%%来表示%的含义
# 2.2 以end输出
#python默认输出会换行,使用end=" "就可以不换行输出 ”“里面就是输出连接符
print("cxj",end="")
print("不挂科",end="加油啊") # 可以理解为就是一个拼接技术'''
print()
# 3. 列表,字典,元组,集合
# 创建空列表
empty_list=[]
empty_list=list()
# 创建空元组
empty_tuple=()
empty_tuple=tuple()
# 创建空集合
empty_set=set()
# 创建空字典
empty_dict={}
empty_dict=dict()
#往集合中添加元素 1 :
empty_set.add(1)
# 3.1 列表
a=["刘六","陈七","李四","张三","d","j"]
b=["张三","王五"]
# 增加,插入
a.insert(2,"薛之谦") # 在二号位插入元素'薛之谦'
a.extend(b)  #对列表a再追加一个列表b
a.append(78) #对列表在末尾添加元素
print(a)
#  删除
a.pop(1)         # 删除下标为1的元素,不写就默认为最后一个元素
a.remove("张三")  # 删除某个特定的元素,指名道姓了
# 修改
a[3]="罗永浩"  # 修改即直接对列表中某个元素重新赋值操作
print(a)
# 查询 列表查询元素没有get()方法,字典才有
c=a.index("张三")  #返回'张三'的下标
print(c)
# 判断某元素是否在列表里
print("张三" in a)   # 返回布尔值 True
a.clear()    #清空列表
print(a)  # 输出一个空列表
#  切片,包头不包尾 使得str[:2]+str[2:]==str
str=['i', 'am',' a','student']
e=str[:]  # 啥也不写,默认从0开始到结尾,步长为1
e=str[:2]  # 取出 0,1,下标元素
e=str[:3:2]  # 步长为2
e=str[-1:0:-1] # 从-1位置到不包括0的位置 (不要求start>stop) 结果:['student', ' a', 'am']
e=str[::-1] #反向提取 结果:  ['student', ' a', 'am', 'i']
print(e)
# 3.2 字典
# 3.2.1 字典的get()方法查询元素
dict={"张三":43}
print(dict.get("张三",43))   # 要有两个参数,第二个随便写,为了没查询到元素时不报错
d=dict.get("张三",78) # 查询到了key就返回它的value
d2=dict.get("李四",788) # 没查询到元素时不报错,返回788
print(d)
print(d2)
# 3.2.2 字典中的某个值可以表示为:dict[key]  key是包含了""的,一个完整的"name","age"才叫key
student={"name":"张三","age":18,"gender":"男"}
print(student.get("name","good"))
print(student.get("grade","sorry,没有此元素"))  #没有grade,因此返回第二个参数'good',他是不报错的
print(student["gender"])  # 注意要加"",不然会错
# 3.2.3 使用update()可以一次更新多个元素
student.update({'math':99,"英语":100,"python":100})
print("math:",student["math"])
#  3.2.4 删除元素 del/pop
del student["age"]
print(student)
# pop() 用变量来接收pop的值,不用变量接收就不会返回该值
k=student.pop("math")  # 返回99
student.pop("python")  #返回删除'python'后的列表
print(k)
print(student)
# 3.2.5 迭代
# 以键循环:只迭代出key,没有value
for keys in student:  #没有加属性,就只遍历出key
   print(keys)
# 键,值 循环
for key,values in student.items():
   print(key,values)
#只循环key
for key in student.keys():
   print(key)
#只循环value
for i in student.values():
   print(i)
# 3.3 元组
tup1=('张三','李四',"王五")
print(tup1[2])
#tup1[0]="六二"  #xxxxxxxxxx错误的,元组内元素不能改变,只读不写
# 3.4 排序
# 3.4.1 sort() / sorted()顺序
# sorted() 可以将字符串排除分隔并排序
s='7506'
a=sorted(s)
print(a)
# sort()会改变原来列表的顺序,不用创建变量来接收返回值
name=['z',"b","h"]
name.sort()
print(name)
# sorted()不会改变原来列表顺序,返回排序后的版本,需要创建一个变量来接收返回值
num=[2,5,3,99,6]
num=sorted(num)
print(num)
# 3.4.2 倒序
# reverse()  #会改变原来列表顺序,不用创建变量来接收返回值
name=['a',"b","h","j"]
name.reverse()
print(name)
# reversed() 需要创建一个变量来接收返回值.  也可以用[::-1]来颠倒,但不是排序
num=[34,65,78,33,23]
newnum=reversed(num)
print(list(newnum))  #需要转换成为列表
# 在参数中申明sort的方法
num=[34,65,78,33,23]
num.sort(reverse=True) #不用创建变量来接收返回值
print(num)
num.sort(reverse=False) #不用创建变量来接收返回值
print(num)
num=[1,2,4,6,3]
print(num[::-1])  #[3, 6, 4, 2, 1]'''
# 去重,利用set()得到的返回值是集合,要得到列表需要再加一个list转换
num_list=[2,3,4,2,6,3]
print(set(num_list))
print(list(set(num_list)))
# 4.循环与条件判断
# 4.1 for in 循环
for _ in range(1,10): # 注意参数取值范围,前开后闭
   print(_)
# 4.2 while 循环
happiness=0
while happiness!=22:
   happiness+=1  # 一定要有使得循环趋于结束的条件,否则会进入死循环
   print("祝你好运")
# 4.3 条件判断
# 4.3.1 判断输入的年份是否为闰年
year=int(input("输入年份"))
if year%400==0 or (year%4==0 and year%100!=0):
   print ("%s是闰年" % year)
else:
   print ("{0}不是闰年".format(year))
# 4.3.2 判断BMI值
height=eval(input('输入你的身高'))  # 以米为单位输入
weight=eval(input('输入你的体重'))  # 以千克为单位输入
BMI=weight/height**2
if BMI<18.5:
   print("过轻")
elif 18.5<=BMI<25:
   print("正常")
elif 25<=BMI<28:
   print("过重")
elif 28<=BMI<32:
   print("肥胖")
else:
   print("严重肥胖,注意健康")
# 4.3.3 判断成绩等级
grade=int(input('输入你的成绩'))
dic={"优秀":[90,100],
            "良好":[80,89],
            "中等":[70,79],
            "及格":[60,69],
            "不及格":[0,59]}
for k,v in dic.items():
   if v[0]<=grade<=v[1]:
       print("你的成绩为%s,等级为%s" % (grade,k))
# 5. 列表与字符串之间的转换
#列表--->字符串:join()
# 字符串--->列表: split()
strs=["i","am","a","student"]
a=" ".join(strs)  #  以""里面的内容拼接
print(a)
#就只是把字符串又完整的放回列表
strs="vcb,ji,ij,j,a,w"  # 这一个字符串中有15个元素,其中','也算.
str="hgfeiduy"
b=strs.split(".")
print(b)
d=str.split(" ")
print(d)
# 6.列表推导式
# 6.1 求平方
squares=[x*2 for x in range(1,10)]
print(squares)
#2.  求偶数(带条件的列表生成式)
num=[x for x in range(100) if x%2==0]
print(num)
# 6.2 最值/求和
#对于可迭代对象,可以直接用sum(),max(),min()
nums=[95,97,93,89,90]
print(sum(nums))
print(min(nums))
print(max(nums))
# 7. 函数
def f(n):
   pass
def f(*n):
   pass
def f(**n):
   pass
'''
函数参数中n表示:传入的一个参数
参数中带有*n表示:将参数以元组的形式导入(不限个数)
参数中带有**n表示:将参数以字典的形式导入(不限个数)
'''
# 举两个例子:
def f(num):
   sum=num+19000
   return sum
b=34
print(f(b))
def f(*num):
   sum=0
   for i in num:
       sum+=i**2
   return sum
print(f(2,9,6))
# 8. ASCII与字符的互换
# 使用ord()与chr()
ascii=65
print(chr(ascii))
str="z"
print(ord(str))
# 9. 进制转换
#将八进制的56转换为十进制
print(int('56',8))   #56需要加上"",即转换为字符串
#转换为二进制:bin
print(bin(1024))
#转换为八进制:oct
print(oct(8732))
# 用e代替10:
print(1.23e9)
# 10.一些常用的库
# math库
import math
# 幂:pow(x,y)
d=math.pow(3,4)
print(d)
# 平方根:sqrt
a=math.sqrt(9)
print(a)
# 全排列
import itertools
s=["a","b","c"]  # 对列表元素进行无重复组合
l=list(itertools.permutations(s))
print(l)
# 对数组中元素计数
nums = [10,6,5,8,5,8]
from collections import Counter
nums = Counter(nums)
print(nums)  # Counter({5: 2, 8: 2, 10: 1, 6: 1})
for i,item in nums.items():
   print(i,item) # 会依次打印出统计元素后的元素,个数

3 结语

Python入门选手刚开始接触都会有一定难度,本文总结的内容较为基础,适合刚入门的新手,代码也比较多,也有的不全面,后面会继续完善,希望阅读之后的你在编程路上的兴趣和自信有所提高。

稿件来源:深度学习与文旅应用实验室(DLETA) 

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多