Python学习日志(1)基础语法

一、输入输出

例子1:

print默认情况下自带了一个 换行符

a = input("请输入:")
print(a)

  

print源码

def print(self, *args, sep=' ', end='\n', file=None): # known special case of print
    """
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.
    """
    pass

sep参数:print语言以逗号拼接时,默认以空格拼接

a = input("请输入:")
print("你输入的是:",a)
print("你输入的是:"+a)
print("你输入的是:",a,sep='')

end参数:指定输出结尾的方式,默认以/n换行

a = input("请输入:")
print("你输入的是:"+a)
print('很高兴见到你')
print("你输入的是:"+a,end=',')
print('很高兴见到你')

二、变量

1、注意事项

(1)不能以数字开头

(2)不能是python的关键字

(3)由大写或小写字母、数字、下划线组成 

2、起名格式

(1)驼峰式:首个单词全部小写,从第二个单词开始,首字母大写,其他小写

例如:highStudent

(2)下划线式:单词全部小写,用下划线拼接

例如:high_student

三、基本数据类型

1、字符串str

使用单引号或者双引号或者三个单引号将若干个字符括起来的序列,叫做字符串。

s1 = '123456'
s2 = "123456"
s3 = '''123456'''
print(s1,s2,s3,type(s1),type(s2),type(s3))

内存中字符串本身不能被改变,变量赋值只是改变其地址值

s1 = "hello"
print(s1,id(s1))
s1 = "world"
print(s1,id(s1))

注意:

1、字符串调用完功能后,会返回一个新的字符串结果

2、Python的字符串具有索引的概念

(1)独有功能

·转大写upper()

s1 = "Hello"
s2 = s1.upper()
print(s1)
print(s2)

·转小写lower()

s1 = 'HelLOWorld'
s2 = s1.lower()
print(s1)
print(s2)

应用场景:用户登录

while True:
    name = input("请输入用户名:")
    if name.upper() == 'Q':  #当用户输入q就会推出循环
        break
    password = input("请输入密码:")
    if name == 'root' and password == '123456':
        print("ok")
        break
    else:
        print("no")

·判断字符串内容是否为数字isdecimal()

s1 = '100'
b1 = s1.isdecimal() #判断是否是数字
print(b1)

应用场景:

num1 = input("请输入一个数字:")
if num1.isdecimal():
    num1 = int (num1)+100
    print(num1)
else:
    print("输入错误")

·判断字符串是否以xxx前缀开头startswith()

·判断字符串是否以xxx后缀结尾endswith()

s1 = 'nihao'
b1 = s1.startswith('n') #判断是否以n开头
print(b1)
b2 = s1.endswith('m')
print(b2)

·切分split()

s1 = '你好,18,19'
res1 = s1.split(',')
print(res1,type(s1))
print(res1[0])

·maxsplit参数:表示切分次数

s = 'n.h.a'
res2 = s.split('.')
print(res2)
res3 = s.rsplit('.',maxsplit=1)
print(res3)

·替换字符replace()

s1 = '你好 nihao 你好'
res1 = s1.replace('你好','-')
print(res1)
res2 = res1.replace(' ','')
print(res2)

·去除字符串两边所有的空白字符strip()

注意无法去除字符串中间的

s = ' nihao nihao '
print(s)
print(s.strip())

·字符串连接join():先切分,再连接

s = 'n.h.a'
res = s.split('.')
print(res)
res = '-'.join(res)
print(res)

(2)公共功能

·获取字符串长度len()

s = 'helloworld'
print(s,len(s))

可以通过遍历获取字符串的每一个字符:

注:这里产生了一个报错,len(s)只是一个数字,for循环没有这种用法

s = 'helloworld'
print(s,len(s),type(len(s)))
for i in len(s):
    print(s[i])

s = 'helloworld'
print(s,len(s),type(len(s)))
for i in s:
    print(i)

s = 'helloworld'
print(s,len(s),type(len(s)))
for i in range(len(s)):
    print(s[i])

·通过索引获取字符串元素

s = 'helloworld'
print(s[0])
print(s[len(s)-1])

·切片

s = 'helloworld'
print(s[:])
print(s[-4:-1])
print(s[1:3])

2、整数int

num = 100
print(num,type(num))

3、小数float

