我的Python的笔记和一部分基础题目

我的Python笔记

python基础课:
编程基础课程,python基础课程,面向对象编程,pyhton高级知识

编程基础课程:
什么是python?
what?===》简单的编程语言==》python

how?python环境搭建---:开发环境 vscode,sublime,pychaprm....
                                        运行环境 cpython解释器

python -V——测试运行环境

python怎么写代码
1.在终端写代码---》代码没有办法保存
2.写在python文件中以.py为结尾的文件
python pyyhon文件名

Ctrl+s——保存

注释:单行注释  #
         多行注释  ‘’’‘’‘ 或”“”“”“

变量:在程序运行的时候,可以发生变化的量   ----具有名称的内存空间
常量:在程序运行的时候,不可以发生变化的量

java:变量类型 变量名 =变量值
         int age = 10
python:变量名=变量值
a,b=1,2

(标识符)
变量名命名规范:1.使用大小写字母,数字,下划线
                         2.不能以数字开头
                         3.不能使用关键字和保留字
                         4.不能使用python全局中已经用过的
                         5.建议标识符名称具有意义 age
                         6.建议使用下划线或者小驼峰命名法
                         下划线:find下划线user group下划线by下划线username
                         小驼峰:findUsergroupByUsername
                         7.特殊类:大驼峰命名:FindUsergroupByUsername
             python中没有常亮的关键字的,变量名称全部大写用来表示常量
                          abc=11    ABC=22 PI=3.14


dir():显示对象中存在的方法

python的数据类型:
基本数据类型
数字类型===》整型(int),浮点型(float),复数(a+bi)
布尔类型===》true    false    判断条件是否成立的   (bool)
字符串类型===》”“(两个双引) ’‘ (两个单引)  ’‘’‘’‘(六个单引)”“”“”“(六个双引) 
“”“(三个双引可以换行) str
=——赋值    ==——等于
/n:换行符
ord():获取字符的整数表示
chr():把编码转换为对应的字符

print:输出函数
input:输入函数(”提示语“)
type():用来检测变量的数据类型的
eval:eval(“1,2”)
           (1,2)
             (a,b)=(1,2)
           math.pi=Π

复合数据类型===》所有的对象
字典,列表,元组,集合

数据类型转换:自动类型转换:整形  浮点型   布尔 
                    (三个间可以互相换):非0为真,0为假             
                      强制类型转换:int()/float()/str()

num1+num2=num3
print(a+“+”b+“=”+c)
int(a)+int(b)——才是a+b

清屏:import os
         os.system(”command“)

常见的运算符:
                   算数运算符:+  -  *  /  //(整除) %(余:例如10除3余1)  **(幂次方:例如10 ** 2=100)
                  关系运算符:1.>   2.<  3.> =  4.< = 5.== 6.!=(<>)
    逻辑运算符:and(两真才真,一假则假)   or(一真则真,两假才假)   not
    所属运算符:in    not in ——用来确认是否处于容器里面
    is运算符:is 判断内存地址是否相同 ==判断值是否相同
    赋值运算符:=     +=     -=   *=   /=   //=   %=   **= 
                     python中不存在自增自减
                      a +=1  ( a=a+1)
    三木运算符:变量 = 值1 if 条件 else 值2
                      age = int(input("请输入你的年龄"))
                       n = "成年了" if age > 18 else "未成年"
                       print(n)
   位运算符:计算机底层的运算规则
&:一假则假(一个0就为0)
例:10&11=10
0000 1010
0000 1011
------------
0000 1010
|:把两边的二进制各位进行或运算(两假才假){两个0才为0}
例:2|3=3
0000 0010
0000 0011
------------
0000 0011
^:相反为真(相反为1)
10^11
0000 1010
0000 1011
------------
0000 0001
~:按位取反 连带符号位
~10
0000 1010

1111 0101(补码)
1111 0100
1000 1011

<<:所有二进制位朝左移n位   (增长2的n次方倍)
12<<1
0000 1100
0000 11000
>>:所有二进制位朝右移n位    (减少2的n次方倍)
12>>1
0000 1100
0000 0110

电脑?数学模型 记录数据===》处理数据
半导体材料 ===》从一边到另外一边是通电的,反向不通电
一个二级管,对应一个二进制的数(0/1) ---1bit
 1 byte=8个二级管(8bit)----0~255 256个数
byte——字节
负数:最高位作为符号位 0表示正 1表示负(127~-128——共256个)
为了解决负数运算,提出了三个概念:
原码——十进制对应的二进制  1000 0011
反码——符号位不变,其余位取反   1111 1100
补码——反码+1     1111 1101

