NIUKE Python:Python入门(上)

01 输入输出

NP1 Hello World!

将字符串 'Hello World!' 存储到变量str中,再使用print语句将其打印出来

str='Hello World!'
print(str)

NP2 多行输出

将字符串 'Hello World!' 存储到变量str1中,再将字符串 'Hello Nowcoder!' 存储到变量str2中,再使用print语句将其打印出来(一行一个变量)

str1='Hello World!' 
str2='Hello Nowcoder!' 

print(str1,str2,sep=('\n'))  #1 sep

print(str1 + "\n" + str2)    #2 字符串拼接加\n

NP3 读入字符串

请使用input函数读入一个字符串,然后将其输出

str=input()
print(str)

NP4 读入整数数字

请你使用input函数读入数字并输出数字与变量类型

a=int(input())
print(a,type(a),sep='\n')

NP5 格式化输出(一)

给定某一个名字name,假设输入的name为Niuniu,则输出 I am Niuniu and I am studying Python in Nowcoder!  请按以上句式输出相应的英文句子

name=input()

print(f'I am {name} and I am studying Python in Nowcoder!')  #f.'{a}'

print('I am {} and I am studying Python in Nowcoder!'.format(name))  #'{}'.format(a)
f.'{a}'
'{}'.format(a)

NP6 牛牛的小数输出

使用print函数控制小数的位数,把所有读入的数据都保留两位小数输出吗?

a=float(input())
print("{:.2f}".format(a))    # 使用{:.nf} n表示取小数点后n位

print('%.2f'%a)              # 使用%.nf n表示小数位数

round() 

返回浮点数x的四舍五入值n位小数

round( x , n )

format() 格式化输出

使用大括号‘{}’作为特殊字符代替‘%’

1、位置
  • 不带编号
  • 带数字编号
  • 带关键字
print('{} {}'.format('H','J'))  # 不带字段
H J

print('{1} {1} {0}'.format('H','J'))   # 带数字编号
J J H

print('{a} {b} {a}'.format(a='H',b='J'))  # 带关键字
H J H
2、取位数
  • < (默认)左对齐、> 右对齐、^ 中间对齐、= (只用于数字)在小数点后进行补齐
  • 取位数“{:4s}”、"{:.2f}"等
print('{} and {}'.format('H','J'))  # 默认左对齐
H and J

print('{:10s} and {:>10s}'.format('H','J'))  # 取10位左对齐,取10位右对齐
H      and      J

print('{:^10s} and {:^10s}'.format('H','J'))  # 取10位中间对齐
   H    and   J   

print('{:.2f}'.format(1.123))  # 取2位小数
1.12

print('{0} is {0:>10.2f}'.format(1.123))  # 取2位小数,右对齐,取10位
1.123 is       1.12

3、多个格式化
'b' - 二进制
>>> print('{0:b}'.format(3))
11

'c' - 字符。在打印之前将整数转换成对应的Unicode字符串。
>>> print('{:c}'.format(20))
4

'd' - 十进制整数
>>> print('{:d}'.format(20))
20

'o' - 八进制
>>> print('{:o}'.format(20))
24

'x' - 十六进制
>>> print('{:x}'.format(20))
14

'e' - 幂符号。用科学计数法打印数字。用'e'表示幂。
>>> print('{:e}'.format(20))
2.000000e+01

'g' - 一般格式。将数值以fixed-point格式输出。当数值特别大的时候,用幂形式打印。
>>> print('{:g}'.format(20.1))
20.1

'n' - 数字。当值为整数时和'd'相同,值为浮点数时和'g'相同。不同的是它会根据区域设置插入数字分隔符。
>>> print('{:f}'.format(20))
20.000000
>>> print('{:n}'.format(20))
20

'%' - 百分数。将数值乘以100然后以fixed-point('f')格式打印,值后面会有一个百分号

>>> print('{:%}'.format(20))
2000.000000%