f = 11.22
print(f,type(f))

4、布尔bool

print(1>2,type(1>2))

5、列表list

是一个可变的,允许发生重复元素的有序序列。

列表调用功能后,是在原有的列表上做改变的,所以不需要返回值。

(1)独有功能

添加元素

append():在原有列表后追加元素

list1 = []
list1.append('nihao') #在原有的列表上修改,不需要返回值
print(list1)

insert():指定索引位置添加元素

list1 = [11,22,33,55,77]
print(f'原始列表{list1}')
list1.insert(2,66)
print(f'修改的列表{list1}')

删除元素

remove():根据元素值删除,没有返回值

list1 = [11,22,33,55,77,99]
a = list1.remove(11)
print(a)
list1.remove(22)
print(list1)

pop():根据索引删除元素,有返回值

list1 = [33,55,77,99]
list1.pop(2)
print(list1)
b = list1.pop(2)
print(b)

del :关键字删除

list1 = [33,55,77,99]
del list1[0]
print(list1)

修改元素

list1 = [33,55,77,99]
list1[0] = 100
print(list1)

反转列表

list1 = [33,55,77,99]
list1.reverse()
print(list1)

例子:判断一个字符串是否是对称字符串


list1 = []
s1 = input('请输入一个字符串:')
for i in s1:
    list1.append(i)
list1.reverse()

s2 = ''
for i in list1:
    s2 = s2 + i
if s1 == s2:
    print('是对称字符串')
else:
    print('不是')

排序sort()

list1 = [2,3,1,5,44,33]
list1.sort()
print(list1)

浅拷贝copy()

list1修改元素不会影响到list2

list1 = [11,22,99]
list2 = list1.copy()
print(list1)
print(list2)
list1[2] = 66
print(list1)
print(list2)

count()查找指定值出现的次数

list1 = [2,1,3,4,4,2,1,77,88,6,1]
print(list1.count(1))

(2)公共功能

长度功能

list1 = [11,22,2,32,44,43,1]
print(len(list1))

索引功能

list1 = [11,22,2,32,44,43,1]
print(list1[0])
print(list1[len(list1)-1])

切片功能

list1 = [11,22,2,32,44,43,1]
print(list1[::2])
print(list1[1:4:])

in 可以判断元素是否存在于列表中

list1 = [11,22,2,32,44,43,1]
if 3 in list1:
    print('yes')
else:
    print('no')

6、元组tuple

元组是一个可以存储有序且重复元素的序列,但是元组不可以改变,即不允许增删改。

(1)独有功能

count()

tuple1 = (1,2,3,2)
print(tuple1.count(2))

index()

tuple1 = (1,2,3,2)
print(tuple1.index(2))

(2)公共功能

长度功能

tuple1 = (1,2,3,2)
print(tuple1,type(tuple1),len(tuple1))

索引功能

tuple1 = (1,2,3,2)
print(tuple1[0])
print(tuple1[len(tuple1)-2])

切片

tuple1 = (1,2,3,2)
print(tuple1[::2])
print(tuple1[0:2:])

in

tuple1 = (1,2,3,2)
if 2 in tuple1:
    print("yes")
else:
    print("no")

for

tuple1 = (1,2,3,2)
for i in tuple1:
    print(i)

注意:

当元组中的元素个数大于等于二时,最后一个逗号加不加没有影响

tuple1 = (1,2,3,4)
tuple2 = (1,2,3,4,)  
print(tuple1,type(tuple1))
print(tuple2,type(tuple2))

当元组中的元素个数为一个时,加结尾的逗号才是一个元组,不加就是一个整数

a1 = (11)
print(type(a1))
a2 = (11,)
print(type(a2))

创建空元组

a = tuple()
print(a,type(a))

7、字典

特点:

(1)字典中的元素是以<key,value>的形式存在的,一个键对应一个值

(2)键是唯一的

(3)值是可以重复的

(4)一个字典中可以有多个键值对

(5)字典里的键和值可以是不一样的数据类型

注意:不是所有的数据类型都可以当作键,只有可哈希的类型才可以当键

(1)独有功能

keys():获取字典中的所有键,组成一个dict_keys类型

dict1 = {'name':'ni','age':18,'like':['1','2'],'dog':{'name':'xx','age':4}}
keys = dict1.keys()
print(keys,type(keys))

