Python Day1

Python学习日记

1.应用领域

Web开发
数据处理与分析
人工智能
自动化运维开发
云计算
爬虫
游戏开发

2.搭建开发环境

Python解释器(3以上)

实现输出

在这里插入图片描述

—— print("hello world!")

pycharm社区版本
在这里插入图片描述
配置主题颜色

file——setting——appearance——theme

创建新的文件

file——new——pyfile——name

3.Python的基础知识

变量:类似于标签
不需要提前定义变量名,直接赋值各种类型变量

命名规则
在这里插入图片描述
慎用l和O,避免混淆
必须以字母开头
标识符命名规则:
——由字母、下划线” "和数字组成。第一个字符不能是数字。
——不能使用Python中的保留字。
——区分字母大小写。number = 0,Number = 1,NUMBER = 2 ,是3个完全不同的变量。
——Python中以下划线开头的标识符有特殊意义,一般应避免使用相似的标识符。

保留字:
在这里插入图片描述

基本数据类型:
(1) 数字类型:
整数(正、负、零)
浮点数(整数.小数)
复数(实部+虚部)

(2) 字符串类型:
连续的字符序列 、不可变序列、
通常用 ' '、" "、'" "'、"" ""

形式上三引号序列’" "'可分布在多行,其余不可以

转义字符
在这里插入图片描述

算术运算符:

在这里插入图片描述

赋值运算符:
在这里插入图片描述

比较运算符:
在这里插入图片描述

逻辑运算符:
在这里插入图片描述在这里插入图片描述

优先级:
在这里插入图片描述

同一优先级按照从左往右执行

注释:

单行: #

多行注释:三引号(‘’‘……’‘’)或者(“”“……”“”)

4. 函数学习

type(变量名) ——判断一个对象的数据类型

浮点数转换成整数:

int(小数)函数 ——直接省去小数部分

整数转换为浮点数:

float(整数)函数 ——小数点后加0

浮点数运算会有略微偏差,可以忽略不计

将整数转换为字符串

str(变量名)

在字符串中使用转义字符:(第一列是姓名,第二列是成绩)

score_list = 'Name\tScore\nMerkel\t90\nZweig\t95'
print(score_list)
#\t  制表位
#\n  换行

#\\    ====>   输出\(真实的\)
#\'    ====>   输出单引号

算数运算

x%y      #求余数
x // y    #x/y的整数部分
x ** y    #x的y次方

输入和输出

variable = input('提示文字')
#variable是变量
print(variable)
eg:
    name = input('请输入您的名字:')
    score = input('请输入您的成绩:')
    print(name,',您的成绩是:',score,sep='',end='。')
    ##sep表示分隔符,美化输出
    ##end表示打印字符之后一什么结尾,print默认结尾换行

input输入对象永远是字符串

导入和使用库

import 库名

eg:

import random   #导入随机库
5. 流程控制语句

程序结构:
在这里插入图片描述

左侧是顺序结构的流程图,编写完毕的语句按照编写顺序依次被执行;

中间是选择结构的流程图,它主要根据条件语句的结果选择执行不同的语句;
右侧是循环结构的流程图,它是在一定条件下反复执行某段程序的流程结构,其中,被反复执行的语句称为循环体,决定循环是否终止的判断条件

选择结构语句

##if语句           
'''if表达式: 
          语句块'''
score = float(input('请输入你的成绩'))
if score >=60 :
    print('success!!')
    
 '''if 表达式:
            语句块1
     else : 
             语句块2'''
if score >=60:
    print('success!')
else :
    print("it's worse!" )

    '''if 表达式1:
              语句块1
         elif 表达式2:
              语句块2
         ……
         else:
              语句块n'''
    

循环结构语句

#for循环
'''for 迭代变量 in 对象 :
          循环体'''
#其中,迭代变量用于保存读取出的值;对象为要遍历或迭代的对象,该对象可以是任何有序的序列对象,如字符串、列表和元组等;循环体为一组被重复执行的语句。
for i in [1,2,3]:
    print(i)
    
#range()函数
range(start,end,step)
#end不可以省略,用于指定计数的结束值(不包括该值)
#step,指定步长
for i in range(1,101):
    print(i,end=',')
 
#for循环遍历字符串
mystr ='既见君子,云胡不喜'
for word in mystr:
    print(word)

while循环

'''while 条件表达式:
           循环体 '''
#遍历1~100
n = 1
while n <= 100:
    print(n,end=',')
    n+=1

嵌套循环:

