零基础学Python,认识python

1. 第一个Python程序

print是python中提供的打印输出的功能,是将python程序中的数据输出到控制台。

print('hello world')

2. 注释

单行注释 : #+空格

多行注释:三对单引号或三对双引号(英文格式下)''' ''' """ """

注释的含义

  1. 对代码进行解释和说明,目的是让别人和自己能够清晰的看懂代码的含义,提高代码可读性;
  2. 注释是不会被计算机识别的;
  3. 一般写注释的时候,写在代码的上方或右方;
  4. 注释的另一个作用:修改代码时,可能需要进行调试,部分代码则不用删除,注释即可。

单行注释快捷键 ctrl+/。 去除注释快捷键 ctrl+/

3. 行和缩进

编程语言:由多条语句按照相应的逻辑实现代码,编写相应的程序。

语句都有相应的结束标记,一般编程语言语句的结束标记是分号;

在python中,建议语句的语义结束不写分号 也可写(会出现警告)

建议:一行一条语句(如果一行中有多条,用分号分割,不建议)

缩进:在代码前面不要随意添加空格或Tab键

4. 标识符

标识某个实体的符号,使用这个符号可以代替实体参与相应的运算。

在编程语言中,标识符一般给变量、项目名称、文件名称、函数名、类名等等自定义名称。

自定义名称要遵守一定的规则:

  1. 标识符是由数字、字母、下划线组成;

  2. 标识符名称不能以数字开头;

  3. 不能使用关键字与保留字

    ​ **关键字:**编程语言中具有特殊含义的单词

    ​ **保留字:**编程语言中已经使用的名称,不建议再次使用(再次使用,会覆盖原本的含义)

例:打印一个数据:10

num = 10
print(num)

定义时,不能包含其他符号,不能以数字开头

错误示例:

# num@ = 10
# 1_num = 10

Python环境中自带了很多工具包,每个工具包都有对应的作用

比如 time——包含时间相关的操作

要想使用工具包,需要导包

语法:improt 工具包名

使用工具包下面的内容:工具包名.内容名

import time

Print(time.localtime()) # 打印当前时间 获取time工具包

python中的关键字,被放在keyword

improt keyword

print(keyword.kelist) 如下:

'False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 
'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 
'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or',
 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'

使用关键字定义名称

False = 10
# SyntaxError: cannot assign to False   #不允许给false再次赋值

不建议使用保留字

# print本身在python中被使用,具有输出的含义
如:print = 10
那么:print10# TypeError: 'int' object is not callable   报错

如何辨别是不是保留字: 写单词的时候被提示出来的都是Python中已经使用的了 就不再使用即可

5. 变量与数据类型

变量:变化的数据。 这种变化的数据在程序中来使用的时候,一般会给数据做一个标记,方便获取相关的数据信息,这个标记就是变量名。

例如:记录一天的气温

在程序中使用这个气温的时候,具体使用哪个数据是不确定的。

一般会给这个数据值,设置一个变量名,随着时间的推移,设置不同的数据值。

当使用的时候直接使用标记名代替数据参与运算即可。

#早晨温度
air_temp = 24
#中午
air_temp = 30
print(air_temp)

数据类型:把相同特征的数据进行归类,形成一类数据

python中的数据类型:

整数类型 ( 整型int )。 10 20 30 45

小数类型(浮点型float)。12.3。 44.3

文本数据(字符串str)。字符串数据需要使用引号包含(单双引号都可以)'hello' "Nice" ''

逻辑结果(布尔类型bool)。逻辑结果只有两种:True和False

空类型(NoneType)。空值(None) 代表什么都没有

(空字符串和None不是一回事)

获取数据的类型 type(变量名)

类和对象:

  1. 类:对具有相同属性和特征的数据的抽象描述,比如:整数类型

  2. 对象:对类下世纪存在的实体,比如: 10

例:电脑——类(泛指称呼)

​ 某人的电脑——对象

# 定义一个变量 记录人的名称
name = '小倩'
print(name)
# 定义一个变量 记录一个人的年龄
age = 10
print(age)
print(type(age))   #<class 'int'>
# 定义一个变量 记录性别
gender = '女'
print(gender)
print(type(gender))   #<class 'str'>
# 记录一个状态值
flag = True
print(flag)
print(type(flag))	  #<class 'bool'>
# 空值
resule = None
print(type(resule))    #<class 'NoneType'>