get(key):根据键获取对应的value值

dict1 = {'name':'ni','age':18,'like':['1','2'],'dog':{'name':'xx','age':4}}
keys = dict1.keys()
list1 = list(keys)
for key in list1:
    value = dict1.get(key)
    print(f'键:{key},值:{value}')

values():获取所有值

dict1 = {'name':'ni','age':18,'like':['1','2'],'dog':{'name':'xx','age':4}}
values = dict1.values()
print(values,type(values))

items():获取所有的键值对

dict1 = {'name':'ni','age':18,'like':['1','2'],'dog':{'name':'xx','age':4}}
items = dict1.items()
print(items,type(items))

pop():根据键删除一个元素,返回被删除键对应的值

dict1 = {'name':'ni','age':18,'like':['1','2'],'dog':{'name':'xx','age':4}}
s = dict1.pop('dog')
print(dict1)
print(s)

clear():清空字典中所有的键值对

dict1 = {'key1':1,'key2':2,'key3':3}
print(dict1.clear())

(2)公共功能

len():获取字典中键值对的个数

dict1 = {'key1':1,'key2':2,'key3':3}
print(len(dict1))

索引:通过键获取值

dict1 = {'key1':1,'key2':2,'key3':3}
print(dict1['key1'])

无切片功能

in只能判断键是否存在字典里

dict1 = {'key1':1,'key2':2,'key3':3}
if 'key1' in dict1:
    print('yes')

for

先获取所有键,在根据键获取所有的值

dict1 = {'key1':1,'key2':2,'key3':3}
keys = dict1.keys()
key_list = list(keys)
for key in key_list:
    value = dict1.get(key)
    print(f'键:{key}-值:{value}')

直接获取所有的键值对,再依次遍历每一个键值对中的键和值

dict1 = {'key1':1,'key2':2,'key3':3}
key_values = list(dict1.items())
for i in key_values:
    key = i[0]
    value = i[1]
    print(f'键:{key},值:{value}')

8、集合set

集合是一个无序(存储和取出的顺序不一致)且唯一的序列

(1)独有功能

union()并集

set1 = {11, 22, 33, 44}
set2 = {22, 44, 77, 88}
set3 = set1.union(set2)
print(f'set1:{set1}')
print(f'set2:{set2}')
print(f'set3:{set3}')

difference()或者减法- 差集

set1 = {11, 22, 33, 44}
set2 = {22, 44, 77, 88}
set3 = set1.difference(set2)
set4 = set1 - set2
print(f'set1:{set1}')
print(f'set2:{set2}')
print(f'set3:{set3}')
print(f'set4:{set4}')

add()添加元素

set1 = {11,22,33,44}
set1.add(55)
print(set1)

remove()通过元素的值进行移除,如果元素不存在,就报错

set1 = {11, 22, 33, 44}
print(set1)
set1.remove(22)
print(set1)

discard()移除元素,如果元素不存在,不会报错

pop()根据集合中的结果按照睡许弹出

set1 = {11, 22, 33, 44}
print(set1)
res = set1.pop()
print(res)
res1 = set1.pop()
print(res1)

intersection()取交集

set1 = {11, 22, 33, 44}
set2 = {22, 44, 77, 88}
set3 = set1.intersection(set2)
print(f'set1:{set1}')
print(f'set2:{set2}')
print(f'set3:{set3}')

(2)公共功能

长度

set1 = {12,34,11,22,33,44,11,22,33}
print(set1,type(set1)) # 显示的是去重之后的元素个数
print(len(set1))

无索引、无切片

in

set1 = {12, 34, 11, 22, 33, 44, 11, 22, 33}
if 11 in set1:
    print("yes")

for

set1 = {12, 34, 11, 22, 33, 44, 11, 22, 33}
for i in set1:
    print(i)

四、类型转换

s1 = '100'
s1 = s1 + '100'
print(s1,type(s1))
s2 = int('100')+100  #注意:python不允许字符串与数值相加
print(s2,type(s2))

1、int()

转数值:字符串中的要符合数值的样式才能转换

s1 = '111'
s2 = 'hello'
print(int(s1))
print(int(s2))

2、str()