'''while 条件表达式1:
         while 条件表达式2:
                循环体2
         循环体1     '''

'''while 条件表达式:
        for 迭代变量 in 对象:
             循环体2
         循环体1    '''

'''for 迭代变量1 in 对象1:
       for 迭代变量2 in 对象2:
             循环体2
       循环体1      '''

'''for 迭代变量 in 对象:
       while 条件表达式:
             循环体2 
       循环体1    '''

跳转语句:

跳出循环,for循环结束重复之前,或者while循环找到结束条件之前
两种方法来做到:
-使用continue语句直接跳到循环的下一次迭代。
使用break完全中止循环。

#break语句跳出最内层循环
'''while 条件表达式1 :
         执行代码
         if 条件表达式2:
             break      '''

#continue语句跳出最内层循环的剩余语句
'''while 条件表达式1 :
         执行代码
         if 条件表达式2:
             continue      '''

案例:

(1)用range()函数遍历水仙花数

编程打印输出100~ 999的所有水仙花数。水仙花数是指一个n位数(n≥3),其各位上的数字的n次幂之和等于它本身。

例如153是一个水仙花数,因为153=13+53+3^3.

#x//y表示x/y的整数部分
#x**y表示x的y次方
for i in range(100,1000):
     bai=i // 100   
     shi=(i % 100) // 10
     ge = i % 10
     if bai**3+shi**3+ge**3 == i:
        print(i,'是一个水仙花数')

(2)使用while循环折叠山峰的高度

世界最高山峰珠穆朗玛峰的高度为8848m。现在有- -张足够大的纸张,厚度为0.001m,请问折叠多少次,可以保证厚度不低于珠穆朗玛峰的高度。

start = 0.001 #纸张初始高度
h = 8848 
n=0   #初始折叠次数
while start<h:
    n+=1
    start = start*2
 print('0.001m的纸张需要折叠',n,'次,可以保证厚度不低于珠穆朗玛峰')

(3)打印斐波那契数列
在这里插入图片描述

a=1
b=1
c=int(input('请输入一个大于2的正整数:'))
while a<c:
    temp = a  #暂存一下 ,也可以精简为a,b=a+b,a
    a = a+b
    b = temp
    print(b,end=' ')

(4)打印乘法表

#普通
for i in range(1,10)
    for j in range(1,i+1)
        print(j,'*',i,'=',i*j,end='\t')
    print()

(5)制作猜数游戏

由计算机生成一个1到100的随机数,并由用户进行猜测,如果猜测正确,显示祝贺语,猜测错误,提示是过大还是过小。

import random
ans = random.randint(1,100)    #产生随机数
while Ture :
    x=input('请输入1~100的整数:')
    if int(x)==ans:
        print('congratulations!!')
        break
    elif int(x)>ans:
        print("sorry,it's bigger than ans!")
    else:
        print("sorry,it's not enough!")
6.列表

Python中数据容器:

列表
元组
字典
集合

序列:

有序序列:用于存储多个值的连续内存控件,按一定顺序排序,每个值(元素)分配一个数字(索引/位置)——列表、元组、字符串

无序序列:不支持索引、切片、相加和相乘操作——集合、字典

索引可以为负数
在这里插入图片描述

索引切片

切片操作可以访问一定范围内的元素——通过切片操作可以生成一个新的序列,实现切片访问。

sname[start:end:step]

sname:表示序列的名称

start:表示切片开始的位置(包括该位置),默认为0

end:表示切片截止的位置(不包括该位置),默认是序列长度

step:步长,默认为1,可以省略,最后一个冒号也省略

序列相关计算:

相加:两个序列首尾连接

乘法:数乘——序列的元素变成原来的n倍

检查是否为序列成员:使用in关键字

计算序列长度的最大、最小值:len()计算长度;max()最大;min()最小

(1)列表

概念:列表由一系列按特定顺序排列的元素组成,它是Python中内置的可变序列。在形式 上,列表的所有元素都放在一对中括号”[] "中两个相邻元素之间使用逗号”,"分隔。在内容上,可以将整数、实数、字符串、列表、元组等任何类型的内容放到列表中,并且在同一个列表中,元素的类型可以不同,因为它们之间没有任何关系。

a. 创建列表:

​ 用赋值运算符直接创建

listname = [element 1,element 2,...,element n]

​ 使用list()函数创建

​ 使用list()函数可以直接将一个可以迭代的对象, 如range对象,字 符串,元组等转换为列表。

listname = list('迭代对象')

eg: print(list(range(1,101)))

b. 删除列表

del listname