例如:2+-3
0000 0010
1111 1101
------------
1111 1111  补码的状态
1111 1110  反码
1000 0001 原码(原码才是答案)

程序控制流程
解决语句与语句之间运行的顺序的问题的

顺序:代码整体的执行顺序 从上到下 从左到右

选择:不同条件下,执行不同的代码
if 条件(age):
 #条件成立时执行的代码
      print(“”)
else:
#条件不成立时执行的代码

例:
~~~python
month = int(input("请输入一个月份:"))

# if month > 12 or month < 1:
#     print("出错啦~~~")

# else:
#     if 1 <= month <= 3:
#         print("春天")
#     else:
#         if 4 <= month <= 6:
#             print("夏天")
#         else:
#             if 7 <= month <= 9:
#                 print("秋天")
#             else:
#                 print("冬天")

多分支
if 条件1:
     条件1成立时执行的代码
elif 条件2:
     条件2成立时执行的代码
....................................

例:
# 多分支
if month > 12 or month < 1:
    print("出错啦~~~")
elif 1 <= month <= 3:
    print("春天")

elif 4 <= month <= 6:
    print("夏天")
elif 7 <= month <= 9:
    print("秋天")
else:
    print("冬天")

双分支的情况下,添加以下代码
else:
      print(“”)

例:age = int(input(“请输入您的年龄:”)
if age > 18 :
     print("你成年了,进去玩吧“)
else:
     print'(”小屁孩,一边玩去“)

else内还可以嵌套(if和else)
例如:else:
                 if age>16:
                 print("man16")
                else:
                  print("未满16周岁”)


# 缩进强调的是在同一个块内缩进量一致
tab相当于四个空格,但是tab键和空格键不要混合使用
pass(占位)      #pass关键字保证语法的完整性

循环
while 条件:
      循环体
      判断的index数值改变

else:
       循环正常结束时,进行的代码
例:
a=int(input(“请输入要打印的层数:”)
index = 1
while index<=a
         print(****")
         index += 1

index = 1
while index <= a:
        j = 1
      while j <= index:
             print("*",end="")
             j+=1
       print()
       index += 1

for循环:主要用于容器的迭代

for临时变量 in 容器:
     代码
例:
range(num1):[0,num1)之内所有的整数
range(num1,num2):[num1,num20之间所有的整数
range(num1,num'2step):

break: 终止掉离自己最近的循环,直接退出整个循环
continue: 跳过本次循环,直接开始下次循环

容器:
数据结构:

线性表:有序的
物理上存在的:
数组:类型一致的,大小固定,连续的内存结构
链表:不一定要内存空间连续,大小不固定(双向链表造成内存浪费)
逻辑上存在的:
栈:先进后出
队列:先进先出

python的内置容器

一.---list(列表):
底层使用的是双向链表 线性表 有序的
1.如何定义
(1)变量名=[ ]
例:b=[1,2,3,4,"chen",True]列表里边可以存储不同的数据类型
(2)list()将数据强制转化成列表
例:list([1,2,3,4])    list("chen”)
2.获得列表的长度 len()
3.获取每一个元素
下标——从0开始,从左向右
             从-1开始,从右向左
例:
[1,2,3,4,"chen"]
0,1,2,3,4
aa[len(aa)-1]

修改数据:列表名[列表下标]=新的数据
"怎么添加数据,删除数据”
4.遍历列表:(遍历是指按照特定的顺序逐个访问数据结构中的每个元素的过程。
for      while    
列表的常见方法:
append,clear,copy,count,extend,index,insert,pop,remove,reverse,sort
增:
append():向列表的尾部追加元素
例:
>>> list1 = []
>>> list
<class 'list'>
>>>list1
[ ]
>>> list1,append("zhangsan")
insert(下标,添加的元素)
例:
>>> list1,insert(1,"huazhu")
>>> list1
['wangmazi','huazhu','zhangsan','lisi']
删:
remove(元素):直接删除元素
pop():通过下标删除元素,不给参数时删除的是最后一位。会返回删除的元素
clear()"清空列表例的数据

查:
index(元素):通过元素直接查找
index(元素,start)从1开始往下查找


count(元素):计数
copy():拷贝 (浅拷贝)
reverse():反转(可以改变顺序)
sort():排序(按一定顺序进行排序)

列表1.extend(列表2):合并列表的  列表2的数据合并给列表1
例:
>>>list2=[1,2,3]
>>>list.extend(list2)

二.---set(集合):
底层基于哈希表实现的  不能重复,无序
集合是无法进行访问的,因为他是无序的
set():空集合
集合怎么遍历:
for 

集合的常见方法:
add(元素):通过元素给集合追加的
len():容器里面通用的表示长度的函数
pop():任意随机一个元素被移除
remove(元素):通过元素去移除
discard(元素):通过元素去移除
——区别---要移除的元素不存在时,discard()不会进行报错
intersection()交集
例:set.intersection(set2)

Union():并集
例:set1.union(set2)

difference():差集
例:set1.difference(set2)


三.----tuple(元组):tu
不可变数据类型,有序的(生成之后就不可改变)
访问:元组名[元组下标]
len(元组名):长度
元组的方法:
元组名.count():计数
元组名.index():索引
如果一个元组只有一条数据,那么需要在这条数据后面加上逗号

元组中元素存在可变数据类型(例如:列表),那么更改元组中可变类型中的元素就不会报错
例:
tu = (1,2,3,4,[”zhangsan“,1,2,3,])
tu[-1][0]=[”woshigenggaiguode"]
print(tu)

元组的遍历:
for,while


dict(字典):
{ }
例:dict1 = {"uname":"zhangsan","age":21,1:21,"sex":"nan"}

查找数据:
字典名["键名"]
例:dict1["age]

更改
例:
dict1["age"] = 18

添加:
例:
dict1["school"] = "huazhu"——(存在则进行覆盖,不存在则进行添加)

len(字典名)——查看长度

key——键——类别             values——值
clear():——清空
copy():——浅拷贝
get(key,默认不存在时返回):——通过key获取值的
del 要删除的东西——删除——可以删除任何变量
seys():获取所有的键
balues():获取所有的值
setdefault():添加键值对
dict1.fromkeys((1,2,3,4))
——创建key值为1,2,3,4的字典,键值为None
删除:
pop():通过key删除键值对
items():返回键值对
update():更新
items:项目

字典的遍历:
for
例:
dict1 = {"uname":"tangwenbai","age":21}
for i in dict1:
    print(dict1[i])

for k, v in dict1.items():
    print(f"{k}:{v}:")

冒泡排序:相邻的两个数进行比较排序
例:
arr=[1,21,33,42,2,54]
for i in range(0,len(arr)-1):
     for j in range(0,len(arr)-1-i):
          if arr[j]>=arr[j+1]:
           arr[j],arr[j+1]+arr[j+1],arr[j]
        else:
               pass
     print(arr)

关于python的题目练习

题目一(21世纪闰年):

count = 0

for i in range(2000,2100):

   if (i%4==0) and (i%100!=0 or i%400==0):

      print(i,end=" ")

      count += 1

      if count == 10:

       print()

       count = 0

题目二(剪刀石头布):

# 猜拳 0-剪刀 1-石头 2-布

import random

com = 0

player = 0

while com < 2 or player <2:

    player_choice = int(input("请出拳: 0-剪刀 1-石头 2-布"))

    com_choice = random.randint(0,2)

    print(f"您出的是{player_choice},计算机出的是{com_choice}")

    if player_choice == com_choice:

        print("平局")

    elif (com_choice == 0 and player_choice == 2) or(com_choice == 1 and player_choice ==0):

         print("计算机获胜,您输了")

         com += 1

         print(com)

    else:

        print("您大获全胜")

        player += 1

        print(player)

    if(com>=2 or player>=2):

       break

题目三(梯形数字):

for i in range(1,7):

    for j in range(1,i+1):

        print(j,end=" ")

    print()    


 

for i in range(6,0,-1):

    for j in range(1,i+1):

        print(j,end=" ")

    print()


 

for i in range(1,7):

    for j in range(0,7-i):

        print(" ",end=" ")

    for j in range(i,0,-1):

        print(j,end=" ")

    print()        


 

for i in range(6,0,-1):

    for j in range(6,i,-1) :

        print(" ",end=" ")

    for k in range(1,i+1):

        print(k,end=" ")

    print()

题目四(是否被5,6整除):

num = int(input("请输入一个整数:"))

if num % 5 ==0 and num %6 ==0 :

    print(num,"能同时被5和6整除")

else:

    print(num,"不能同时被5和6整除")

if num %5 == 0 or num %6 == 0:

    print(num,"能被5或6整除")

else:

    print(num,"不能被5或6整除")

if num %6 ==0 and num //5:

    print(num,"能被6整除,但不能被5整除")

elif num %5 ==0 and num //6:

    print(num,"不能被6整除,但能被5整除")

题目五(查找未来):

today = int(input("星期天-0,星期一-1,星期二-2,星期三-3,星期四-4,星期五-5,星期六-6 请输入一个数字表示今天星期几:"))

days = int(input("请输入今天到未来某天的天数:"))

future_day =(today+days)%7

print("未来{}天后是星期{}".format(days,future_day))

菜鸟一枚,如有错误,请指正,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值