s1 = 100
s2 = str(s1)
print(s1,type(s1))
print(s2,type(s2))

3、bool()

print(bool(0))
print(bool(0.0))
print(bool(''))
print(bool(""))

print(bool(-1))
print(bool(1))
print(bool('nihao'))

五、字符串格式化

1、字符串拼接做法

name = input("请输入你的名字:")
age = input("请输入你的年龄:")
text = "你的名字是"+name+",你的年龄是"+age
print(text)

2、format()

适用于所有版本的python

(1)按索引位置填充

ame = input("请输入你的名字:")
age = input("请输入你的年龄:")
text1 = "你的名字是{0},年龄是{1}".format(name,age)
print(text1)

(2)索引的复用

name = input("请输入你的名字:")
age = input("请输入你的年龄:")
text = "你的名字是{0},年龄是{1},出生到现在多少年{1}".format(name,age)
print(text)

(3)默认按照顺序填充

me = input("请输入你的名字:")
age = input("请输入你的年龄:")
text2 = "你的名字是{},年龄是{}".format(name,age)
print(text2)

(4)用变量的方式填充

​
name = input("请输入你的名字:")
age = input("请输入你的年龄:")
text3 = "你的名字是{a},年龄是{b}".format(a=name,b=age)
print(text3)

​

(5)用%填充

name = input("请输入你的名字:")
age = input("请输入你的年龄:")
text4 = "你的名字是%s,年龄是%s" % (name,age)
print(text4)

(6)用f"xxx{}"的方式填充

name = input("请输入你的名字:")
age = input("请输入你的年龄:")
text5 = f"你的名字是{name},年龄是{age}"
print(text5)

六、语句结构

1、选择结构

if语句

注意:Python中严格使用缩进来表示包含关系·

一个选择:只有满足if条件才会有输出

age = input("请输入你的年龄:") #age是字符串型
if int(age) > 18:
    print("adult")

两个选择

age = input("请输入你的年龄:") #age是字符串型
if int(age) > 18:
    print("adult")
else:
    print("child")

多个选择

score = input("成绩:")
score = int(score)
if 100 > score >= 90: #python 允许连续比较
    print("reward")
elif 90 > score >= 60:
    print("reward1")
else:
    print("punish")

2、循环结构

range()的使用:

(1)range(10) 

0,1,2,3,4,5,6,7,8,9

(2)range(1,11)

1,2,3,4,5,6,7,8,9,10

(3)range(1,11,2)

1,3,5,7,9

(4)range(11,1,-2)

11,9,7,5,3

(1)for循环

for j in range(11, 1, -2):  # 从11往后跳
    print(j)
else:
    print(0)

(2)while循环

num = 0
while num < 10:
    print(num)
    num += 1
else:
    print(0)

while True:
    print(1)

一直循环

3、控制条件语句

(1)continue跳过当次循环

跳过5

for i in range(10):
    if i == 5:
        continue
    print(i)

(2)break终止循环

for i in range(10):
    if i == 5:
        break
    print(i)

从5开始 结束循环

相关推荐

  1. Python基础语法1

    2024-01-26 21:46:01       10 阅读
  2. Python学习入门(1)——基础语句

    2024-01-26 21:46:01       18 阅读
  3. Python基础学习文档(1

    2024-01-26 21:46:01       29 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-26 21:46:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-26 21:46:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-26 21:46:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-26 21:46:01       20 阅读

热门阅读

  1. C语言-算法-并查集

    2024-01-26 21:46:01       32 阅读
  2. 五、RHCE--NFS服务器

    2024-01-26 21:46:01       33 阅读
  3. 响应式编程——R2DBC

    2024-01-26 21:46:01       38 阅读
  4. 寒假实训第二天

    2024-01-26 21:46:01       41 阅读
  5. 【ChatGPT 和文心一言哪个更好用?】

    2024-01-26 21:46:01       35 阅读
  6. centos更换国内yum下载源

    2024-01-26 21:46:01       29 阅读
  7. 编程笔记 html5&css&js 053 CSS伪元素

    2024-01-26 21:46:01       36 阅读
  8. C++Linux网络编程Day1

    2024-01-26 21:46:01       33 阅读
  9. CentOS7离线安装supervisor

    2024-01-26 21:46:01       34 阅读