c. 访问列表元素

可以通过索引和切片访问列表部分元素

索引:print(listname[i])——访问列表的第i个元素

切片:print(listname[i:j])——访问第i到j-1位置的元素,可以设置步长,当步长为负数,列表的顺序倒过来

d. 遍历列表

直接使用for循环实现:直接使用for循环遍历列表,只能输出元素的值。
使用for 循环和enumerate() 函数实现:可以实现同时输出索弓|值和元素内容

enumerate()返回可迭代的对象,索引和索引指向的元素

for i in range(length(listname)):
    print(i,listname[i])
#更简单的方法
for i,j in enumerate(listname):
    print(i,j,sep=':\t')               
    #用冒号分隔

e. 添加列表元素

​ 添加一个元素:append()在列表末尾追加元素

listname.append(obj)

obj为要添加到列表末尾的对象

添加一个列表到另一个列表:可以用“+”运算符,但是速度比较慢;一般采用extend()方法

listname.extend(seq)

listname为原列表,seq为要添加的列表。执行结束,seq内容添加到listname后面

poet_1=['李白','白居易','杜甫']
poet_2=['苏轼','陆游']
print(poet_1)
#添加poet_2到poet_1
#逐个
for i in poet_2:
    poet_1.append(i)
print(poet_1)
#直接合并/+
print(poet_1+poet_2)

poet_1.extend(poet_2)

斐波那契数列

lst=[1.1]
n= int(input('请输入一个大于2的整数:'))
while True:
    if (lst[-1]+lst[-2])>n:
        break
     lst.append(lst[-1]+lst[-2])
 print(lst)

f. 修改和删除列表元素

​ 修改:通过索引修改

​ 删除:

     通过索引,利用del实现

del listname[索引]

​ 根据元素值删除,remove()的方法

listname.remove(obj) 有多个值相同的元素时,只会删除第一个

g. 获取指定元素出现的次数

​ 使用count()方法

listname.count(obj) 只能精确匹配,即 不能是元素值的一部分

删除重复元素,重复的数据只保留一个

for i in range(listname.count('元素值')-1):
     listname.remove('元素值')

h. 获取指定元素首次出现的下标

​ index()方法获取首次出现的位置(索引)

listname.index(obj)

​ 第i次出现的索引的位置:

n=listname.index(obj,i-1)

j. 统计数值列表中个元素的和

sum(iterable[,start])

​ iterable:表示要统计的列表

​ start:表示统计结果从哪个数开始(索引)

​ k. 对列表元素进行排序

(1)sort() 方法:对原列表中的元素进行排序,排序后原列表的元素顺序

​ 发生改变

listname.sort(key=None,reverse = False)

​ key:用于指定版本规则。key=str.lower:表示不区分大小写

​ reverse:可选参数。=TRUE时,降序;=FALSE时,升序。默认升序

(2)sorted()方法:原列表的元素顺序不变,产生一个副本,可以赋值给另一个新的列表输出。

sorted(iterable,key=None,reverse=False)

案例

(1)输入并处理班级成绩:

成绩储存在一个列表中;
可以多次输入成绩,直到按-1截止;
对成绩进行从高到低的排序;
输出班级的人数,最高分,最低分和平均分。

score_list = []
#利用while循环进行成绩录入,直到-1结束
while True:
    score = float(input('请输入成绩,输入-1结束:'))
    if score == -1:
        break;
    #当输入不是-1时,将score放入列表当中
    score_list.append(score)
#对列表成绩进行降序排序
score_list.sort(reverse=True)
print(score_list)
#人数
n=len(score_list)
#最大、最小值、平均分
ma=score_list[0]
mi=score_list[n-1]
avg=sum(score_list)/n
print('考试人数:',n)
print('最高分:',ma,'最低分',mi,'平均值',avg)

(2)计算某天是该年的第几天

y = int(input('请输入四位数的年份'))
m = int(input('请输入月份'))
d = int(input('请输入日期'))
ans = 0
#md数组存储每月的天数
md = [31,28,31,30,31,30,31,31,30,31,30,31]
#用索引取出月份对应的天数
for i in range(m-1)
 	ans+=md[i]   #ans此时为所输入的月份之前的月份的天数总和
ans+=d
#判断是否是闰年(能不能被400整除/可被4整除且不能被100整除),二月29天,月份需要大于2才考虑是不是闰年
if m>2 and (y/400==0 or (y/4==0 and y/100!=0))
     ans+=1
print('该天是该年的第',ans,'天')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西瓜懒羊羊_Mae

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值