4、通过名字匹配参数
>>> 'Coordinates: {latitude}, {longitude}'.format(latitude='37.24N', longitude='-115.81W')
'Coordinates: 37.24N, -115.81W'

>>> coord = {'latitude': '37.24N', 'longitude': '-115.81W'}
>>> 'Coordinates: {latitude}, {longitude}'.format(**coord)
'Coordinates: 37.24N, -115.81W'

可在字符串前加f以达到格式化的目的,在{}里加入对象,此为format的另一种形式:

name = 'H'
age = 18
sex = 'man'
job = "IT"
salary = 9999.99

print(f'my name is {name.capitalize()}.')
print(f'I am {age:*^10} years old.')
print(f'I am a {sex}')
print(f'My salary is {salary:10.3f}')

# 结果
my name is H.
I am ****18**** years old.
I am a man
My salary is   9999.990

02 类型转换

NP7 小数化整数

利用强制类型转换将小数转变成整数

print(int(float(input())))

# input输入的是str类型数据,需要强转成float,然后输出的时候强转成int类型

NP8 为整数增加小数点

使用强制类型转换为输入的整数增加小数点,并输出改变类型后的变量类型

num=float(input())
print('{:.1f}'.format(num),type(num),sep='\n')

NP9 十六进制数字的大小

输入描述:input读入一个十六进制数字,按照字符串的形式包括数字0-9、字母A-F

输出描述:输出读入数字的十进制大小

num=int(input(),16)
print(num)
int(x, base)

x -- 字符串或数字

base -- 进制数,默认十进制

实例:
>>> int(3)      #  输入整数的时候,默认10进制
3
>>> int(3.6)     #   浮点数向下取值
3
>>> int('12',16)        # 如果是带参数base的话,12要以字符串的形式进行输入,12 为 16进制
18
>>> int('0xa',16)     #   16进制 转10进制
10  
>>> int('10',8)     #  8进制转10进制
8

03 字符串

NP10 牛牛最好的朋友们

两个名字分别用input读入记录在两个字符串中,请使用字符串连接将两个名字依次连接在一个字符串中

a=input()
b=input()

print(a+b)         #连接符
print(a,b,sep='')  #间隔符
print(''.join([a,b]))

NP11 单词的长度

根据输入的单词,快速得到单词的长度

print(len(input()))

NP12 格式化输出(二)

输入描述:一行一个字符串表示名字

输出描述:请分别按全小写、全大写和首字母大写的方式对name进行格式化输出(注:每种格式独占一行)

word=input()
print(word.lower(),word.upper(),word.title(),sep='\n')
大小写
.lower() --- 全部小写
.upper() --- 全部大写
.title() --- 各个字符的首字母大写
.capitalize() --- 首字母大写
.swapcase() ---大小写对调

NP13 格式化输出(三)

输入描述:一行一个字符串表示名字name(注:name两边带有一些多余的空白符)

输出描述:一行输出name去掉两边的空白符后的原本的内容

name = input()
print(name.strip())
删除空格
.strip() --- 删除两边空格
.lstrip() --- 删除左边空格
.rstrip() --- 删除右边空格
.replace(" ","") --- 删除所有空格
-- 拼接

NP14 不用循环语句的重复输出

输入描述:输入一个字符串

输出描述:输出重复100次之后的字符串,字符串之间没有间隔

a=input()
print(a*100)

NP15 截取用户名前10位

输入描述:输入一个字符串,长度一定不低于10

输出描述:输出截取前10个字符后的子串

word=input()
print(word[0:10])
strname[start : end : step]

strname:要截取的字符串;

start:表示要截取的第一个字符所在的索引(截取时包含该字符)默认为 0

end:表示要截取的最后一个字符所在的索引(截取时不包含该字符)默认为字符串的长度

step:默认为 1

04 列表

NP16 发送offer

创建了一个依次包含字符串 'Allen' 和 'Tom' 的列表offer_list,作为通过面试的名单