6. python中的输出

输出:按住ctrl,点击要查看的信息名称,可以进入到python定义的源码文件

print(value,...,sep='',end='\n',file=sys.stdout,flush=False)
  1. value,... :代表print可以一次性输出多个数据,书写时,数据之间用逗号分隔。
  2. sep='' :一次性输出多个数据时,展示的结果中数据之间的分隔符,默认是空格。
  3. end='\n':输出内容结束符,print输出内容时,会在内容末尾追加一个结束符,默认是换行。

字符串中特殊的符号\(转义符)——可以将某些符号的意义,转变成其他的意思

n——\n 换行符

r——\r 回车 (在windows系统下,存储数据的时候,\n 本质上存储的是\r\n

t——\t 制表符 就是tab键

u——\u 识别成unicode编码符号

\u 每一个unicode编码值,都对应着一个文字

路径中:C:\users… 如何解决\u进行转义的问题?有些情况下,不需要转义,保持转义符的本意。

方式一:

对转义符再次转义。\\ 保持\本身的含义

print('\\n')  #\n

方式二:(推荐使用)

使用r修饰字符串,字符串中每个符号都保持数据本身的含义

print(r'\n')  #\n
  1. file = sys.stdout :print数据输出的目的地,默认是控制台。
  2. flush = False:是否快速将通道中的数据输出到文件中。

自己设置多个数据之间的分隔符,如果直接使用逗号分隔,代表输出多个数据,为了区分数据还是分隔符,分隔符赋值的时候,sep=指定的分隔符。

print(10,20,30,40)
print(10,20,30,40,set='+') 	#10+20+30+40

演示转义符

print('and')	#and
print('a\nd')  #a
								b

输出内容的时候,此时不需要换行,可以修改end值

print('hello',end='\t')
print('world')		#hello	world

更新内容输出目的地,把内容输出到文件中

  1. 需要建立程序和文件之间的联系通道

    有一个操作 open(文件路径,操作文件的模式,文件的编码形式), 以指定模式将文件与程序建立联系

    操作文件的模式:

    1. r ——read 只读,在程序中要读取文件的数据

    2. w——write 只写,要将信息从程序中写入到文件中

      如果文件不存在,会自动创建文件;文件存在,会清空内容再写入。

    3. a ——append 只写,要将信息从程序中写入到文件中

      如果文件不存在,会创建文件;文件存在,进行追加写的操作。

    文件的编码形式(不同的编码形式决定了文件中语言的类型)

    编码:人为规定一种编译规则

    在计算机存储数据的时候,存储格式是二进制形式

    十进制数据 逢十进一 数字符号集0 1 2 3 4 5 6 7 8 9

    二进制数据 逢二进一 数字符号集0 1

    但是数据存储的时候,并不是只有数字,还有汉字、英文字母等。

    十进制如何转化成二进制?存储10,在计算机中是什么样子?

    除以2取余数,直到商为0,将所有的余数倒序拼接起来

    ​ 10/2 = 5 —— 0

    ​ 5/2 = 2 —— 1

    ​ 2/2 = 1 —— 0

    ​ 1/2 = 0 —— 1

    10 =====> 1010

    汉字、英文字母等不能直接转化为二进制,因此出现了编码。计算机人为制造,运算规则也是人为制造。

    汉字或者英文字母在存储时,指定了什么规则???这个映射规则称为编码。(将汉字或者英文字母,每个字对应着一个数字)

    例:a ====> 97 一====>19968

    常见的编码规则有:

    1. ASCII码 —— 只设置128个符号对应的数字,包括英文字母

    2. GB2312——国家标准编码,2312序列号

    3. GBK——国标扩展

    4. Unicode——国际编码标准(收录时世界语言在内)

      Python的编码就是unicode下UTF-8

  2. 通过通道把数据传递到文件中

handle = open(', 'w', encoding='utf-8')
print('床前明月光,疑是地上霜。',file=handle,flush=True)

Open(文件路径,操作文件的模式,文件的编码形式)

文件路径有两种格式:

  1. 绝对路径:

windows系统,从盘符开始到具体的文件路径,就是绝对路径

比如:C:\WorkContent\Python2304\day02_变量及其运算符\代码\静夜思.txt

mac系统,从根路径/开始到具体文件结束

比如:/Users/nana/Desktop/静夜思.txt

  1. 相对路径(建议)

需要文件配置在项目路径下

相对路径是有参照物的:当前正在编辑的文件

相对路径中有两个特殊的符号

  1. . ——当前操作的文件所在的文件夹 day01
  2. .. ——当前操作的文件所在的文件夹上一级 Desktop

7. python中的输入

print:把数据输出到控制台

input():让用户在控制台输入数据,传递到程序中

格式:input(提示语)(input会让程序暂停)

input'请输入你的姓名'

如何让程序继续:在控制台上输入数据,结束输入的标记是回车。输入数据回车后,就把控制台输入的数据传递到程序中,想要获取这个数据,需要接受。

注意:输入的数据是变化的(也就是变量)想要获取变量的数据,需要给变量的值一个标记名(变量名)

name = input'请输入你的姓名:'print('打印name的值',name)

不管录入的数据格式是什么样的,在程序中变量的值永远都是字符串类型。

8. 类型转换

例:让用户输入两个数,求两个数的和

num1 = input('请输入第一个数:')	#17
num2 = input('请输入第二个数:')	#28
print('两个数据的和', num1 + num2)	#1728

为什么结果是1728???

input 不管用户输入的是什么格式的数据,在程序中拿到的都是字符串类型,字符串数据之间进行相加,完成的是拼接的动作。如:

print('a'+'b')	#ab

以上目的不是拼接,是求和。想要完成求和目的,num1和num2接受到数据类型得是整数类型才可以,需要进行类型转换,字符串转整形。

操作语法(格式固定):int(数据/变量名)

int()
value = '1673'
print(type(value))  #<class 'str'>

num = int(value)
print(type(num))   #<class 'int'>

注意:把字符串格式的数值转化为整型时,数值的格式必须满足整数形态。

修改以上求和需求:

num1 = int(input('请输入第一个数:'))	#17
num2 = int(input('请输入第二个数:'))	#28
print('两个数的和',num1+num2)	#两个数的和 45

把字符串数据转化为浮点型:float(数据/变量名)

float()
date = '3.14'
res = float(date)
print(type(res))  #<class 'float'>

9. 算数运算符

算数运算符

一元运算符:正负号 +17-89

二元运算符:加法+,减法-,乘法*,除法///,取余%,幂数**

a = 18
b = 5
print('加法',a + b)	#23
print('减法',a - b)	#13
print('乘法',a * b) #90
print('除法',a / b) #3.6
print('向下整除',a // b) #3
print('取余',a % b) #3
print('幂数x的y次方',a ** b) #1889568

开方

对8开3次方====8的三分之一次方

print(8**(1/3))		#2.0

复合赋值运算符

简单的赋值运算符 “ = ”

a = 10

复合赋值运算符:在进行赋值的时候,先操作了算数运算。如:+=-=*=/=//=%=**=

num = 125
num -= 15  # ====> num = num - 15 = 125 - 15
print(num)	#110

num %= 4  # ===> num = num % 4 = 110 % 4
print(num)	#2

num **= 5  # ===>num = num ** 5
print(num)	#32

比较运算符

比较两个数据,判断大小。如:>、>=、<、<=、==、!=(判断结果是否不等于后者)

比较运算符运行结果是布尔类型,结果只有两个值True和False。

算数运算符优先级高于比较运算符

a = 17
b = 9
res = a + b > b * 2
print(res)  #True

res = a - b <= a % b
print(res)  #True

判断一个数是否为偶数:能被2整除,余数为0

num = 17
res = num % 2 == 0
print(res)  #False

判断一个数是否为奇数:除以2余1

#方法一:
res = num % 2 == 1
print(res)  #False

#方法二:
res = num % 2 != 0
print(res)  #False

判断一个数的个位数是否为7

获取数据的个位数???除以10,取余数。如:17除10,商1余7;16除10,商1余6

res = num % 10 == 7
print(res)  #True

如何获取十位数商的数据??

  1. 可以将十位上的数处理成个位上的数。 ===整除10,如:245 / 10 = 24
  2. 将处理后的结果对10取余。 如:24 % 10 = 4

逻辑运算符

是来操作逻辑关系:

逻辑与—and(连接的条件必须同时成立,条件之间是并且的关系,结果才成立)

逻辑或—or(连接的条件成立其中一个即可,条件之间的关系是或者关系)

逻辑非—not(对条件结果进行取反操作,真变假,假变真)

比较运算符的优先级高于逻辑运算符,逻辑运算符中 not > and > or

逻辑与—and

例:大学中评奖学金,平均成绩和绩点。平均成绩在90分以上并且绩点在4.5以上,定义两个变量,表示成绩和绩点。

score = float(input('请输入平均成绩:'))
gpa = float(input('请输入绩点'))
res = score > 90 and gpa > 4.5
print(res)

输入一个数,判断这个数是否是3的倍数,并且是7的倍数。

num1 = int(input('输入一个数:'))
res = num1 % 3 == 0 and num1 % 7 == 0
print(res)

# 第二种方式:可以找两个数的最小公倍数21
res = num1 % 21 == 0
print(res)

输入一个数,判断这个数的十位是否为2的倍数,并且个位是3的倍数。

num2 = int(input('再次输入一个数:'))
res1 = num2 // 10 % 10 % 2 == 0 and num2 % 10 % 3 == 0
print(res1)

decade = num // 10 % 10
unit = num % 10  #个位上的数据是不足10  除以10会被余下的
# 加 !=0的目的是考虑0不是任何数的倍数
res = (decade % 2 == 0 and decade != 0) and (unit % 3 == 0 and unit != 0)
print(res)

逻辑或 or

条件1 or 条件2 其中一个条件成立即可

判断一个年是否为闰年??

普通闰年:能被4整除但不能被100整除,如:2020;

世纪闰年:能被400整除,如:2000

普通闰年和世纪闰年满足其中一个要求即可。

year = int(input('请输入年份:'))
common = year % 4 == 0 and year % 100 != 0
century = year % 400 == 0
res = common or century
#或
res = (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)
print(res)

判断输入的月份是否是第三季度,7、8、9月

month = int(input('月份:'))
res = month == 7 or month == 8 or month == 9
print('输入的月份是第三季度:',res)

判断输入的数据是否是3或者5的倍数

num3 = int(input('输入一个数字:'))
res = num3 % 3 == 0 or num3 % 5 == 0
print(res)

判断输入的月份天数是否为30天

month = int(input('输入一个月份数:'))
res = month == 4 or month == 6 or month == 9 or month == 11
print('这个月份天数为30天:', res)

逻辑非 not

对逻辑结果取反。not 条件

如果条件成立,结果为False;如果条件不成立,结果为True

判断一个数是否为奇数

num = int(input('请输入整数:'))
# num % 2 == 1
# num % 2 != 0   不等于0  就是对等于0  进行取反
res = not (num % 2 == 0)
print(res)

判断一个数是否能被3或7整除,但是不能同时被3和7整除

num = int(input('请输入整数:'))
res = (num % 3 == 0 or num % 7 == 0) and not (num % 3 == 0 and num % 7 == 0)
print(res)

判断一个数是否不为整数

num = int(input('请输入一个数:'))
res = not (num > 0)
print(res)

输入一个月份,判断其是否在1-12之间

month = int(input('月份:'))
# res = not(month < 1 or month > 12)
res = not (1 >= month > 12)
print(res)

成员运算符

成员:众多种的一个

这个运算符是应用在容器型数据的元素判断的,判断数据是否在某个容器型数据中。

整数、小数、布尔值、空值,每个数据都是独立的个体,都不是容器型数据。

字符串是容器型数据,元素是字符(长度为1的字符串称为字符,比如“a“ ”0 “ ” “)。字符串就是由0个或多个字符拼接起来的,0个字符的情况下,称为空字符串” “(空箱子)

成员运算符 in

格式:数据 in 容器型数据

逻辑:把数据当作一个整体,判断数据是否包含在容器中

格式:数据 not in 容器型数据

逻辑:判断是否不在容器中

s = 'hello'
res = 'h' in s
print(res)  #True

res = 'hl' in s
print(res)  #False

res = 'hl' not in s
print(res)  #True
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值