请你依次对列表中的名字发送类似 'Allen, you have passed our interview and will soon become a member of our company.' 的句子

但由于Tom有了其他的选择,没有确认这个offer,HR选择了正好能够确认这个offer的Andy,所以请把列表offer_list中 'Tom' 的名字换成 'Andy' ,

再依次发送类似 'Andy, welcome to join us!' 的句子

offer_list=['Allen','Tom']

for i in offer_list:
    print( f'{i}, you have passed our interview and will soon become a member of our company.')

offer_list[1]='Andy'
for j in offer_list:
    print( f'{j}, welcome to join us!')

NP17 生成列表

输入描述:输入一串字符串,它们之间通过空格间隔开

输出描述:输出封装后的列表

a=list(input().split(' '))
print(a)
字符串的搜索

a.count('x',n)                   统计从第n位开始x出现的次数

a.startwith('x',beg,end)    检查a从起始位置beg到结束位置end是否是以x开头,如果是则返回 True,否则返回 False

a.find('x',beg,end)            从起始位置beg到结束位置end查找x,包含则返回索引值,否则返回-1

a.replace('x','y','2)            返回x替换成y后生成的新字符串替换不超过2次

填充或剔除

str.rjust(5,'*')       原字符串右对齐,使用*填充至长度5的新字符串

如果指定的长度小于字符串的长度则返回原字符串

str.strip('x')         移除str头尾指定的字符x

str.center(10,'x')返回一个原字符串居中,并使用'x'填充至长度 width 的新字符串

分割与合并

str.replace

text.split(str=' ',num)    通过分隔符对字符串切片,分隔 num+1 个子字符串

text.partition(str)    根据指定的分隔符str将text进行分割,返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串

symbol.join(seq)     将序列seq中的元素以指定的字符symbol连接生成一个新的字符串

NP18 生成数字列表

系统录入了一连串数字,数字之间依靠逗号隔开,将这些数字存储在列表中,列表元素以int的形式。

输入描述:输入一行整数,数字之间以空格间隔

输出描述:输出这些数字组成的完整列表

list1=input().split(' ')
list2=[]

for i in list1:
    list2.append(int(i))
    
print(list2)

NP19 列表的长度

使用len函数统计输入了多少字符串,列表中有多少元素

输入描述:输入一行多个字符串,字符串之间通过空格间隔

输出描述:输出列表的长度

num=len(input().split(' '))
print(num)

NP20 增加派对名单(一)

输入描述:输入多个连续的字符串表示名字,以空格间隔

输出描述:输出在最后添加完Allen后的完整列表

list1=input().split(' ')
list1.append('Allen')
print(list1)

NP21 增加派对名单(二)

输入描述:输入多个连续的字符串表示名字,用空格间隔

输出描述:输出在最前面插入名字后的完整列表

list1=input().split(' ')
list1.insert(0,'Allen')
print(list1)
添加元素
list1.append()
list1.insert(index,obj)

index -- 对象 obj 需要插入的索引位置。

obj -- 要插入列表中的对象

NP22 删除简历

从列表中删除第一个元素,然后输出列表

输入描述:以字符串的形式输入公司名字,字符串之间以空格间隔

输出描述:输出删除第一个元素后的完整列表

list1=input().split(' ')
del(list1[0])
print(list1)
删除元素

del()                          删除变量、列表或列表片段等

list1.pop()                  移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

list1.remove(obj)       用于移除列表中某个值的第一个匹配项

list1.clear()                用于清空列表

NP23 删除好友

输入描述:

第一行输入多个字符串表示朋友的名字,以空格间隔

第二行输入吵架的朋友的名字,必定是第一行中出现的名字

输出描述:

输出删除好友后的完整列表

list1=input().split(' ')
word=input()
list1.remove(word)
print(list1)

NP24 淘汰排名最后的学生

输入描述:输入一行多个字符串表示同学名字,最少不少于3个名字,以空格间隔

输出描述:输出删除末三位后的完整列表

list1=input().split(' ')
n=len(list1)
del(list1[n-3:n])
print(list1)

NP25 有序的列表

创建一个依次包含字符串'P'、'y'、't'、'h'、'o'和'n'的列表my_list,先对列表进行临时排序,第一行输出排序后的完整列表,第二行输出原始的列表。再对列表进行降序排序,第三行输出排序后完整的列表

输出描述:

第一行输出临时排序后的列表;

第二行输出原始的列表;

第三行输出完成降序排序后的列表

my_list=['P','y','t','h','o','n']
print(sorted(my_list))
print(my_list)
my_list.sort(reverse=True)
print(my_list)
sort()和sorted()

sort(key=None,reverse=False) ,sort只针对列表,没有返回值,会改变原列表顺序

sorted(iterable,key=None,reverse=False) iterable可以是任何可迭代的对象,不改变原数据排列顺序,有返回值

reverse=True 降序;reverse=False 升序

NP26 牛牛的反转列表

num = [3, 5, 9, 0, 1, 9, 0, 3]

输出反转后的列表

num = [3,5,9,0,1,9,0,3]
num.reverse()
print(num)

NP27 朋友们的喜好

name = ['Niumei', 'YOLO', 'Niu Ke Le', 'Mona']

创建一个二维列表friends,使用append函数将name添加到friends的第一行

Niumei最喜欢吃pizza,最喜欢数字3,YOLO最喜欢吃fish, 最喜欢数字6,Niu Ke Le最喜欢吃potato,最喜欢数字0,Mona最喜欢吃beef,最喜欢数字3

创建一个列表food依次记录朋友们最喜欢吃的食物,并将创建好的列表使用append函数添加到friends的第二行;

创建一个列表number依次记录朋友们最喜欢的颜色,并将创建好的列表使用append函数添加到friends的第三行。

使用print函数直接打印这个二维list

Friends=[]
name = ['Niumei', 'YOLO', 'Niu Ke Le', 'Mona']
food=['pizza','fish','potato','beef']
number=[3,6,0,3]

for i in [name,food,number]:
    Friends.append(i)               #way 1

Friends.append(name)                #way 2
Friends.append(food)
Friends.append(number)

print(Friends)

NP28 密码游戏

破解方案如下:每位数字都要加上3再除以9的余数代替该位数字,然后将第1位和第3位数字交换,第2位和第4位数字交换

输入描述:输入一个四位数的整数

输出描述:输出破解后的密码,以四位数的形式

num=input()
A=[]
for i in range(0,4):
    a=(int(num[i])+3)%9
    A.append(a)
print(A[2],A[3],A[0],A[1],sep='')

NP29 用列表实现栈

栈是一种先进后出的数据结构,用Python的列表来模拟栈。假设初始的列表为 stack = [1, 2, 3, 4, 5],请将其视作栈,弹出末尾两个元素,再将输入元素加入到栈中,每次操作完成后都要输出整个列表

输入描述:输入要加入栈中的整数

输出描述:

第一行输出第一次出栈后的列表

第二行输出第二次出栈后的列表

第三行输出元素入栈后的列表

stack = [1, 2, 3, 4, 5]
stack.pop()
print(stack)
stack.pop()
print(stack)
stack.append(int(input()))
print(stack)

NP30 用列表实现队列

队列是一种先进先出的数据结构,先入队的元素先出队,先请用Python列表模拟队列。现有一列表 queue = [1, 2, 3, 4, 5] 被视作队列,请使用pop函数连续两次取出队首元素,再使用append函数将输入元素添加到队尾,每次操作后都要输出完整的列表。

输入描述:

输入一个整数表示要添加到队列的元素

输出描述:

第一行输出第一次取出队首后的列表

第二行输出第二次取出队首后的列表

第三行输出添加元素到队列后的列表

queue = [1, 2, 3, 4, 5]
queue.pop(0)
print(queue)
queue.pop(0)
print(queue)
queue.append(int(input()))
print(queue)

NP31 团队分组

创建一个列表group_list,其中依次包含字符串 'Tom', 'Allen', 'Jane', 'William', 'Tony' 表示这个小组成员的名字。现有三项任务需要他们去完成,根据不同任务的繁琐度和实际情况需要分别派2人、3人、2人来完成,他们决定通过对列表分片来分配任务。

使用print()语句和切片来打印列表group_list的前两个元素表示去做第一个任务的人的名字,

再使用print()语句和切片来打印列表group_list的中间三个元素表示去做第二个任务的人的名字,

再使用print()语句和切片来打印列表group_list的后两个元素表示去做第三个任务的人的名字。

group_list=['Tom','Allen','Jane','William','Tony'] 
print(group_list[0:2])
print(group_list[1:4])
print(group_list[3:])

05 运算符

NP32 牛牛的加减器

输入两个数字x与y,分别输出x+y的结果和x-y的结果。

输入描述:分两行输入两个整数

输出描述:分两行输出加与减的结果

x=int(input())
y=int(input())
print(x+y,x-y,sep='\n')

NP33 乘法与幂运算

输入描述:分两行输入两个整数x与y

输出描述:第一行输出x*y,第二行输出x的y次方

x=int(input())
y=int(input())
print(x*y,x**y,sep='\n')
幂运算 **

NP34 除法与取模运算

输入描述:分两行输入两个整数x与y,其中y不为0

输出描述:

第一行输出x除以y的商和余数;

第二行输出x除以y的非整除结果,保留两位小数

x=int(input())
y=int(input())
print(x//y,x%y,sep=' ')
print('{:.2f}'.format(x/y))
商 //
余数%

NP35 朋友的年龄是否相等

输入描述:一行输入两个整数,以空格间隔

输出描述:直接输出比较结果(True或者False)

a,b=input().split()
print(a==b)
map()

根据提供的函数对指定序列做映射。

第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表

map(function, iterable, ...)
  • function -- 函数
  • iterable -- 一个或多个序列

>>> def square(x) :         # 计算平方数
...     return x ** 2
>>> map(square, [1,2,3,4,5])    # 计算列表各个元素的平方
>>> list(map(square, [1,2,3,4,5]))   # 使用 list() 转换为列表
[1, 4, 9, 16, 25]
>>> list(map(lambda x: x ** 2, [1, 2, 3, 4, 5]))   # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]
 

NP36 谁的数字大

输入描述:一行输入两个整数,以空格间隔。

输出描述:

第一行输出第一个数字是否大于第二个数字,True 或者 False

第二行输出第一个数字是否小于第二个数字,True 或者 False

a,b=list(map(int,input().split(' ')))
print(a>b)
print(a<b)

NP37 不低于与不超过

输入描述:一行输入三个正浮点数k、x、y,三个数字通过空格间隔

输出描述:

第一行输出k是否不超过x,True或者False

第二行输出k是否不低于y,True或者False

k,x,y=list(map(float,input().split()))
print(k<=x)
print(k>=y)

NP38 牛牛的逻辑运算

输入描述:输入两个整数x和y,通过空格间隔

输出描述:每行分别直接输出x与y,x或y,非x,非y的值,前两个为数值,后两个为布尔值

x,y=map(int,input().split())
print(x and y,x or y,not x,not y,sep='\n')

NP39 字符串之间的比较

输入描述:两行输入两个字符串,其中字符仅包含大小写字母和数字

输出描述:

第一行输出s1是否与s2相等的布尔值

第二行输出s1.lower()是否与s2.lower()相等的布尔值

a=input()
b=input()
print(a==b,a.lower()==b.lower(),sep='\n')

NP40 俱乐部的成员

输入描述:

第一行输入俱乐部的名单,以多个字符串的形式,字符串之间用空格间隔

第二行输入要查询的名字name

输出描述:

直接输出这个名字是否属于俱乐部名单的布尔值,True或者False

list1=input().split()
name=input()
print(name in list1)

NP41 二进制位运算

输入描述:一行输入两个整数x、y,以空格间隔

输出描述:第一行输出x位与y,第二行输出x位或y

x,y=map(int,input().split())
print(f'{x&y}',f'{x|y}',sep='\n')
x,y=map(int,input().split())
print(x&y)
print(x|y)

NP42 公式计算器

输入的数字分别是x、y、z、k,请输出x+y的结果与z-k的结果相乘的值

输入描述:一行输入四个整数,以空格间隔

输出描述:直接输出计算结果,结果一定是整数

x,y,z,k=map(int,input().split())
print((x+y)*(z-k))

06 条件语句

NP43 判断布尔值

输入布尔变量,使用条件语句判断,如果为真则输出"Hello World!",否则输出"Erros!"

输入描述:输入0 或者 1。

输出描述:输出"Hello World!"或者"Erros!"

a=bool(int(input()))
if a is True:
    print("Hello World!")
else:
    print("Erros!")

NP44 判断列表是否为空

创建一个空列表my_list,如果列表为空,请使用print()语句一行输出字符串'my_list is empty!',

否则使用print()语句一行输出字符串'my_list is not empty!'

my_list=[]
if my_list==[]:
    print('my_list is empty!')
else:
    print('my_list is not empty!')

NP45 禁止重复注册

创建一个依次包含字符串'Niuniu'、'Niumei'、'GURR'和'LOLO'的列表current_users,

再创建一个依次包含字符串'GurR'、'Niu Ke Le'、'LoLo'和'Tuo Rui Chi'的列表new_users,

使用for循环遍历new_users,如果遍历到的新用户名在current_users中,

则使用print()语句一行输出类似字符串'The user name GurR has already been registered! Please change it and try again!'的语句,

否则使用print()语句一行输出类似字符串'Congratulations, the user name Niu Ke Le is available!'的语句。注:用户名的比较不区分大小写

current_users=['Niuniu','Niumei','GURR','LOLO']
current_users=[i.lower() for i in current_users]
new_users=['GurR','Niu Ke Le','LoLo','Tuo Rui Chi']
for i in new_users:
    if i.lower() in current_users:
        print(f'The user name {i} has already been registered! Please change it and try again!')
    else:
        print(f'Congratulations, the user name {i} is available!')

NP46 菜品的价格

'pizza':10块钱一份,'rice' :2块钱一份,'yogurt':5块钱一份,剩下的其他菜品都是8块钱一份牛请你根据输入的字符串,使用if-elif-else语句判断需要花费多少钱?

输入描述:输入一个字符串表示菜品

输出描述:输出该菜品的价格

food=input()
manu={'pizza':10,'rice':2,'yogurt':5}
if food in manu:
    print(manu[food])
else:
    print(8)

NP47 牛牛的绩点

根据成绩计算平均绩点,假如绩点与等级的对应关系如下表所示。请根据输入的等级和学分数,计算均绩

A  4.0

B  3.0

C  2.0

D  1.0

F  0

输入描述:连续输入一行等级一行学分,遇到等级为False则结束输入

输出描述:均绩保留两位小数

grade = {"A":4.0, "B":3.0, "C":2.0, "D":1.0, "F":0}
a = []
b = []
while True:
    g = input()
    if g == "False":
        break
    else:
        t = int(input())
        a.append(grade[g]*t)
        b.append(t)
print("%.2f" % (sum(a) / sum(b)))

NP48 验证登录名与密码

登录系统需要验证用户名与密码,当二者都正确时才允许登录,其中管理员的用户名为'admis',密码为'Nowcoder666'

输入描述:

第一行输入字符串表示用户名;

第二行输入字符串表示密码。

输出描述:

登录成功输出"Welcome!",登录失败输出"user id or password is not correct!"

password={'admis':'Nowcoder666'}

a=input()
b=input()

if a in password and b==password[a]:
    print("Welcome!")
else:
    print("user id or password is not correct!")

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值